wivern ロゴ

サイバーセキュリティ研究所

サイバーセキュリティを中心に、軍事、防犯、サーバーの管理と監視、その他、最新技術を研究しています。


ネットワーク管理者のための Nmap 例集

[和訳] Nmap Examples For Network Admins

Nmap Examples For Network Admins

Nmap Examples For Network Admins」として、Teknixx.com でオープンソースとして公開されている Nmap の便利な実行例集を和訳して公開します。


Nmap(ネットワーク・マッパー)は、ネットワークの「マップ」を作って、コンピューター・ネットワーク上のホストやサービスを発見するのに使われているセキュリティ・スキャナーです。
目的を果たすために、Nmap は対象ホストに特製のパケットを送信して返信を解析します。

このソフトウェアは、ホストやサービスの発見や OS の検出といった、コンピューター・ネットワークを調査するためのいくつかの特徴を備えています。

こうした特徴は、より進んだサービスの検出や脆弱性の検出や他の特徴を提供するスクリプトで拡張可能です。

ホスト名と IP アドレスでシステムをスキャンする


1つの IP アドレスをスキャンする
nmap 192.168.1.1

ホスト名をスキャンする
nmap server1.nagsis.com

冗長なレベルでホスト名をスキャンする
nmap -v server1.nagsis.com

複数の IP アドレスをスキャンする

nmap 192.168.1.1 192.168.1.2 192.168.1.3
## 同じサブネットで実行する。例:192.168.1.0/24
nmap 192.168.1.1,2,3

IP アドレスのレンジでもスキャンできます:
nmap 192.168.1.1-20

ワイルドカードを使って IP アドレスのレンジでスキャンできます:
nmap 192.168.1.*

最後に、サブネット全体をスキャンできます。
nmap 192.168.1.0/24

ファイルからホストやネットワークのリストを読み込む

-iL オプションを使うと、テキスト・ファイルを使って対象システムのリストを読み込むことができます。
これは、大量のホストやネットワークをスキャンするときに役立ちます。
次のようにしてテキスト・ファイルを作ります:
cat > /tmp/test.txt

出力例:
server1.nagsis.com
192.168.1.0/24
192.168.1.1/24
10.1.2.3
localhost

構文は:
nmap -iL /tmp/test.txt

ホストやネットワークの除外

大量のホストやネットワークをスキャンするときに、ホストをスキャンから除外することができます:
nmap 192.168.1.0/24 --exclude 192.168.1.5
nmap 192.168.1.0/24 --exclude 192.168.1.5,192.168.1.254

または、 /tmp/exclude.txt というファイルで除外対象リストを指定します。
nmap -iL /tmp/scanlist.txt --excludefile /tmp/exclude.txt

OS とバージョンを検出する(IPv4)

nmap -A 192.168.1.254
nmap -v -A 192.168.1.1
nmap -A -iL /tmp/scanlist.txt

ホストやネットワークがファイヤー・ウォールで守られているのを調べる

nmap -sA 192.168.1.254
nmap -sA server1.nagsis.com

ファイヤー・ウォールで守られているホストをスキャンする

nmap -PN 192.168.1.1
nmap -PN server1.nagsis.com

IPv6 のホストやネットワークをスキャンする

-6 オプションは IPv6 スキャンを可能にします。構文は:
nmap -6 IPv6-Address-Here
nmap -6 server1.nagsis.com
nmap -6 2607:f0d0:1002:51::4
nmap -v A -6 2607:f0d0:1002:51::4

ネットワークをスキャンして、どのサーバーやデバイスが稼働中か調べる

これは、ホスト探索とか ping スキャンとして知られています。
nmap -sP 192.168.1.0/24

出力例:
Host 192.168.1.1 is up (0.00035s latency).
MAC Address: BC:AE:C5:C3:16:93 (Unknown)
Host 192.168.1.2 is up (0.0038s latency).
MAC Address: 74:44:01:40:57:FB (Unknown)
Host 192.168.1.5 is up.
Host nas03 (192.168.1.12) is up (0.0091s latency).
MAC Address: 00:11:32:11:15:FC (Synology Incorporated)
Nmap done: 256 IP addresses (4 hosts up) scanned in 2.80 second

高速スキャン

nmap -F 192.168.1.1

ポートが特定の状態にある理由を表示する

nmap --reason 192.168.1.1
nmap --reason server1.nagsis.com

オープンしているポートだけ表示する

nmap --open 192.168.1.1
nmap --open server1.nagsis.com

送受信した全てのパケットを表示する

