ポートスキャンツール nmap の使い方

nmapの使い方

kali Linuxにも入っているポートスキャンツールの使い方

事前準備

kali linux インストール

aiaru.hatenablog.com

やられサーバ インストール

aiaru.hatenablog.com

オープンポートの確認とはいえ、自身の管理下にないネットワークへは接続しないでください。 場合によっては攻撃行為だと見なされ、最悪の場合には法的処置を取られる可能性があります。

nmapの起動

[Applications]→[Kali Linux]→[Top 10 Security Tools]→[nmap]

f:id:aiaru:20150323140441p:plain

f:id:aiaru:20150323141148p:plain

nmapの実行

構文

nmap [スキャンタイプ] [オプション] {ターゲット}

スキャンタイプ

TCP SYNスキャン(-sS)

デフォルトのスキャンタイプ。 SYNスキャンはTCPコネクションを確立しないため秘匿性が高い。

root@osboxes:~# nmap -sS -P0 192.168.56.101

Starting Nmap 6.47 ( http://nmap.org ) at 2015-03-19 10:22 GMT
Nmap scan report for 192.168.56.101
Host is up (0.0026s latency).
Not shown: 991 closed ports
PORT     STATE SERVICE
22/tcp   open  ssh
80/tcp   open  http
139/tcp  open  netbios-ssn
143/tcp  open  imap
443/tcp  open  https
445/tcp  open  microsoft-ds
5001/tcp open  commplex-link
8080/tcp open  http-proxy
8081/tcp open  blackice-icecap

Nmap done: 1 IP address (1 host up) scanned in 0.23 seconds

ost up) scanned in 0.23 seconds
TCP Connectスキャン(-sT)

TCPコネクションを確立してスキャンするタイプ。
TCP SYNスキャンのような生パケットを扱う場合は管理者権限が必要のため、nmapを使用する際に管理者権限が無いユーザを使った場合はこちらを利用する。
また、IPv6環境をスキャンする場合もこのスキャンを利用する。
このスキャンを利用するとコネクションが成立してしまうため、ターゲットのサーバのログに接続が記憶されてしまう可能性が高くなる。
(たいていのIDSなら、SYNスキャンでも検知はされるはずだが)

root@osboxes:~# nmap -sT -P0 192.168.56.101

Starting Nmap 6.47 ( http://nmap.org ) at 2015-03-19 10:22 GMT
Nmap scan report for 192.168.56.101
Host is up (0.0026s latency).
Not shown: 991 closed ports
PORT     STATE SERVICE
22/tcp   open  ssh
80/tcp   open  http
139/tcp  open  netbios-ssn
143/tcp  open  imap
443/tcp  open  https
445/tcp  open  microsoft-ds
5001/tcp open  commplex-link
8080/tcp open  http-proxy
8081/tcp open  blackice-icecap

Nmap done: 1 IP address (1 host up) scanned in 0.23 seconds

ost up) scanned in 0.23 seconds
UDPスキャン(-sU)

UDPをスキャンするタイプ。
TCPサービスが多いが、UDPが使われているサービスも多く、代表的なものにDNS(port:53),SNMP(port:161/162),DHCP(port:67/68)などがある。
UDPスキャンは空のUDPヘッダを各ポートに送りつける。
ICMPポート到達不能エラー(タイプ3:コード1,2,9,10,13)が返された場合はclosed状態、ICMPポート到達不能エラー(タイプ3:コード3)が返された場合はfiltered(フィルターされている)状態と判断する。
LinuxなどではICMPポート到達不能メッセージを毎秒1回など制限しているため、よく使うポートだけ検索することがおおい。

root@osboxes:~# nmap -sU -P0 192.168.56.101

