nmapのレポートをXMLやgrep形式で出力する

提供: セキュリティ
2015年12月12日 (土) 21:14時点におけるDaemon (トーク | 投稿記録)による版

(差分) ←前の版 | 最新版 (差分) | 次の版→ (差分)
移動: 案内検索
スポンサーリンク

nmap でネットワークスキャンを行ったときに、レポートが標準出力に表示されます。複数のノードの情報やNSEスクリプトによる詳細な結果などが含まれている場合に、nmapの標準形式のレポートを再利用するのが難しい場合があります。そういった場合には、XMLやgrep形式(grepすることを考慮した形式)でファイルに出力します。

読み方

nmap
えぬまっぷ

概要

nmapには、いくつかの形式でファイルにレポートを保存できます。

  • 通常出力
  • XML
  • grep形式
  • スクリプトキディ出力

オプション

nmapの出力
オプション 説明
-oN ファイル名 通常形式でレポートを保存する
-oX ファイル名 XML形式でレポートを保存する
-oS ファイル名 スクリプトキディ形式でレポートを保存する。l33t HaXXorZ」(leet hacker)向け
-oG ファイル名 grep形式でレポートを保存する
-oA 出力先ディレクトリ すべてのフォーマット(通常、XML,grep形式)でレポートを保存する

使い方

以下の設定では、画面につらつらと表示されるだけです。

$ time sudo nmap -sS -O 192.168.60.149
 