nmap --packet-trace 192.168.1.1
nmap --packet-trace server1.nagsis.com

ホストのインターフェースとルートを表示する

これは(nmap を使った出力のような ip コマンドや route コマンドや netstat コマンドの)デバッグに役立ちます。
nmap --iflist

出力例:
Starting Nmap 5.00 ( http://nmap.org ) at 2012-11-27 02:01 IST
************************INTERFACES************************
DEV    (SHORT)  IP/MASK          TYPE        UP MAC
lo     (lo)     127.0.0.1/8      loopback    up
eth0   (eth0)   192.168.1.5/24   ethernet    up B8:AC:6F:65:31:E5
vmnet1 (vmnet1) 192.168.121.1/24 ethernet    up 00:50:56:C0:00:01
vmnet8 (vmnet8) 192.168.179.1/24 ethernet    up 00:50:56:C0:00:08
ppp0   (ppp0)   10.1.19.69/32    point2point up

**************************ROUTES**************************
DST/MASK         DEV    GATEWAY
10.0.31.178/32   ppp0
209.133.67.35/32 eth0   192.168.1.2
192.168.1.0/0    eth0
192.168.121.0/0  vmnet1
192.168.179.0/0  vmnet8
169.254.0.0/0    eth0
10.0.0.0/0       ppp0
0.0.0.0/0        eth0   192.168.1.2

特定のポートをスキャン

map -p [port] hostName
## Scan port 80
nmap -p 80 192.168.1.1

## Scan TCP port 80
nmap -p T:80 192.168.1.1

## Scan UDP port 53
nmap -p U:53 192.168.1.1

## Scan two ports ##
nmap -p 80,443 192.168.1.1

## Scan port ranges ##
nmap -p 80-200 192.168.1.1

## Combine all options ##
nmap -p U:53,111,137,T:21-25,80,139,8080 192.168.1.1
nmap -p U:53,111,137,T:21-25,80,139,8080 server1.nagsis.com
nmap -v -sU -sT -p U:53,111,137,T:21-25,80,139,8080 192.168.1.254

## Scan all ports with * wildcard ##
nmap -p "*" 192.168.1.1

## Scan top ports i.e. scan $number most common ports ##
nmap --top-ports 5 192.168.1.1
nmap --top-ports 10 192.168.1.1

出力例:
Starting Nmap 5.00 ( http://nmap.org ) at 2012-11-27 01:23 IST
Interesting ports on 192.168.1.1:
PORT     STATE  SERVICE
21/tcp   closed ftp
22/tcp   open   ssh
23/tcp   closed telnet
25/tcp   closed smtp
80/tcp   open   http
110/tcp  closed pop3
139/tcp  closed netbios-ssn
443/tcp  closed https
445/tcp  closed microsoft-ds
3389/tcp closed ms-term-serv
MAC Address: BC:AE:C5:C3:16:93 (Unknown)

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

全ての自分のデバイスやコンピュータのオープン・ポートを最も早く調べる方法

nmap -T5 192.168.1.0/24

遠隔の OS を検出する方法

-O オプションを使って遠隔のホスト・アプリや OS を特定できます
nmap -O 192.168.1.1
nmap -O  --osscan-guess 192.168.1.1
nmap -v -O --osscan-guess 192.168.1.1

出力例:
Starting Nmap 5.00 ( http://nmap.org ) at 2012-11-27 01:29 IST
NSE: Loaded 0 scripts for scanning.
Initiating ARP Ping Scan at 01:29
Scanning 192.168.1.1 [1 port]
Completed ARP Ping Scan at 01:29, 0.01s elapsed (1 total hosts)
Initiating Parallel DNS resolution of 1 host. at 01:29
Completed Parallel DNS resolution of 1 host. at 01:29, 0.22s elapsed
Initiating SYN Stealth Scan at 01:29
Scanning 192.168.1.1 [1000 ports]
Discovered open port 80/tcp on 192.168.1.1
Discovered open port 22/tcp on 192.168.1.1
Completed SYN Stealth Scan at 01:29, 0.16s elapsed (1000 total ports)
Initiating OS detection (try #1) against 192.168.1.1
Retrying OS detection (try #2) against 192.168.1.1
Retrying OS detection (try #3) against 192.168.1.1
Retrying OS detection (try #4) against 192.168.1.1
Retrying OS detection (try #5) against 192.168.1.1
Host 192.168.1.1 is up (0.00049s latency).
Interesting ports on 192.168.1.1:
Not shown: 998 closed ports
PORT   STATE SERVICE
22/tcp open  ssh
80/tcp open  http
MAC Address: BC:AE:C5:C3:16:93 (Unknown)
Device type: WAP|general purpose|router|printer|broadband router
Running (JUST GUESSING) : Linksys Linux 2.4.X (95%), Linux 2.4.X|2.6.X (94%), MikroTik RouterOS 3.X (92%), Lexmark embedded (90%), Enterasys embedded (89%), D-Link Linux 2.4.X (89%), Netgear Linux 2.4.X (89%)
Aggressive OS guesses: OpenWrt White Russian 0.9 (Linux 2.4.30) (95%), OpenWrt 0.9 - 7.09 (Linux 2.4.30 - 2.4.34) (94%), OpenWrt Kamikaze 7.09 (Linux 2.6.22) (94%), Linux 2.4.21 - 2.4.31 (likely embedded) (92%), Linux 2.6.15 - 2.6.23 (embedded) (92%), Linux 2.6.15 - 2.6.24 (92%), MikroTik RouterOS 3.0beta5 (92%), MikroTik RouterOS 3.17 (92%), Linux 2.6.24 (91%), Linux 2.6.22 (90%)
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=5.00%D=11/27%OT=22%CT=1%CU=30609%PV=Y%DS=1%G=Y%M=BCAEC5%TM=50B3CA
OS:4B%P=x86_64-unknown-linux-gnu)SEQ(SP=C8%GCD=1%ISR=CB%TI=Z%CI=Z%II=I%TS=7
OS:)OPS(O1=M2300ST11NW2%O2=M2300ST11NW2%O3=M2300NNT11NW2%O4=M2300ST11NW2%O5
OS:=M2300ST11NW2%O6=M2300ST11)WIN(W1=45E8%W2=45E8%W3=45E8%W4=45E8%W5=45E8%W
OS:6=45E8)ECN(R=Y%DF=Y%T=40%W=4600%O=M2300NNSNW2%CC=N%Q=)T1(R=Y%DF=Y%T=40%S
OS:=O%A=S+%F=AS%RD=0%Q=)T2(R=N)T3(R=N)T4(R=Y%DF=Y%T=40%W=0%S=A%A=Z%F=R%O=%R
OS:D=0%Q=)T5(R=Y%DF=Y%T=40%W=0%S=Z%A=S+%F=AR%O=%RD=0%Q=)T6(R=Y%DF=Y%T=40%W=
OS:0%S=A%A=Z%F=R%O=%RD=0%Q=)T7(R=N)U1(R=Y%DF=N%T=40%IPL=164%UN=0%RIPL=G%RID
OS:=G%RIPCK=G%RUCK=G%RUD=G)IE(R=Y%DFI=N%T=40%CD=S)
Uptime guess: 12.990 days (since Wed Nov 14 01:44:40 2012)
Network Distance: 1 hop
TCP Sequence Prediction: Difficulty=200 (Good luck!)
IP ID Sequence Generation: All zeros
Read data files from: /usr/share/nmap
OS detection performed. Please report any incorrect results at http://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 12.38 seconds
           Raw packets sent: 1126 (53.832KB) | Rcvd: 1066 (46.100KB)

遠隔のサービス(サーバーやデーモン)のバージョン番号を検出する方法

nmap -sV 192.168.1.1

出力例:
Starting Nmap 5.00 ( http://nmap.org ) at 2012-11-27 01:34 IST
Interesting ports on 192.168.1.1:
Not shown: 998 closed ports
PORT   STATE SERVICE VERSION
22/tcp open  ssh     Dropbear sshd 0.52 (protocol 2.0)
80/tcp open  http?
1 service unrecognized despite returning data.

TCP ACK (PA) と TCP Syn (PS) ping を使ってホストをスキャンする

ファイヤー・ウォールが標準的な ICMP ping をブロックしている場合は、このホスト発見方法を試してください:
nmap -PS 192.168.1.1
nmap -PS 80,21,443 192.168.1.1
nmap -PA 192.168.1.1
nmap -PA 80,21,200-512 192.168.1.1

IP プロトコルの ping を使ってホストをスキャンする

nmap -PO 192.168.1.1

UDP ping を使ってホストをスキャンする

このスキャンは、画面 TCP だけのファイヤー・ウォールとフィルターをバイパスします:
nmap -PU 192.168.1.1
nmap -PU 2000.2001 192.168.1.1

TCP SYN スキャンを使って最も一般的に使われている TCP ポートを探し出す

### Stealthy scan ###
nmap -sS 192.168.1.1

### Find out the most commonly used TCP ports using  TCP connect scan (warning: no stealth scan)
###  OS Fingerprinting ###
nmap -sT 192.168.1.1

### Find out the most commonly used TCP ports using TCP ACK scan
nmap -sA 192.168.1.1

### Find out the most commonly used TCP ports using TCP Window scan
nmap -sW 192.168.1.1

### Find out the most commonly used TCP ports using TCP Maimon scan
nmap -sM 192.168.1.1

UDP サービスを提供しているホストをスキャンする( UDP スキャン)

インターネットではたいていのポピュラーなサービスは TCP プロトコルで動作しています。
DNS、SNMP と DHCP は最も一般的な UDP サービスの内の3つです。
UDP サービスを探し出すのにこの構文を使います:
nmap -sU nas03
nmap -sU 192.168.1.1

出力例:
Starting Nmap 5.00 ( http://nmap.org ) at 2012-11-27 00:52 IST
Stats: 0:05:29 elapsed; 0 hosts completed (1 up), 1 undergoing UDP Scan
UDP Scan Timing: About 32.49% done; ETC: 01:09 (0:11:26 remaining)
Interesting ports on nas03 (192.168.1.12):
Not shown: 995 closed ports
PORT     STATE         SERVICE
111/udp  open|filtered rpcbind
123/udp  open|filtered ntp
161/udp  open|filtered snmp
2049/udp open|filtered nfs
5353/udp open|filtered zeroconf
MAC Address: 00:11:32:11:15:FC (Synology Incorporated)

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

IP プロトコルをスキャンする

このタイプのスキャンは対象マシンでどの IP プロトコル(TCP, ICMP, IGMP, etc.)がサポートされているかを判定できます:
nmap -sO 192.168.1.1

セキュリティの弱点でファイヤー・ウォールをスキャンする

このタイプのスキャンは、TCP の巧妙な抜け穴を利用して、一般的な攻撃のセキュリティをテストするのに有用です:
## TCP Null Scan to fool a firewall to generate a response ##
## Does not set any bits (TCP flag header is 0) ##
nmap -sN 192.168.1.254

## TCP Fin scan to check firewall ##
## Sets just the TCP FIN bit ##
nmap -sF 192.168.1.254

## TCP Xmas scan to check firewall ##
## Sets the FIN, PSH, and URG flags, lighting the packet up like a Christmas tree ##
nmap -sX 192.168.1.254

パケットの断片でファイヤー・ウォールをスキャンする

-f オプションは、IP パケットの小さな断片を使って( ping スキャンを含む)要求されたスキャンをさせます。
いくつものパケットに対して TCP ヘッダを分割して、パケット・フィルターや侵入検知システムやその他の厄介者に、こちらの行為を検出しようとするのを難しくするという考え方です。
nmap -f 192.168.1.1
nmap -f fw2.nagsis.com.in
nmap -f 15 fw2.nagsis.com.in
## Set your own offset size with the --mtu option ##
nmap --mtu 32 192.168.1.1

おとりでスキャンを擬装する

-D オプションを使うと、遠隔ホストからは、おとりに指定したホストが対象のネットワークもスキャンしているように見えます。
このようにして IDS はユニークな IP アドレスからの5~10のポート・スキャンと報告しますが、どの IP アドレスがスキャンしていてどれが無害なおとりであるかがわかりません:
nmap -n -Ddecoy-ip1,decoy-ip2,your-own-ip,decoy-ip3,decoy-ip4 remote-host-ip
nmap -n -D192.168.1.5,10.5.1.2,172.1.2.4,3.4.2.1 192.168.1.5

MAC アドレスをスピーフィングしてファイヤー・ウォールをスキャンする
### Spoof your MAC address ##
nmap --spoof-mac MAC-ADDRESS-HERE 192.168.1.1

### Add other options ###
nmap -v -sT -PN --spoof-mac MAC-ADDRESS-HERE 192.168.1.1

### Use a random MAC address ###
### The number 0, means nmap chooses a completely random MAC address ###
nmap -v -sT -PN --spoof-mac 0 192.168.1.1

テキスト・ファイルに出力を保存する方法

構文は:
nmap 192.168.1.1 > output.txt
nmap -oN /path/to/filename 192.168.1.1
nmap -oN output.txt 192.168.1.1


記述に際しては、細心の注意をしたつもりですが、間違いやご指摘がありましたら、こちらからお知らせいただけると幸いです。


→「マルウェア解析のエキスパートになるための4ステップ」
←「不正アクセス IP アドレスリスト」


« 戻る