PingSweep とは?
対象のネットワークブロックすべてに Ping をかけて、オンラインになっているホストをリストアップする。ハッキングの基礎中の基礎。
この Ping にも ICMP Ping から TCP Ping などさまざまなものがあり、ファイアウォールの設定次第では、ICMP Ping に応答しなくても TCP Ping には答えてしまうもの。
自分の管理するネットワークが何の Ping には応答する / 応答しないをきちんと把握しておきたい。
Nmap でできる Ping-Sweep
Nmap では、-sP オプションで Ping-Sweep をサポートしており、さらに -P オプションによりプロトコルを指定することができる。
- -P0 : 実行不可
- -PI / -PE : ICMP Echo (Type 8) Ping
- -PP : ICMP Timestamp (Type 13) Ping
- -PM : ICMP Address Mask Request (Type 17) Ping
- -PT / -PS : TCP SYN Ping
- -PA : TCP ACK Ping
- -PU : UDP Ping
- -PB / -P オプションなし : ハイブリッド Ping(ICMP Echo / TCP SYN)
また、Nmap では、一般ユーザー権限で ICMP や UDP の使用を制限されてしまうので注意が必要。
-P0 : 実行不可
-sP で Ping-Sweep を指定しているのに -P0 で Ping しないと矛盾したオプション設定なので動かない。
nmap -sP -P0 192.168.0.0/24
-P0 (skip ping) is incompatable with -sP (ping scan). If you only want to enumerate hosts, try list scan (-sL)
QUITTING!
-PI / -PE : ICMP Echo (Type 8) Ping
ICMP Echo (Type 8) を指定したオプション(通常の ICMP Ping)であるが、一般ユーザーの権限では TCP Ping に変更されてしまう。
nmap -sP -PI 192.168.0.0/24
nmap -sP -PE 192.168.0.0/24
Warning: You are not root -- using TCP pingscan rather than ICMP
root で実行すると ICMP Echo (Type 8) でのみスキャンが実行される。
sudo nmap -sP -PI 192.168.0.0/24
sudo nmap -sP -PE 192.168.0.0/24
tcpdump サンプル…
16:27:13.626934 IP 61.202.202.77 > 61.202.201.61: icmp 8: echo request seq 14804
-PP : ICMP Timestamp (Type 13) Ping
ICMP Timestamp (Type 13) を指定したオプション(ICMP を使った時刻要求)であるが、上記と同じく一般ユーザー権限では TCP Ping に変更されてしまう。
nmap -sP -PP 192.168.0.0/24
Warning: You are not root -- using TCP pingscan rather than ICMP
root で実行すると ICMP Timestamp (Type 13) でのみスキャンが実行される。
sudo nmap -sP -PP 192.168.0.0/24
tcpdump サンプル… ※ tcpdump で見てると「icmp 20」に見えるんだけど? ┐(゚~゚)┌
16:28:16.954041 IP 61.202.202.77 > 61.202.201.61: icmp 20: time stamp query id 38650 seq 46527
-PM : ICMP Address Mask Request (Type 17) Ping
ICMP Address Mask Request (Type 17) を指定したオプション(ICMP を使った netmask 要求)であるが、上記と同じく一般ユーザー権限では TCP Ping に変更されてしまう。
nmap -sP -PM 192.168.0.0/24
Warning: You are not root -- using TCP pingscan rather than ICMP
root で実行すると ICMP Timestamp Request (Type 17) でのみスキャンが実行される。
sudo nmap -sP -PM 192.168.0.0/24
tcpdump サンプル… ※ tcpdump で見てると「icmp 12」に見えるんだけど? ┐(゚~゚)┌
16:31:39.985900 IP 61.202.202.77 > 61.202.201.61: icmp 12: address mask request
-PT / -PS : TCP SYN Ping
TCP SYN を指定したオプション(デフォルトポートは 80)。
nmap -sP -PT 192.168.0.0/24
nmap -sP -PS 192.168.0.0/24
tcpdump サンプル…
16:39:44.768309 IP 61.202.202.77.33171 > 61.202.201.61.80: S 1855806494:1855806494(0) win 4096 <mss 1460>
ポート指定は -PT[ポート番号] / -PS[ポート番号] で行う。
nmap -sP -PT25 192.168.0.0/24
nmap -sP -PS25 192.168.0.0/24
tcpdump サンプル…
16:42:42.843503 IP 61.202.202.77.47424 > 61.202.201.61.25: S 17920098:17920098(0) win 5656 <mss 1414,sackOK,timestamp 35684050 0,nop,wscale 2>
-PA : TCP ACK Ping
TCP ACK を指定したオプション(デフォルトポートは 80)。
nmap -sP -PA 192.168.0.0/24
tcpdump サンプル…
16:54:22.706998 IP 61.202.202.77.47433 > 61.202.201.61.80: S 746341253:746341253(0) win 5656 <mss 1414,sackOK,timestamp 35754038 0,nop,wscale 2>
ポート指定は -PA[ポート番号] で行う。
nmap -sP -PA25 192.168.0.0/24
tcpdump サンプル…
16:54:35.170872 IP 61.202.202.77.47434 > 61.202.201.61.25: S 767872004:767872004(0) win 5656 <mss 1414,sackOK,timestamp 35755284 0,nop,wscale 2>
-PU : UDP Ping
UDP を指定したオプション(通常の UDP Ping)であるが、一般ユーザーの権限では実行することができない。
nmap -sP -PU 192.168.0.0/24
Sorry, UDP Ping (-PU) only works if you are root (because we need to read raw responses off the wire) and only for IPv4 (cause fyodor is too lazy right now to add IPv6 support and nobody has sent a patch)
QUITTING!
root で実行すると UDP でのみスキャンが実行される(デフォルトポートは 31338)。
sudo nmap -sP -PU 192.168.0.0/24
tcpdump サンプル…
17:00:58.149707 IP 61.202.202.77.46086 > 61.202.201.61.31338: UDP, length 0
ポート指定は -PU[ポート番号] で行う。
sudo nmap -sP -PU161 192.168.0.0/24
tcpdump サンプル…
17:02:25.737258 IP 61.202.202.77.43500 > 61.202.201.61.161: [nothing to parse]
-PB / -P オプションなし : ハイブリッド Ping(ICMP Echo / TCP SYN)
ICMP Echo と TCP SYN を指定したオプションであるが、一般ユーザーの権限では TCP のみしか送信されない。(-P オプションなしだと権限エラーすら表示されない)
nmap -sP -PB 192.168.0.0/24
nmap -sP 192.168.0.0/24
Warning: You are not root -- using TCP pingscan rather than ICMP
tcpdump サンプル…
17:12:09.411458 IP 61.202.202.77.47436 > 61.202.201.61.80: S 1879886143:1879886143(0) win 5656 <mss 1414,sackOK,timestamp 35860710 0,nop,wscale 2>
root で実行すると ICMP Echo (Type 8) と TCP(デフォルトポートは 80)のハイブリッドでスキャンが実行される。
sudo nmap -sP -PB 192.168.0.0/24
sudo nmap -sP 192.168.0.0/24
tcpdump サンプル…
17:05:39.450240 IP 61.202.202.77 > 61.202.201.61: icmp 8: echo request seq 47253
17:05:39.450983 IP 61.202.202.77.41373 > 61.202.201.61.80: . ack 44396062 win 1024
ポート指定は -PB[ポート番号] で行う。(-P オプションなしではポート番号は指定できない)
nmap -sP -PB25 192.168.0.0/24
tcpdump サンプル…
17:10:47.448280 IP 61.202.202.77 > 61.202.201.61: icmp 8: echo request seq 37996
17:10:47.449069 IP 61.202.202.77.39968 > 61.202.201.61.25: . ack 597370142 win 1024