LoginSignup
1
1

More than 1 year has passed since last update.

nmapパケットを学ぶ

Posted at

今さらながら「nmap」を確認

nmapを使う機会は多数あったが、実際のパケットをまともに見たことがなかったので、動作とともに確認する。

対象

nmapにはあまりに多数のオプションがあるので、ここでは、次の3つをターゲットとした。

  • -sS:TCP Synスキャン
  • -sT:TCP Connectスキャン
  • -sN:TCP Nullスキャン

これらの説明については、次のサイトがわかりやすいと感じる。

上記オプションの結果とTCPフラグの受信内容をまとめると下記のとおり。

結果 open closed filtered
-sS SYN-ACK受信 RST受信 受信なし
-sT SYN-ACK受信 RST受信 受信なし
-sN 受信なし RST受信 受信なし
  • 「-sS」と「-sT」のnmapの結果としては同じであるが、後者ではTCPセッション確立という点で違いがある。
  • 受信しなくても、「closed」の可能性は0ではない。

テスト環境

Diagram.png
GNS3上のルーターにVMである、LubuntuとBusterdogとが存在し、Busterdog上にListenしているTCPポートがあり、Lubuntu上でnmapを実行する。また、Routerのアクセスコントールにより、特定のTCPポートをブロックすることも実施。

Listen側(Busterdog)設定

今回は、iperfを用いて、TCP Listenの状態を設けた。

# iperf -s -p 1001 &
# iperf -s -p 1003 &
#
# netstat -ant
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address           Foreign Address         State      
tcp        0      0 0.0.0.0:1001            0.0.0.0:*               LISTEN     
tcp        0      0 0.0.0.0:1003            0.0.0.0:*               LISTEN

ポート1001および1003で、Listenする。

検証

探索ポートを1001、1002、1003とした、nmap(Lubuntu)の実行結果を記す。

ルーターでのアクセスコントールなし

-sS

$ sudo nmap -sS -p 1001-1003 10.0.0.11

PORT     STATE  SERVICE
1001/tcp open   webpush
1002/tcp closed windows-icfw
1003/tcp open   unknown

このときのWiresharkの結果は下記となった。
-sS.png
Openしているポート1001および1003からは「Syn-Ack」が、Closeしているポート1002からは「RST」が返ってきている。nmapの結果は文字どおりのものとなっている。

-sT

$ sudo nmap -sT -p 1001-1003 10.0.0.11

PORT     STATE  SERVICE
1001/tcp open   webpush
1002/tcp closed windows-icfw
1003/tcp open   unknown

Wiresharkの結果は下記のとおり。
-sT.png
基本的に「-sS」のときと同じであるが、「Syn-Ack」に対して「Ack」を返し、TCPセッションを確立させている(その後「RST」送信)が異なる。

-sN

$ sudo nmap -sN -p 1001-1003 10.0.0.11

PORT     STATE         SERVICE
1001/tcp open|filtered webpush
1002/tcp closed        windows-icfw
1003/tcp open|filtered unknown

Wiresharkの結果は下記のとおり。
-sN.png
TCPフラグを何もセットしていないパケットを送信していることがわかる。それに対して、クローズしているポート(1002)から「RST」が返されている。ポート1001および1003に対しては応答がないので、openしているかFirewallなどでブロックされているかわからないため、nmapの結果としては「open|filtered」となる。

ルーターでのアクセスコントールあり

ルーターに、nmapからのポート1003アクセスブロックを設定。

interface FastEthernet0/0
 ip address 192.168.0.1 255.255.255.0
 ip access-group 101 in

access-list 101 deny   tcp any any eq 1003
access-list 101 permit ip any any

-sS

$ sudo nmap -sS -p 1001-1003 10.0.0.11

PORT     STATE    SERVICE
1001/tcp open     webpush
1002/tcp closed   windows-icfw
1003/tcp filtered unknown

Wiresharkの結果は下記のとおり。
-sSwtL詳細.png
ポート1003の通信がブロックされ、ICMP Destination unreachableが返ってきており、nmapの結果が「filtered」となっている。

-sT

$ sudo nmap -sT -p 1001-1003 10.0.0.11

PORT     STATE    SERVICE
1001/tcp open     webpush
1002/tcp closed   windows-icfw
1003/tcp filtered unknown

「-sS」とほぼ同じのため、説明略。

-sN

undeux3@vamos:~$ sudo nmap -sN -p 1001-1003 10.0.0.11

PORT     STATE         SERVICE
1001/tcp open|filtered webpush
1002/tcp closed        windows-icfw
1003/tcp filtered      unknown

Wiresharkの結果は下記のとおり。
-sNwtL.png
ポート1003の結果であるが、ICMP Destination unreachableを受けて、nmapの結果としては「filtered」となっている(と考えている)。

おわりに

OSやFirewallによる違いなどもあるだろうが、基本的なところはこんなところだろう。nmapには多数のオプションがあり、Wiresharkの結果と組み合わせて、結果を理解するのがベター。

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1