Starting Nmap 7.00 ( https://nmap.org ) at 2015-12-12 11:32 JST
Nmap scan report for 192.168.60.149
Host is up (0.00033s latency).
Not shown: 977 closed ports
PORT     STATE SERVICE
21/tcp   open  ftp
22/tcp   open  ssh
23/tcp   open  telnet
25/tcp   open  smtp
53/tcp   open  domain
80/tcp   open  http
111/tcp  open  rpcbind
139/tcp  open  netbios-ssn
445/tcp  open  microsoft-ds
512/tcp  open  exec
513/tcp  open  login
514/tcp  open  shell
1099/tcp open  rmiregistry
1524/tcp open  ingreslock
2049/tcp open  nfs
2121/tcp open  ccproxy-ftp
3306/tcp open  mysql
5432/tcp open  postgresql
5900/tcp open  vnc
6000/tcp open  X11
6667/tcp open  irc
8009/tcp open  ajp13
8180/tcp open  unknown
MAC Address: 00:0C:29:F0:E3:B5 (VMware)
Device type: general purpose
Running: Linux 2.6.X
OS CPE: cpe:/o:linux:linux_kernel:2.6
OS details: Linux 2.6.9 - 2.6.33
Network Distance: 1 hop
 
OS detection performed. Please report any incorrect results at
https://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 337.07 seconds
sudo nmap -sS -O 192.168.60.149 -oG /tmp/mg.txt  1.97s user 0.30s system 0%
cpu 5:40.32 total

Grep形式のファイル

ファイルフォーマットを指定した場合でも、nmapは標準出力に、通常のレポートを表示します。

$ time sudo nmap -sS -O 192.168.60.149 -oG grep.txt
... 同様の出力

ページ作成の関係で、改行を追加していますが、だいたい以下のようになります。 これは、人間がみるためのものではなく、あくまでも grep して、加工するためのものです。そのため、grep形式が人間にとって見やすいものというわけではありません。

# Nmap 7.00 scan initiated Sat Dec 12 11:32:31 2015 as: nmap -sS -O -oG grep.txt 192.168.60.149
Host: 192.168.60.149 () Status: Up
Host: 192.168.60.149 () Ports: 21/open/tcp//ftp///, 22/open/tcp//ssh///,
23/open/tcp//telnet///, 25/open/tcp//smtp///, 53/open/tcp//domain///,
80/open/tcp//http///, 111/open/tcp//rpcbind///, 139/open/tcp//netbios-ssn///,
445/open/tcp//microsoft-ds///, 512/open/tcp//exec///, 513/open/tcp//login///,
514/open/tcp//shell///, 1099/open/tcp//rmiregistry///,
1524/open/tcp//ingreslock///, 2049/open/tcp//nfs///,
2121/open/tcp//ccproxy-ftp///, 3306/open/tcp//mysql///,
5432/open/tcp//postgresql///, 5900/open/tcp//vnc///, 6000/open/tcp//X11///,
6667/open/tcp//irc///, 8009/open/tcp//ajp13///, 8180/open/tcp//unknown///
Ignored State: closed (977)     OS: Linux 2.6.9 - 2.6.33        Seq Index: 202
IP ID Seq: All zeros
# Nmap done at Sat Dec 12 11:38:07 2015 -- 1 IP address (1 host up) scanned in 337.07 seconds

NSEスクリプトと出力形式

nmap NSEスクリプトを用いた場合は、さらに詳細な情報を取得することができます。 詳細情報も XML の形式であれば、一緒に保存されます。grep形式の場合、詳細な情報が乗ってこないようです。

以下は、ssl-enum-ciphersを利用した例です。 -oG で指定したファイルには、TLSの評価の情報が含まれていません。-oX で XML 形式で出力すれば、含まれるようになります。

$ nmap -oG /tmp/login.txt login.yahoo.co.jp --script ssl-enum-ciphers -p 443
 
Starting Nmap 7.00 ( https://nmap.org ) at 2015-12-12 11:52 JST
Nmap scan report for login.yahoo.co.jp (183.79.39.220)
Host is up (0.034s latency).
PORT    STATE SERVICE
443/tcp open  https
| ssl-enum-ciphers:
|   TLSv1.0:
|     ciphers:
|       TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA (secp256r1) - A
|       TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA (secp256r1) - A
|       TLS_RSA_WITH_AES_128_CBC_SHA (rsa 2048) - A
|       TLS_RSA_WITH_AES_256_CBC_SHA (rsa 2048) - A
|       TLS_RSA_WITH_3DES_EDE_CBC_SHA (rsa 2048) - C
|     compressors:
|       NULL
|     cipher preference: server
|   TLSv1.1:
|     ciphers:
|       TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA (secp256r1) - A
|       TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA (secp256r1) - A
|       TLS_RSA_WITH_AES_128_CBC_SHA (rsa 2048) - A
|       TLS_RSA_WITH_AES_256_CBC_SHA (rsa 2048) - A
|       TLS_RSA_WITH_3DES_EDE_CBC_SHA (rsa 2048) - C
|     compressors:
|       NULL
|     cipher preference: server
|   TLSv1.2:
|     ciphers:
|       TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (secp256r1) - A
|       TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (secp256r1) - A
|       TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256 (secp256r1) - A
|       TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384 (secp256r1) - A
|       TLS_RSA_WITH_AES_128_GCM_SHA256 (rsa 2048) - A
|       TLS_RSA_WITH_AES_256_GCM_SHA384 (rsa 2048) - A
|       TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA (secp256r1) - A
|       TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA (secp256r1) - A
|       TLS_RSA_WITH_AES_128_CBC_SHA (rsa 2048) - A
|       TLS_RSA_WITH_AES_256_CBC_SHA (rsa 2048) - A
|       TLS_RSA_WITH_3DES_EDE_CBC_SHA (rsa 2048) - C
|     compressors:
|       NULL
|     cipher preference: server
|_  least strength: C
 
Nmap done: 1 IP address (1 host up) scanned in 5.02 seconds
$ cat /tmp/login.txt
# Nmap 7.00 scan initiated Sat Dec 12 11:52:33 2015 as: nmap -oG /tmp/login.txt --script ssl-enum-ciphers -p 443 login.yahoo.co.jp
Host: 183.79.39.220 ()  Status: Up
Host: 183.79.39.220 ()  Ports: 443/open/tcp//https///
# Nmap done at Sat Dec 12 11:52:38 2015 -- 1 IP address (1 host up) scanned in 5.02 seconds

関連項目




スポンサーリンク