Starting Nmap 6.47 ( http://nmap.org ) at 2015-03-19 10:22 GMT
Nmap scan report for 192.168.56.101
Host is up (0.00078s latency).
Not shown: 996 closed ports
PORT    STATE         SERVICE
67/udp  open|filtered dhcps
68/udp  open|filtered dhcpc
137/udp open          netbios-ns
138/udp open|filtered netbios-dgm

Nmap done: 1 IP address (1 host up) scanned in 823.70 seconds

オプション

・ホスト検証の無効化(-P0)

-P*オプションはホスト検証の方法のオプション
事前に検査するサーバが明確な時が覆いので、このプションを指定することが多くもられる。

・ACKフラグ付きパケットによるホスト検証(-PA)

TCP80番での確認を行う。80番ポート以外で確認が行いたい場合は、-PA,81のように記載する。

・ICMPによるホスト検証(-PE,-PP,-PM)

-PEはICMP Echo(つまりping),-PPはICMP Timestamp,-PMはICMP Address Maskにより検証する
TCP80番での確認を行う。80番ポート以外で確認が行いたい場合は、-PA,81のように記載する。

root@osboxes:~# nmap  -PA 192.168.56.101

Starting Nmap 6.47 ( http://nmap.org ) at 2015-03-19 11:19 GMT
Nmap scan report for 192.168.56.101
Host is up (0.00082s latency).
Not shown: 991 closed ports
PORT     STATE SERVICE
22/tcp   open  ssh
80/tcp   open  http
139/tcp  open  netbios-ssn
143/tcp  open  imap
443/tcp  open  https
445/tcp  open  microsoft-ds
5001/tcp open  commplex-link
8080/tcp open  http-proxy
8081/tcp open  blackice-icecap

Nmap done: 1 IP address (1 host up) scanned in 1.26 seconds
root@osboxes:~# nmap  -PE 192.168.56.101

Starting Nmap 6.47 ( http://nmap.org ) at 2015-03-19 11:12 GMT
Nmap scan report for 192.168.56.101
Host is up (0.00044s latency).
Not shown: 991 closed ports
PORT     STATE SERVICE
22/tcp   open  ssh
80/tcp   open  http
139/tcp  open  netbios-ssn
143/tcp  open  imap
443/tcp  open  https
445/tcp  open  microsoft-ds
5001/tcp open  commplex-link
8080/tcp open  http-proxy
8081/tcp open  blackice-icecap

Nmap done: 1 IP address (1 host up) scanned in 0.20 seconds
root@osboxes:~# nmap  -PP 192.168.56.101

Starting Nmap 6.47 ( http://nmap.org ) at 2015-03-19 11:12 GMT
Note: Host seems down. If it is really up, but blocking our ping probes, try -Pn
Nmap done: 1 IP address (0 hosts up) scanned in 2.05 seconds
root@osboxes:~# nmap  -PM 192.168.56.101

Starting Nmap 6.47 ( http://nmap.org ) at 2015-03-19 11:12 GMT
Note: Host seems down. If it is really up, but blocking our ping probes, try -Pn
Nmap done: 1 IP address (0 hosts up) scanned in 2.04 seconds
・スキャンタイミングの変更(-T*)

スキャンの効率化を図るためにスキャンのタイミングを細かく設定が可能ですが、事前に設定されているタイミングテンプレートを利用することが多い

テンプレートは

  • -T0:paranoid
  • -T1:sneaky
  • -T2:polite
  • -T3:normal(デフォルト)
  • -T4:aggressive
  • -T5:insane

で、-T0から-T5と順にスキャン速度がはやくなっていくが、T3かT4あたりを利用するのが現実的。

 

・出力方式の指定(-oN,-oX,-oG)

出力方式を変更することができる

  • -oN <ファイル名>:ノーマル出力
  • -oX <ファイル名>:XML出力
  • -oG <ファイル名>:Grep形式出力
・冗長レベル出力モード(-v)

進行中のスキャンに対しての情報を多く出力してくれる。

デバッグレベル出力モード(-d)

デバッグモードでより多くの情報を出力してくれる。

・OSおよびサービス検出(-A)

スキャン対象の挙動から、サービスおよびOSを推測して表示してくれる

・ポートの設定(-p)

スキャンするポートの設定が可能。

  • -p22:22番ポート
  • -p22,25,53:22、25、53番ポート
  • -p100-600:100から600番ポート

実行サンプル

よく使うオプションの実行サンプル

root@osboxes:~# nmap -sS -P0 -T4 -oN resultN.log -p1-65535 -A -v  192.168.56.101 

Starting Nmap 6.47 ( http://nmap.org ) at 2015-03-19 11:44 GMT
NSE: Loaded 118 scripts for scanning.
NSE: Script Pre-scanning.
Initiating Parallel DNS resolution of 1 host. at 11:44
Completed Parallel DNS resolution of 1 host. at 11:44, 0.10s elapsed
Initiating SYN Stealth Scan at 11:44
Scanning 192.168.56.101 [65535 ports]
Discovered open port 80/tcp on 192.168.56.101
Discovered open port 139/tcp on 192.168.56.101
Discovered open port 8080/tcp on 192.168.56.101
Discovered open port 22/tcp on 192.168.56.101
Discovered open port 443/tcp on 192.168.56.101
Discovered open port 143/tcp on 192.168.56.101
Discovered open port 445/tcp on 192.168.56.101
Increasing send delay for 192.168.56.101 from 0 to 5 due to max_successful_tryno increase to 5
Discovered open port 8081/tcp on 192.168.56.101
Discovered open port 5001/tcp on 192.168.56.101
Completed SYN Stealth Scan at 11:46, 93.54s elapsed (65535 total ports)
Initiating Service scan at 11:46
Scanning 9 services on 192.168.56.101
Completed Service scan at 11:46, 12.06s elapsed (9 services on 1 host)
Initiating OS detection (try #1) against 192.168.56.101
Retrying OS detection (try #2) against 192.168.56.101
Retrying OS detection (try #3) against 192.168.56.101
Retrying OS detection (try #4) against 192.168.56.101
Retrying OS detection (try #5) against 192.168.56.101
Initiating Traceroute at 11:46
Completed Traceroute at 11:46, 0.01s elapsed
Initiating Parallel DNS resolution of 2 hosts. at 11:46
Completed Parallel DNS resolution of 2 hosts. at 11:46, 0.04s elapsed
NSE: Script scanning 192.168.56.101.
Initiating NSE at 11:46
Completed NSE at 11:46, 0.43s elapsed
Nmap scan report for 192.168.56.101
Host is up (0.00058s latency).
Not shown: 65526 closed ports
PORT     STATE SERVICE     VERSION
22/tcp   open  ssh         OpenSSH 5.3p1 Debian 3ubuntu4 (Ubuntu Linux; protocol 2.0)
| ssh-hostkey: 
|   1024 ea:83:1e:45:5a:a6:8c:43:1c:3c:e3:18:dd:fc:88:a5 (DSA)
|_  2048 3a:94:d8:3f:e0:a2:7a:b8:c3:94:d7:5e:00:55:0c:a7 (RSA)
80/tcp   open  http        Apache httpd 2.2.14 ((Ubuntu) mod_mono/2.4.3 PHP/5.3.2-1ubuntu4.5 with Suhosin-Patch proxy_html/3.0.1 mod_python/3.3.1 Python/2.6.5 mod_ssl/2.2.14 OpenSSL/...)
|_http-favicon: Unknown favicon MD5: 1F8C0B08FB6B556A6587517A8D5F290B
| http-methods: GET HEAD POST OPTIONS TRACE
| Potentially risky methods: TRACE
|_See http://nmap.org/nsedoc/scripts/http-methods.html
|_http-title: owaspbwa OWASP Broken Web Applications
139/tcp  open  netbios-ssn Samba smbd 3.X (workgroup: WORKGROUP)
143/tcp  open  imap        Courier Imapd (released 2008)
|_imap-capabilities: ACL THREAD=ORDEREDSUBJECT ACL2=UNIONA0001 UIDPLUS IMAP4rev1 OK completed CAPABILITY CHILDREN QUOTA SORT IDLE THREAD=REFERENCES NAMESPACE
443/tcp  open  ssl/http    Apache httpd 2.2.14 ((Ubuntu) mod_mono/2.4.3 PHP/5.3.2-1ubuntu4.5 with Suhosin-Patch proxy_html/3.0.1 mod_python/3.3.1 Python/2.6.5 mod_ssl/2.2.14 OpenSSL/...)
|_http-favicon: Unknown favicon MD5: 1F8C0B08FB6B556A6587517A8D5F290B
| http-methods: GET HEAD POST OPTIONS TRACE
| Potentially risky methods: TRACE
|_See http://nmap.org/nsedoc/scripts/http-methods.html
|_http-title: owaspbwa OWASP Broken Web Applications
| ssl-cert: Subject: commonName=owaspbwa
| Issuer: commonName=owaspbwa
| Public Key type: rsa
| Public Key bits: 1024
| Not valid before: 2013-01-02T21:12:38+00:00
| Not valid after:  2022-12-31T21:12:38+00:00
| MD5:   0fb9 ca0b e9b7 b26f de6c 3555 6186 2399
|_SHA-1: e469 e1f2 9877 40c3 3aec ee7c f630 ca19 31be 05ae
|_ssl-date: 2015-03-20T21:12:07+00:00; +1d9h25m20s from local time.
445/tcp  open  netbios-ssn Samba smbd 3.X (workgroup: WORKGROUP)
5001/tcp open  ovm-manager Oracle VM Manager
8080/tcp open  http        Apache Tomcat/Coyote JSP engine 1.1
| http-methods: GET HEAD POST PUT DELETE OPTIONS
| Potentially risky methods: PUT DELETE
|_See http://nmap.org/nsedoc/scripts/http-methods.html
|_http-title: Apache Tomcat/6.0.24 - Error report
8081/tcp open  http        Jetty 6.1.25
| http-methods: GET HEAD POST TRACE OPTIONS
| Potentially risky methods: TRACE
|_See http://nmap.org/nsedoc/scripts/http-methods.html
|_http-title: Choose Your Path
No exact OS matches for host (If you know what OS is running on it, see http://nmap.org/submit/ ).
TCP/IP fingerprint:
OS:SCAN(V=6.47%E=4%D=3/19%OT=22%CT=1%CU=39101%PV=Y%DS=2%DC=T%G=Y%TM=550AB72
OS:8%P=x86_64-unknown-linux-gnu)SEQ(SP=11%GCD=FA00%ISR=9C%TI=I%CI=I%TS=U)OP
OS:S(O1=M5B4%O2=M5B4%O3=M5B4%O4=M5B4%O5=M5B4%O6=M5B4)WIN(W1=FFFF%W2=FFFF%W3
OS:=FFFF%W4=FFFF%W5=FFFF%W6=FFFF)ECN(R=Y%DF=N%T=41%W=FFFF%O=M5B4%CC=N%Q=)T1
OS:(R=Y%DF=N%T=41%S=O%A=S+%F=AS%RD=0%Q=)T2(R=Y%DF=N%T=100%W=0%S=Z%A=S%F=AR%
OS:O=%RD=0%Q=)T3(R=Y%DF=N%T=100%W=0%S=Z%A=S+%F=AR%O=%RD=0%Q=)T4(R=Y%DF=N%T=
OS:100%W=0%S=A%A=Z%F=R%O=%RD=0%Q=)T5(R=Y%DF=N%T=100%W=0%S=Z%A=S+%F=AR%O=%RD
OS:=0%Q=)T6(R=Y%DF=N%T=100%W=0%S=A%A=Z%F=R%O=%RD=0%Q=)T7(R=Y%DF=N%T=100%W=0
OS:%S=Z%A=S%F=AR%O=%RD=0%Q=)U1(R=Y%DF=N%T=37%IPL=164%UN=0%RIPL=4801%RID=421
OS:0%RIPCK=I%RUCK=G%RUD=G)IE(R=N)

Network Distance: 2 hops
TCP Sequence Prediction: Difficulty=17 (Good luck!)
IP ID Sequence Generation: Incremental
Service Info: OS: Linux; CPE: cpe:/o:linux:linux_kernel

Host script results:
| nbstat: NetBIOS name: OWASPBWA, NetBIOS user: , NetBIOS MAC:  (unknown)
| Names:
|   OWASPBWA<00>         Flags: 
|   OWASPBWA<03>         Flags: 
|   OWASPBWA<20>         Flags: 
|   \x01\x02__MSBROWSE__\x02<01>  Flags: 
|   WORKGROUP<1d>        Flags: 
|   WORKGROUP<1e>        Flags: 
|_  WORKGROUP<00>        Flags: 
| smb-security-mode: 
|   Account that was used for smb scripts: guest
|   User-level authentication
|   SMB Security: Challenge/response passwords supported
|_  Message signing disabled (dangerous, but default)
|_smbv2-enabled: Server doesn't support SMBv2 protocol

TRACEROUTE (using port 135/tcp)
HOP RTT     ADDRESS
1   0.29 ms 10.0.2.2
2   1.03 ms 192.168.56.101

NSE: Script Post-scanning.
Initiating NSE at 11:46
Completed NSE at 11:46, 0.00s elapsed
Read data files from: /usr/bin/../share/nmap
OS and Service detection performed. Please report any incorrect results at http://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 118.18 seconds
           Raw packets sent: 67761 (2.987MB) | Rcvd: 67761 (2.713MB)
root@osboxes:~#