#ポートスキャンツールnmapの使い方
ここではポートスキャンツールnmapのmacOSでのインストールの方法、基礎的な使い方について書いていこうと思う
##1 ダウンロード&インストールの方法
- まずはhttps://nmap.org/download.html にアクセス。
- そしてnmap-7.31.tar.bz2をダウンロード
- そしてターミナルを開きダウンロードしたファイルがあるディレクトリに行き、書いてあるこのコマンドを打ち込む。バージョンに応じて少し変えてください。
$bzip2 -cd nmap-7.31.tar.bz2 | tar xvf -
$cd nmap-7.31
$./configure
$make
$su root
$make install
これでインストールは完了
コマンドを打ったあと色々と出てくるがパスワードが要求される時が来るのでその時は素直に打ってください。
追記:homebrewが入っていたらこれでできます。
$brew install nmap
##2 nmapの基本的な使い方
###用途
このツールはサーバーのどのポートが開いているかをスキャンするセキュリティーツールです。 そして便利なことにステルススキャンと呼ばれる、バレない(ログが残らない)スキャンや、囮を使ってばれないようにスキャンする、OSや動いているサービスを特定するなどのポートスキャンだけでないさまざまな機能があります。これらを使えば悪用(攻撃)もできるのですが法に触れるので絶対にしないでください⭐️
###使い方
基本的には
nmap スキャンタイプ オプション ターゲットのIPアドレス
です。
単純にポートの状態を取得するだけならば
nmap ターゲットのIPアドレス
でできます 。
それではこれから詳しいオプションなどについての解説、といきたいのですが自分もすべて把握しているわけではないのでよく使うオプションだけ。
-sS
これはステルススキャンのオプションです。これをつけて実行することで全く対策をしていないPCにはロギングされなくなります。ただし、ロギングツールなどがターゲットにインストールされていたらバレるので万能ではありません。
これを実行する場合はルート権限が必要になります。
-Pn
nmapは最初にpingを実行するのですがpingが帰ってこなかったらスキャンを実行してくれません。そんなときにこのオプションをつけるとpingを実行しないですぐにスキャンを実行してくれます。
-O
これはターゲットのOSを特定してくれるオプションです。空いているポートがいくつかあると結構当たります。
-A
これが一番良く使うオプションですOS検出、バージョン検出、スクリプトスキャン、およびトレースルートを全てこれだけで行ってくれます。これをつけておけばだいたい大丈夫です。
###試しに実行してみる
では音楽を流すために使っているラズパイにやってみたいと思います。
$nmap 192.168.1.9
Starting Nmap 7.70 ( https://nmap.org ) at 2018-05-28 15:28 JST
Nmap scan report for 192.168.1.9
Host is up (0.0067s latency).
Not shown: 990 closed ports
PORT STATE SERVICE
22/tcp open ssh
80/tcp open http
111/tcp open rpcbind
139/tcp open netbios-ssn
445/tcp open microsoft-ds
3000/tcp open ppp
3001/tcp open nessus
3005/tcp open deslogin
5000/tcp open upnp
49152/tcp open unknown
Nmap done: 1 IP address (1 host up) scanned in 0.15 seconds
開いているポートの情報が見れましたね。それでは次に-Aオプションをつけて実行してみたいと思います。
$nmap -A 192.168.1.9 master [f71743b] deleted modified untracked
Starting Nmap 7.70 ( https://nmap.org ) at 2018-05-28 15:30 JST
Nmap scan report for 192.168.1.9
Host is up (0.012s latency).
Not shown: 990 closed ports
PORT STATE SERVICE VERSION
22/tcp open ssh OpenSSH 6.7p1 Raspbian 5+deb8u4 (protocol 2.0)
| ssh-hostkey:
| 1024 d1:dd:4f:1c:d0:f3:67:32:ac:75:ef:a9:d9:63:fd:21 (DSA)
| 2048 50:20:88:31:c8:71:f0:eb:f3:94:c9:e8:12:fb:c2:ae (RSA)
|_ 256 23:59:6d:f1:0c:02:f6:26:cb:c9:e3:c2:3e:85:b4:b4 (ECDSA)
80/tcp open http Node.js Express framework
|_http-cors: GET POST PUT DELETE OPTIONS
|_http-title: Volumio - Audiophile Music Player
111/tcp open rpcbind 2-4 (RPC #100000)
| rpcinfo:
| program version port/proto service
| 100000 2,3,4 111/tcp rpcbind
| 100000 2,3,4 111/udp rpcbind
| 100024 1 35889/udp status
|_ 100024 1 43317/tcp status
139/tcp open netbios-ssn Samba smbd 3.X - 4.X (workgroup: WORKGROUP)
445/tcp open netbios-ssn Samba smbd 4.2.14-Debian (workgroup: WORKGROUP)
3000/tcp open http Node.js Express framework
|_http-cors: GET POST PUT DELETE OPTIONS
|_http-title: Volumio - Audiophile Music Player
3001/tcp open http Node.js Express framework
|_http-title: Error
3005/tcp open deslogin?
| fingerprint-strings:
| FourOhFourRequest, GetRequest, HTTPOptions:
| HTTP/1.1 404 Not Found
| Date: Mon, 28 May 2018 06:30:17 GMT
|_ Connection: close
5000/tcp open rtsp Apple AirTunes rtspd 105.1
|_rtsp-methods: ANNOUNCE, SETUP, RECORD, PAUSE, FLUSH, TEARDOWN, OPTIONS, GET_PARAMETER, SET_PARAMETER
49152/tcp open upnp Portable SDK for UPnP devices 1.6.20.jfd5 (Linux 4.9.80-v7+; UPnP 1.0)
1 service unrecognized despite returning data. If you know the service/version, please submit the following fingerprint at https://nmap.org/cgi-bin/submit.cgi?new-service :
SF-Port3005-TCP:V=7.70%I=7%D=5/28%Time=5B0BA20A%P=x86_64-unknown-linux-gnu
SF:%r(GetRequest,52,"HTTP/1\.1\x20404\x20Not\x20Found\r\nDate:\x20Mon,\x20
SF:28\x20May\x202018\x2006:30:17\x20GMT\r\nConnection:\x20close\r\n\r\n")%
SF:r(HTTPOptions,52,"HTTP/1\.1\x20404\x20Not\x20Found\r\nDate:\x20Mon,\x20
SF:28\x20May\x202018\x2006:30:17\x20GMT\r\nConnection:\x20close\r\n\r\n")%
SF:r(FourOhFourRequest,52,"HTTP/1\.1\x20404\x20Not\x20Found\r\nDate:\x20Mo
SF:n,\x2028\x20May\x202018\x2006:30:17\x20GMT\r\nConnection:\x20close\r\n\
SF:r\n");
Service Info: Host: VOLUMIO; OS: Linux; CPE: cpe:/o:linux:linux_kernel, cpe:/o:linux:linux_kernel:4.9.80-v7%2B
Host script results:
|_clock-skew: mean: -17s, deviation: 0s, median: -17s
|_nbstat: NetBIOS name: VOLUMIO, NetBIOS user: <unknown>, NetBIOS MAC: <unknown> (unknown)
| smb-os-discovery:
| OS: Windows 6.1 (Samba 4.2.14-Debian)
| Computer name: localhost
| NetBIOS computer name: VOLUMIO\x00
| Domain name: \x00
| FQDN: localhost
|_ System time: 2018-05-28T06:30:23+00:00
| smb-security-mode:
| account_used: guest
| authentication_level: user
| challenge_response: supported
|_ message_signing: disabled (dangerous, but default)
| smb2-security-mode:
| 2.02:
|_ Message signing enabled but not required
| smb2-time:
| date: 2018-05-28 15:30:23
|_ start_date: N/A
Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 19.37 seconds
こんな感じでちゃんと情報が取得できてますね!
##最後に
nmapは本当に多機能なポートスキャンツールです。この記事ではnmapの機能を一割も紹介できていません。しかしこの記事で少しでもnmapに興味を持っていただけたら幸いです。
man nmapを実行することで詳しいオプションが見れるので(英語ですが)気になった方は見てみてください。
あと参考にしたサイトがものすごくしっかり解説してくれているので深く知りたいと思った方はそちらもぜひ。