本記事の概要
ペンテスターにとって必ず使うツールといってもいい「Nmap(network mapper)」コマンドについてのチートシートです。
Nmapによるスキャンの全体像
ご存じの通りネットワークにはLayerという概念が存在します。
Layer2(データリンク層) では、
①ARPスキャン
Layer3(ネットワーク層) では、
②ICMPスキャン
Layer4(トランスポート層) では、
③TCPスキャン
④UDPスキャン
の機能を提供しています。
本記事では、PCやサーバのことを総称してホストと記載しています
インターネット上の任意のIPにスキャンを実施した場合、刑事罰に問われる場合があります。スキャンを実施する場合は、必ず自身が保有するNWに対し実施してください
各スキャン方式の用途とコマンド例
①ARPスキャン
データリンク層で動作するARPは同一セグメント内に存在するホストの一覧を洗い出す際に使用します。当然ではありますが、データリンク層で動作するプロトコルであるため、同一セグメント内のホストが対象となります。
コマンド
nmap -PR -sn MACHINE_IP/24
実行結果
4行目、7行目、9行目にてARP応答を返したホストが表示されていることがわかります。
Starting Nmap 7.60 ( https://nmap.org ) at 2023-06-11 08:35 BST
Stats: 0:00:02 elapsed; 0 hosts completed (0 up), 256 undergoing ARP Ping Scan
ARP Ping Scan Timing: About 21.48% done; ETC: 08:36 (0:00:11 remaining)
Nmap scan report for ip-10-10-210-69.eu-west-1.compute.internal (10.10.210.69)
Host is up (-0.099s latency).
MAC Address: 02:08:7C:85:55:5B (Unknown)
Nmap scan report for ip-10-10-210-168.eu-west-1.compute.internal (10.10.210.168)
Host is up (0.00035s latency).
MAC Address: 02:97:C6:F8:BB:A7 (Unknown)
Nmap scan report for ip-10-10-210-248.eu-west-1.compute.internal (10.10.210.248)
Host is up (0.000069s latency).
MAC Address: 02:3D:A0:EF:34:83 (Unknown)
Nmap done: 256 IP addresses (3 hosts up) scanned in 7.41 seconds
②ICMPスキャン
ICMPはping
コマンド等で使用されるプロトコルです。ICMPスキャンを実施することで、IP reachableなホストを洗い出すことが可能です。
コマンド
nmap -PE -sn MACHINE_IP/24 #ICMP Echo Scan
nmap -PP -sn MACHINE_IP/24 #ICMP Timestamp Scan
nmap -PM -sn MACHINE_IP/24 #ICMP Address Mask Scan
実行結果(ICMP Echo Scan)
2行目、5行目にてicmp echo reply
を返したホストが表示されていることがわかります。
Starting Nmap 7.60 ( https://nmap.org ) at 2023-06-11 08:45 BST
Nmap scan report for ip-10-10-68-83.eu-west-1.compute.internal (10.10.68.83)
Host is up (-0.100s latency).
MAC Address: 02:B9:2F:E4:C5:C7 (Unknown)
Nmap scan report for ip-10-10-68-143.eu-west-1.compute.internal (10.10.68.143)
Host is up (0.00018s latency).
MAC Address: 02:C8:F5:D6:E7:3D (Unknown)
Nmap done: 256 IP addresses (2 hosts up) scanned in 4.80 seconds
③TCPスキャン/④UDPスキャン
IP reachableであったとしても、当該ホストで稼働しているサービスがわからなければ、攻撃を成立させることはできません。そこで使用するのが、③TCPスキャン/④UDPスキャンです。当該スキャンを実施することにより、各プロトコルでポートが解放されているホストの一覧を調べることができます。
コマンド
nmap -PS22,80,443 -sn MACHINE_IP/30 #TCP SYN Ping Scan
nmap -PA22,80,443 -sn MACHINE_IP/30 #TCP ACK Ping Scan
nmap -PU53,161,162 -sn MACHINE_IP/30 #UDP Ping Scan
実行結果(TCP SYN Ping Scan)
2行目にて、当該ポートが解放されているホストを確認することができます。
Starting Nmap 7.60 ( https://nmap.org ) at 2023-06-11 08:59 BST
Nmap scan report for ip-10-10-68-143.eu-west-1.compute.internal (10.10.68.143)
Host is up (0.000068s latency).
MAC Address: 02:C8:F5:D6:E7:3D (Unknown)
Nmap done: 256 IP addresses (1 host up) scanned in 4.75 seconds
最後に
本記事を最後まで読んでいただきありがとうございました。
次回はポートスキャンについての記事を作成する予定です。公開しましたらTwitterにて投稿いたしますので、是非ともフォローをお願いいたします。