2011年1月5日水曜日

nmapを使う

新年明けましておめでとうございます。
本年もよろしくお願いします(`・ω・´)

今日はnmapの使い方めもめもです。
このツール、すごく便利でかつ怖いですね。使う際は慎重に!

まずはTCPスキャン。
# nmap -sT localhost

Starting nmap 3.70 ( http://www.insecure.org/nmap/ ) at 2011-01-05 16:28 JST
Interesting ports on localhost.localdomain (127.0.0.1):
(The 1655 ports scanned but not shown below are in state: closed)
PORT STATE SERVICE
21/tcp open ftp
22/tcp open ssh
80/tcp open http
873/tcp open rsync
3306/tcp open mysql

Nmap run completed -- 1 IP address (1 host up) scanned in 0.285 seconds
これは自サーバ内でのポートスキャン結果です。
ポートを絞って行う場合は
# nmap -sT localhost -p 80-3306

Starting nmap 3.70 ( http://www.insecure.org/nmap/ ) at 2011-01-05 16:31 JST
Interesting ports on localhost.localdomain (127.0.0.1):
(The 3224 ports scanned but not shown below are in state: closed)
PORT STATE SERVICE
80/tcp open http
873/tcp open rsync
3306/tcp open mysql

Nmap run completed -- 1 IP address (1 host up) scanned in 0.243 seconds
80番ポートから3306番ポートまででTCPパケットを送り、どのサービスが動作しているか確認できます。

次にローカルネットワーク内(192.168.60.0/24)でPINGスキャンしてみます。
# nmap -sP 192.168.60.0/24

Starting nmap 3.70 ( http://www.insecure.org/nmap/ ) at 2011-01-05 16:37 JST
Host 192.168.60.0 seems to be a subnet broadcast address (returned 8 extra pings).
Host 192.168.60.1 appears to be up.
MAC Address: 00:06:5B:24:A2:A0 (Dell Computer)
Host 192.168.60.2 appears to be up.
MAC Address: 00:07:40:97:9A:C7 (Melco)
Host 192.168.60.10 appears to be up.
MAC Address: 78:CA:39:F9:6A:D3 (Unknown)
Host 192.168.60.11 appears to be up.
.
.
.
(中略)
MAC Address: 00:80:F0:33:42:47 (Panasonic Communications Co.)
Host 192.168.60.255 seems to be a subnet broadcast address (returned 14 extra pings).
Nmap run completed -- 256 IP addresses (46 hosts up) scanned in 3.250 seconds
ネットワーク内でどのホストが生きている/死んでるを確認するとき便利ですね。

UPDパケットで確認するときは(snmpd/udpデーモンの確認など)
# nmap -sU localhost

Starting nmap 3.70 ( http://www.insecure.org/nmap/ ) at 2011-01-05 16:39 JST
Interesting ports on localhost.localdomain (127.0.0.1):
(The 1477 ports scanned but not shown below are in state: closed)
PORT STATE SERVICE
123/udp open|filtered ntp

Nmap run completed -- 1 IP address (1 host up) scanned in 1.475 seconds
で確認できます。

実際にどのようなサービスが起動しているか確認するには
# nmap -sS -sV 192.168.60.214 -p 21-80,110,3306,5432

Starting nmap 3.70 ( http://www.insecure.org/nmap/ ) at 2011-01-05 16:43 JST
Interesting ports on 192.168.60.214:
(The 58 ports scanned but not shown below are in state: closed)
PORT STATE SERVICE VERSION
21/tcp open ftp ProFTPD 1.3.0
22/tcp open ssh OpenSSH 3.1p1 (protocol 1.99)
23/tcp open telnet Linux telnetd
25/tcp open smtp Postfix smtpd
80/tcp open http Apache httpd 2.2.13 ((Unix) PHP/5.3.3)
MAC Address: 0A:00:00:00:00:0D (Unknown)

Nmap run completed -- 1 IP address (1 host up) scanned in 5.353 seconds
あらら、丸分かり。
-sSはステルススキャン。TCP接続をフルで行わないので早い?のかな。half-openスキャニングと言うらしい。対象のサーバにログを残さなない場合は多い。※root権限
-sVはサービスを確認する。が付けなくてもrootで動かせばサービス確認できると思います。


以上どぇぇぇす。