「nmap」の版間の差分

提供: セキュリティ
移動: 案内検索
(nmapに関する記事)
 
(同じ利用者による、間の22版が非表示)
行1: 行1:
<!--
+
[[nmap]] (Network Mapper)は、ネットワークの調査ツールとセキュリティ/ポートスキャナーです。[[nmap]]のNSE(Nmap Scripting Engine)は、NSEスクリプト([[Lua]])で[[nmap]]プラグインを実装できます。詳しくは、[[nmap NSEスクリプト]]をご参照ください。
vim:filetype=mediawiki
+
-->
+
  
[[nmap]] (Network Mapper)は、ネットワークの調査ツールとセキュリティ/ポートスキャナーです。
+
'''読み方'''
 
+
読み方
+
 
;[[nmap]]:えぬまっぷ
 
;[[nmap]]:えぬまっぷ
 
;Network Mapper:ねっとわーく まっぱー
 
;Network Mapper:ねっとわーく まっぱー
行11: 行7:
  
 
== 概要 ==
 
== 概要 ==
 +
[[nmap]] は、ネットワークの調査ツールとセキュリティ/ポートスキャナーです。Nmap Scripting Engine (NSE) でスキャンを拡張できます。NSE は、[[Lua]]スクリプト言語で記述します。
  
[[nmap]] は、ネットワークの調査ツールとセキュリティ/ポートスキャナーです。
+
セキュリティスキャンの前段階の工程で利用されます。[[zenmap]] と呼ばれるフロントエンドがあります。[[OpenVAS]] や [[Metasploit]] からも利用されます。
Nmap Scripting Engine (NSE) でスキャンを拡張できます。
+
NSE は、[[Lua]]スクリプト言語で記述します。
+
 
+
セキュリティスキャンの前段階の工程で利用されます。
+
 
+
[[zenmap]] と呼ばれるフロントエンドがあります。
+
 
+
[[OpenVAS]] や [[Metasploit]] からも利用されます。
+
 
+
 
== インストール ==
 
== インストール ==
 
+
{{pkg|nmap}}
{{ports|/usr/ports/security/nmap|nmap}}
+
 
+
 
{{yum|nmap}}
 
{{yum|nmap}}
 
+
{{apt|nmap}}
 +
== ビルド ==
 +
* [[nmapをUbuntuでビルドする]]
 
== 使い方 ==
 
== 使い方 ==
 
 
=== オプション ===
 
=== オプション ===
 
 
{|class="wikitable"
 
{|class="wikitable"
 
!オプション
 
!オプション
行37: 行23:
 
|+
 
|+
 
| -sT
 
| -sT
| コネクトスキャン
+
| '''TCP コネクトスキャン'''
|+
+
| -sS
+
| SYNスキャン
+
 
|+
 
|+
 
| -sS
 
| -sS
| SYNスキャン
+
| [[TCP SYNスキャン]]
 
|+
 
|+
 
| -sU
 
| -sU
| UDPスキャン
+
| '''UDPスキャン'''
 
|+
 
|+
 
| -sP
 
| -sP
行59: 行42:
 
| -p
 
| -p
 
| ポート番号を指定する。 -p 80 -p 80,81 -p 80-90
 
| ポート番号を指定する。 -p 80 -p 80,81 -p 80-90
 +
|+
 +
| -A
 +
| アグレッシブスキャンオプションです。Additional(付加的)、Advanced(高度)、Aggressive(アグレッシブ)なオプションを有効にします。[[nmap OS検出|OS検出]](-O)とバージョンスキャン(-sV)を実行します。
 +
|+
 +
| -Tタイミングテンプレート
 +
| タイミングを制御します。
 +
|+
 +
| -d [level]
 +
| デバッグレベルを挙げます。-ddでさらにデバッグレベルがあがります。-d level (-d9など)を指定できます。
 +
|+
 +
| -v
 +
| 冗長レベルを挙げます。[[nmap]]の進行中ののスキャンに関する情報を多く表示します。-vvでさらに冗長レベルがあがります。
 +
|+
 +
| -V
 +
| バージョンを表示します。
 +
|+
 +
| -6
 +
| [[IPv6]]を有効にします。
 
|}
 
|}
  
 +
==== -T オプション ====
 +
-T オプションは、テンプレートを指定します。
 +
* paranoid (0)
 +
* sneaky (1)
 +
* polite (2)
 +
* normal (3)
 +
* aggressive (4)
 +
* insane (5)
 +
 +
テンプレート paranoid(0)を指定する場合は、-T0となります。
 +
-T3(normal)は、通常モードであるため、指定しても特に変化はありません。
 +
 +
politeは、「礼儀正しい」モードです。デフォルトのスキャンに比べて、10倍の時間がかかるため、推奨されません。
 +
 +
通常は、-T4を利用することがお勧めできます。
 +
 +
-T0や-T1は、[[IDS]]の警告を回避するのに役立つ可能性がありますが、数千単位のマシンやポートをスキャンする場合には、時間がかかります。
 +
=== バージョンを調べる ===
 +
<syntaxhighlight lang="bash">
 +
% nmap -V
 +
Nmap version 6.40 ( http://nmap.org )
 +
Platform: i386-portbld-freebsd9.2
 +
Compiled with: nmap-liblua-5.2.2 openssl-1.0.1e libpcre-8.33 libpcap-1.4.0 nmap-libdnet-1.12 ipv6
 +
Compiled without:
 +
Available nsock engines: kqueue poll select
 +
</syntaxhighlight>
 +
=== ポートのSTATE ===
 +
{|class="wikitable"
 +
|+ 検出したポートのSTATE
 +
! STATE
 +
! 説明
 +
|-
 +
| open
 +
| ポートが開いていて、待ち受けが行われています。
 +
|-
 +
| closed
 +
| ポートにアクセスできるが、ポートが閉じられています。
 +
|-
 +
| filtered
 +
| パケットフィルタが適用されていて、そのポートが利用可能か判断できません。
 +
|-
 +
| unfiltered
 +
| ポートにアクセスできるが、ポートが開いているか判断できません。
 +
|-
 +
| open|filtered
 +
| ポートが開いているか、パケットフィルタが適用されている、そのどちらかが判断できません。
 +
|-
 +
| closed|filtered
 +
| ポートは閉じられている、パケットフィルタが提供されている、そのどちらかが判断できません。
 +
|}
 
=== スキャン ===
 
=== スキャン ===
  
行89: 行140:
 
</syntaxhighlight>
 
</syntaxhighlight>
  
[[ルータ]]や[[ファイアウォール]]によってフィルタ状態の場合は、 filtered となります。
+
[[ルーター]]や[[ファイアーウォール]]によってフィルタ状態の場合は、 filtered となります。
 
<syntaxhighlight lang="bash">
 
<syntaxhighlight lang="bash">
 
% nmap localhost -p 80
 
% nmap localhost -p 80
行101: 行152:
 
Nmap done: 1 IP address (1 host up) scanned in 0.05 seconds
 
Nmap done: 1 IP address (1 host up) scanned in 0.05 seconds
 
</syntaxhighlight>
 
</syntaxhighlight>
 
 
=== コネクトスキャン ===
 
=== コネクトスキャン ===
 
 
<syntaxhighlight lang="bash">
 
<syntaxhighlight lang="bash">
 
% nmap -sT 192.168.0.1
 
% nmap -sT 192.168.0.1
 
</syntaxhighlight>
 
</syntaxhighlight>
 
 
=== SYNスキャン ===
 
=== SYNスキャン ===
 
 
<syntaxhighlight lang="bash">
 
<syntaxhighlight lang="bash">
 
% nmap -sS 192.168.0.1
 
% nmap -sS 192.168.0.1
 
</syntaxhighlight>
 
</syntaxhighlight>
 
 
=== UDPスキャン ===
 
=== UDPスキャン ===
 
 
<syntaxhighlight lang="bash">
 
<syntaxhighlight lang="bash">
 
% nmap -sU 192.168.0.1
 
% nmap -sU 192.168.0.1
 
</syntaxhighlight>
 
</syntaxhighlight>
 
 
=== ネットワークスキャン ===
 
=== ネットワークスキャン ===
 
 
<syntaxhighlight lang="bash">
 
<syntaxhighlight lang="bash">
 
% nmap -sS -P0 -n 192.168.0.1-254
 
% nmap -sS -P0 -n 192.168.0.1-254
行130: 行173:
 
% nmap -sS -P0 -p 80 -n 192.168.0.1-254
 
% nmap -sS -P0 -p 80 -n 192.168.0.1-254
 
</syntaxhighlight>
 
</syntaxhighlight>
 
 
=== ネットワーク pingスキャン ===
 
=== ネットワーク pingスキャン ===
 
 
[[pingスイープ]]です。
 
[[pingスイープ]]です。
 +
-snオプションは、[[nmap]]の古いバージョンでは、-sP です。
 +
 
<syntaxhighlight lang="bash">
 
<syntaxhighlight lang="bash">
% nmap -sP 192.168.0.1-254
+
% nmap -sn 192.168.0.1-254
 
</syntaxhighlight>
 
</syntaxhighlight>
  
== 関連項目 ==
+
詳しくは、[[pingスイープ]]を参照してください。
 +
=== OS検出 ===
 +
[[nmap]]は、[[OS]]を推測できます。開いているポートや[[TCP]]などのパケットのオプションなどの情報を元に推測します。
 +
<syntaxhighlight lang="bash">
 +
% nmap -O foo.com
 +
% nmap -O -A foo.com
 +
% nmap -O --osscan-limit foo.com
 +
% nmap -O --osscan-guess --fuzzy foo.com
 +
</syntaxhighlight>
  
 +
詳しくは、[[nmap OS検出]]をご参照ください。
 +
=== NSEスクリプト ===
 +
[[nmap]]のNSE(Nmap Scripting Engine)は、NSEスクリプトで[[nmap]]プラグインを実装できます。
 +
詳しくは、[[nmap NSEスクリプト]]をご参照ください。
 +
==== サーバで利用できる暗号リストを列挙する ====
 +
NSEスクリプトの[[ssl-enum-ciphers]]を利用すれば、暗号スイートを列挙します。
 +
たとえば、[[https]]サービスで利用できる暗号スイートを調べることができます。新しい [[ssl-enum-ciphers]]では、AからEのグレードで評価を表示します。
 +
[[ssl-enum-ciphers]]と似たようなことは、[[sslscan]]でも行えます。
 +
<syntaxhighlight lang="bash">
 +
$ nmap --script ssl-enum-ciphers accounts.google.com -p 443
 +
 +
Starting Nmap 6.47 ( http://nmap.org ) at 2014-10-24 00:33 JST
 +
Nmap scan report for accounts.google.com (74.125.23.84)
 +
Host is up (0.042s latency).
 +
rDNS record for 74.125.23.84: tg-in-f84.1e100.net
 +
PORT    STATE SERVICE
 +
443/tcp open  https
 +
| ssl-enum-ciphers:
 +
|  SSLv3:
 +
|    ciphers:
 +
|      TLS_ECDHE_RSA_WITH_3DES_EDE_CBC_SHA - strong
 +
|      TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA - strong
 +
|      TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA - strong
 +
|      TLS_ECDHE_RSA_WITH_RC4_128_SHA - strong
 +
|      TLS_RSA_WITH_3DES_EDE_CBC_SHA - strong
 +
|      TLS_RSA_WITH_AES_128_CBC_SHA - strong
 +
|      TLS_RSA_WITH_AES_256_CBC_SHA - strong
 +
|      TLS_RSA_WITH_RC4_128_MD5 - strong
 +
|      TLS_RSA_WITH_RC4_128_SHA - strong
 +
|    compressors:
 +
|      NULL
 +
|  TLSv1.0:
 +
|    ciphers:
 +
|      TLS_ECDHE_RSA_WITH_3DES_EDE_CBC_SHA - strong
 +
|      TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA - strong
 +
|      TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA - strong
 +
|      TLS_ECDHE_RSA_WITH_RC4_128_SHA - strong
 +
|      TLS_RSA_WITH_3DES_EDE_CBC_SHA - strong
 +
|      TLS_RSA_WITH_AES_128_CBC_SHA - strong
 +
|      TLS_RSA_WITH_AES_256_CBC_SHA - strong
 +
|      TLS_RSA_WITH_RC4_128_MD5 - strong
 +
|      TLS_RSA_WITH_RC4_128_SHA - strong
 +
|    compressors:
 +
|      NULL
 +
|  TLSv1.1:
 +
|    ciphers:
 +
|      TLS_ECDHE_RSA_WITH_3DES_EDE_CBC_SHA - strong
 +
|      TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA - strong
 +
|      TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA - strong
 +
|      TLS_ECDHE_RSA_WITH_RC4_128_SHA - strong
 +
|      TLS_RSA_WITH_3DES_EDE_CBC_SHA - strong
 +
|      TLS_RSA_WITH_AES_128_CBC_SHA - strong
 +
|      TLS_RSA_WITH_AES_256_CBC_SHA - strong
 +
|      TLS_RSA_WITH_RC4_128_MD5 - strong
 +
|      TLS_RSA_WITH_RC4_128_SHA - strong
 +
|    compressors:
 +
|      NULL
 +
|  TLSv1.2:
 +
|    ciphers:
 +
|      TLS_ECDHE_RSA_WITH_3DES_EDE_CBC_SHA - strong
 +
|      TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA - strong
 +
|      TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256 - strong
 +
|      TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 - strong
 +
|      TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA - strong
 +
|      TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384 - strong
 +
|      TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 - strong
 +
|      TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256 - strong
 +
|      TLS_ECDHE_RSA_WITH_RC4_128_SHA - strong
 +
|      TLS_RSA_WITH_3DES_EDE_CBC_SHA - strong
 +
|      TLS_RSA_WITH_AES_128_CBC_SHA - strong
 +
|      TLS_RSA_WITH_AES_128_CBC_SHA256 - strong
 +
|      TLS_RSA_WITH_AES_128_GCM_SHA256 - strong
 +
|      TLS_RSA_WITH_AES_256_CBC_SHA - strong
 +
|      TLS_RSA_WITH_AES_256_CBC_SHA256 - strong
 +
|      TLS_RSA_WITH_AES_256_GCM_SHA384 - strong
 +
|      TLS_RSA_WITH_RC4_128_MD5 - strong
 +
|      TLS_RSA_WITH_RC4_128_SHA - strong
 +
|    compressors:
 +
|      NULL
 +
|_  least strength: strong
 +
 +
Nmap done: 1 IP address (1 host up) scanned in 2.52 seconds
 +
</syntaxhighlight>
 +
 +
=== デバッグレベル ===
 +
<syntaxhighlight lang="bash">
 +
% nmap -d -p 22 localhost
 +
 +
Starting Nmap 6.40 ( http://nmap.org ) at 2013-12-05 08:13 JST
 +
--------------- Timing report ---------------
 +
  hostgroups: min 1, max 100000
 +
  rtt-timeouts: init 1000, min 100, max 10000
 +
  max-scan-delay: TCP 1000, UDP 1000, SCTP 1000
 +
  parallelism: min 0, max 0
 +
  max-retries: 10, host-timeout: 0
 +
  min-rate: 0, max-rate: 0
 +
---------------------------------------------
 +
Initiating Ping Scan at 08:13
 +
Scanning 2 hosts [2 ports/host]
 +
Completed Ping Scan at 08:13, 1.24s elapsed (2 total hosts)
 +
Overall sending rates: 4.84 packets / s.
 +
mass_rdns: Using DNS server 192.168.0.1
 +
Nmap scan report for 1 (0.0.0.1) [host down, received no-response]
 +
Initiating Connect Scan at 08:13
 +
Scanning localhost (127.0.0.1) [1 port]
 +
Discovered open port 22/tcp on 127.0.0.1
 +
Completed Connect Scan at 08:13, 0.00s elapsed (1 total ports)
 +
Overall sending rates: 1091.70 packets / s.
 +
Nmap scan report for localhost (127.0.0.1)
 +
Host is up, received syn-ack (0.00048s latency).
 +
Scanned at 2013-12-05 08:13:05 JST for 2s
 +
PORT  STATE SERVICE REASON
 +
22/tcp open  ssh    syn-ack
 +
Final times for host: srtt: 482 rttvar: 2880  to: 100000
 +
 +
Read from /usr/local/share/nmap: nmap-payloads nmap-services.
 +
Nmap done: 2 IP addresses (1 host up) scanned in 1.33 seconds
 +
</syntaxhighlight>
 +
=== 冗長レベル ===
 +
[[nmap]]の動作している状況が細かくわかるようになります。
 +
<syntaxhighlight lang="bash">
 +
% nmap -v localhost
 +
 +
Starting Nmap 6.40 ( http://nmap.org ) at 2013-12-05 08:15 JST
 +
Initiating Ping Scan at 08:15
 +
Scanning localhost (127.0.0.1) [2 ports]
 +
Completed Ping Scan at 08:15, 0.00s elapsed (1 total hosts)
 +
Initiating Connect Scan at 08:15
 +
Scanning localhost (127.0.0.1) [1000 ports]
 +
Discovered open port 25/tcp on 127.0.0.1
 +
Discovered open port 80/tcp on 127.0.0.1
 +
Discovered open port 22/tcp on 127.0.0.1
 +
Increasing send delay for 127.0.0.1 from 0 to 5 due to max_successful_tryno increase to 4
 +
Completed Connect Scan at 08:15, 9.75s elapsed (1000 total ports)
 +
Nmap scan report for localhost (127.0.0.1)
 +
Host is up (0.00020s latency).
 +
Not shown: 997 closed ports
 +
PORT  STATE SERVICE
 +
22/tcp open  ssh
 +
25/tcp open  smtp
 +
80/tcp open  http
 +
 +
Read data files from: /usr/local/share/nmap
 +
Nmap done: 1 IP address (1 host up) scanned in 9.84 seconds
 +
</syntaxhighlight>
 +
== nmapに関する記事 ==
 +
{{nmap}}
 +
* [[ssl-enum-ciphers]]
 +
* [[nmapでredisをスキャンする]]
 +
* [[nmapでredisのパスワードをブルートフォースアタックする]]
 +
* [[nmapでオープンしているポートだけを表示する]]
 +
* [[nmapのレポートをXMLやgrep形式で出力する]]
 +
 +
== 関連項目 ==
 +
* [[Nmap 7 リリース]]
 
* [[セキュリティ診断ツール]]
 
* [[セキュリティ診断ツール]]
 
* [[amap]]
 
* [[amap]]
 +
* [[ルーター]]
 +
* [[ファイアーウォール]]
 +
* [[Metasploit]]
 +
* [[OpenVAS]]
 +
<!-- vim:filetype=mediawiki
 +
-->

2015年12月12日 (土) 11:32時点における最新版

nmap (Network Mapper)は、ネットワークの調査ツールとセキュリティ/ポートスキャナーです。nmapのNSE(Nmap Scripting Engine)は、NSEスクリプト(Lua)でnmapプラグインを実装できます。詳しくは、nmap NSEスクリプトをご参照ください。

読み方

nmap
えぬまっぷ
Network Mapper
ねっとわーく まっぱー

概要

nmap は、ネットワークの調査ツールとセキュリティ/ポートスキャナーです。Nmap Scripting Engine (NSE) でスキャンを拡張できます。NSE は、Luaスクリプト言語で記述します。

セキュリティスキャンの前段階の工程で利用されます。zenmap と呼ばれるフロントエンドがあります。OpenVASMetasploit からも利用されます。

インストール

FreeBSDにインストールする場合

pkgコマンドでインストールする場合

sudo pkg install nmap

CentOSにインストールする場合

CentOSyum コマンドでインストールする場合。

sudo yum -y  install nmap

Ubuntu/Debianにインストールする場合

apt-get コマンドでインストールする場合です。

sudo apt-get install nmap

ビルド

使い方

オプション

オプション 説明
-sT TCP コネクトスキャン
-sS TCP SYNスキャン
-sU UDPスキャン
-sP pingスキャン
-P0 PINGに応答しない場合でもスキャンする
-n DNS解決をやらない
-p ポート番号を指定する。 -p 80 -p 80,81 -p 80-90
-A アグレッシブスキャンオプションです。Additional(付加的)、Advanced(高度)、Aggressive(アグレッシブ)なオプションを有効にします。OS検出(-O)とバージョンスキャン(-sV)を実行します。
-Tタイミングテンプレート タイミングを制御します。
-d [level] デバッグレベルを挙げます。-ddでさらにデバッグレベルがあがります。-d level (-d9など)を指定できます。
-v 冗長レベルを挙げます。nmapの進行中ののスキャンに関する情報を多く表示します。-vvでさらに冗長レベルがあがります。
-V バージョンを表示します。
-6 IPv6を有効にします。

-T オプション

-T オプションは、テンプレートを指定します。

  • paranoid (0)
  • sneaky (1)
  • polite (2)
  • normal (3)
  • aggressive (4)
  • insane (5)

テンプレート paranoid(0)を指定する場合は、-T0となります。 -T3(normal)は、通常モードであるため、指定しても特に変化はありません。

politeは、「礼儀正しい」モードです。デフォルトのスキャンに比べて、10倍の時間がかかるため、推奨されません。

通常は、-T4を利用することがお勧めできます。

-T0や-T1は、IDSの警告を回避するのに役立つ可能性がありますが、数千単位のマシンやポートをスキャンする場合には、時間がかかります。

バージョンを調べる

% nmap -V
Nmap version 6.40 ( http://nmap.org )
Platform: i386-portbld-freebsd9.2
Compiled with: nmap-liblua-5.2.2 openssl-1.0.1e libpcre-8.33 libpcap-1.4.0 nmap-libdnet-1.12 ipv6
Compiled without:
Available nsock engines: kqueue poll select

ポートのSTATE

検出したポートのSTATE
STATE 説明
open ポートが開いていて、待ち受けが行われています。
closed ポートにアクセスできるが、ポートが閉じられています。
filtered パケットフィルタが適用されていて、そのポートが利用可能か判断できません。
unfiltered ポートにアクセスできるが、ポートが開いているか判断できません。
open|filtered ポートが開いているか、パケットフィルタが適用されている、そのどちらかが判断できません。
closed|filtered ポートは閉じられている、パケットフィルタが提供されている、そのどちらかが判断できません。

スキャン

ポートが開いている場合は、 open となります。

% nmap localhost -p 22
 
Starting Nmap 5.61TEST2 ( http://nmap.org ) at 2013-01-11 15:02 JST
Nmap scan report for localhost (127.0.0.1)
Host is up (0.000025s latency).
PORT   STATE SERVICE
22/tcp open  ssh
 
Nmap done: 1 IP address (1 host up) scanned in 0.03 seconds

ポートが閉じている場合は、 closed となります。

% nmap localhost -p 80
 
Starting Nmap 5.61TEST2 ( http://nmap.org ) at 2013-01-11 15:02 JST
Nmap scan report for localhost (127.0.0.1)
Host is up (0.000024s latency).
PORT   STATE  SERVICE
80/tcp closed http
 
Nmap done: 1 IP address (1 host up) scanned in 0.05 seconds

ルーターファイアーウォールによってフィルタ状態の場合は、 filtered となります。

% nmap localhost -p 80
 
Starting Nmap 5.61TEST2 ( http://nmap.org ) at 2013-01-11 15:02 JST
Nmap scan report for localhost (127.0.0.1)
Host is up (0.000024s latency).
PORT   STATE  SERVICE
80/tcp filtered http
 
Nmap done: 1 IP address (1 host up) scanned in 0.05 seconds

コネクトスキャン

% nmap -sT 192.168.0.1

SYNスキャン

% nmap -sS 192.168.0.1

UDPスキャン

% nmap -sU 192.168.0.1

ネットワークスキャン

% nmap -sS -P0 -n 192.168.0.1-254

80番ポート(HTTP)のみをスキャンする例です。

% nmap -sS -P0 -p 80 -n 192.168.0.1-254

ネットワーク pingスキャン

pingスイープです。 -snオプションは、nmapの古いバージョンでは、-sP です。

% nmap -sn 192.168.0.1-254

詳しくは、pingスイープを参照してください。

OS検出

nmapは、OSを推測できます。開いているポートやTCPなどのパケットのオプションなどの情報を元に推測します。

% nmap -O foo.com
% nmap -O -A foo.com
% nmap -O --osscan-limit foo.com
% nmap -O --osscan-guess --fuzzy foo.com

詳しくは、nmap OS検出をご参照ください。

NSEスクリプト

nmapのNSE(Nmap Scripting Engine)は、NSEスクリプトでnmapプラグインを実装できます。 詳しくは、nmap NSEスクリプトをご参照ください。

サーバで利用できる暗号リストを列挙する

NSEスクリプトのssl-enum-ciphersを利用すれば、暗号スイートを列挙します。 たとえば、httpsサービスで利用できる暗号スイートを調べることができます。新しい ssl-enum-ciphersでは、AからEのグレードで評価を表示します。 ssl-enum-ciphersと似たようなことは、sslscanでも行えます。

$ nmap --script ssl-enum-ciphers accounts.google.com -p 443
 
Starting Nmap 6.47 ( http://nmap.org ) at 2014-10-24 00:33 JST
Nmap scan report for accounts.google.com (74.125.23.84)
Host is up (0.042s latency).
rDNS record for 74.125.23.84: tg-in-f84.1e100.net
PORT    STATE SERVICE
443/tcp open  https
| ssl-enum-ciphers:
|   SSLv3:
|     ciphers:
|       TLS_ECDHE_RSA_WITH_3DES_EDE_CBC_SHA - strong
|       TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA - strong
|       TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA - strong
|       TLS_ECDHE_RSA_WITH_RC4_128_SHA - strong
|       TLS_RSA_WITH_3DES_EDE_CBC_SHA - strong
|       TLS_RSA_WITH_AES_128_CBC_SHA - strong
|       TLS_RSA_WITH_AES_256_CBC_SHA - strong
|       TLS_RSA_WITH_RC4_128_MD5 - strong
|       TLS_RSA_WITH_RC4_128_SHA - strong
|     compressors:
|       NULL
|   TLSv1.0:
|     ciphers:
|       TLS_ECDHE_RSA_WITH_3DES_EDE_CBC_SHA - strong
|       TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA - strong
|       TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA - strong
|       TLS_ECDHE_RSA_WITH_RC4_128_SHA - strong
|       TLS_RSA_WITH_3DES_EDE_CBC_SHA - strong
|       TLS_RSA_WITH_AES_128_CBC_SHA - strong
|       TLS_RSA_WITH_AES_256_CBC_SHA - strong
|       TLS_RSA_WITH_RC4_128_MD5 - strong
|       TLS_RSA_WITH_RC4_128_SHA - strong
|     compressors:
|       NULL
|   TLSv1.1:
|     ciphers:
|       TLS_ECDHE_RSA_WITH_3DES_EDE_CBC_SHA - strong
|       TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA - strong
|       TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA - strong
|       TLS_ECDHE_RSA_WITH_RC4_128_SHA - strong
|       TLS_RSA_WITH_3DES_EDE_CBC_SHA - strong
|       TLS_RSA_WITH_AES_128_CBC_SHA - strong
|       TLS_RSA_WITH_AES_256_CBC_SHA - strong
|       TLS_RSA_WITH_RC4_128_MD5 - strong
|       TLS_RSA_WITH_RC4_128_SHA - strong
|     compressors:
|       NULL
|   TLSv1.2:
|     ciphers:
|       TLS_ECDHE_RSA_WITH_3DES_EDE_CBC_SHA - strong
|       TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA - strong
|       TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256 - strong
|       TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 - strong
|       TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA - strong
|       TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384 - strong
|       TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 - strong
|       TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256 - strong
|       TLS_ECDHE_RSA_WITH_RC4_128_SHA - strong
|       TLS_RSA_WITH_3DES_EDE_CBC_SHA - strong
|       TLS_RSA_WITH_AES_128_CBC_SHA - strong
|       TLS_RSA_WITH_AES_128_CBC_SHA256 - strong
|       TLS_RSA_WITH_AES_128_GCM_SHA256 - strong
|       TLS_RSA_WITH_AES_256_CBC_SHA - strong
|       TLS_RSA_WITH_AES_256_CBC_SHA256 - strong
|       TLS_RSA_WITH_AES_256_GCM_SHA384 - strong
|       TLS_RSA_WITH_RC4_128_MD5 - strong
|       TLS_RSA_WITH_RC4_128_SHA - strong
|     compressors:
|       NULL
|_  least strength: strong
 
Nmap done: 1 IP address (1 host up) scanned in 2.52 seconds

デバッグレベル

% nmap -d -p 22 localhost
 
Starting Nmap 6.40 ( http://nmap.org ) at 2013-12-05 08:13 JST
--------------- Timing report ---------------
  hostgroups: min 1, max 100000
  rtt-timeouts: init 1000, min 100, max 10000
  max-scan-delay: TCP 1000, UDP 1000, SCTP 1000
  parallelism: min 0, max 0
  max-retries: 10, host-timeout: 0
  min-rate: 0, max-rate: 0
---------------------------------------------
Initiating Ping Scan at 08:13
Scanning 2 hosts [2 ports/host]
Completed Ping Scan at 08:13, 1.24s elapsed (2 total hosts)
Overall sending rates: 4.84 packets / s.
mass_rdns: Using DNS server 192.168.0.1
Nmap scan report for 1 (0.0.0.1) [host down, received no-response]
Initiating Connect Scan at 08:13
Scanning localhost (127.0.0.1) [1 port]
Discovered open port 22/tcp on 127.0.0.1
Completed Connect Scan at 08:13, 0.00s elapsed (1 total ports)
Overall sending rates: 1091.70 packets / s.
Nmap scan report for localhost (127.0.0.1)
Host is up, received syn-ack (0.00048s latency).
Scanned at 2013-12-05 08:13:05 JST for 2s
PORT   STATE SERVICE REASON
22/tcp open  ssh     syn-ack
Final times for host: srtt: 482 rttvar: 2880  to: 100000
 
Read from /usr/local/share/nmap: nmap-payloads nmap-services.
Nmap done: 2 IP addresses (1 host up) scanned in 1.33 seconds

冗長レベル

nmapの動作している状況が細かくわかるようになります。

% nmap -v localhost
 
Starting Nmap 6.40 ( http://nmap.org ) at 2013-12-05 08:15 JST
Initiating Ping Scan at 08:15
Scanning localhost (127.0.0.1) [2 ports]
Completed Ping Scan at 08:15, 0.00s elapsed (1 total hosts)
Initiating Connect Scan at 08:15
Scanning localhost (127.0.0.1) [1000 ports]
Discovered open port 25/tcp on 127.0.0.1
Discovered open port 80/tcp on 127.0.0.1
Discovered open port 22/tcp on 127.0.0.1
Increasing send delay for 127.0.0.1 from 0 to 5 due to max_successful_tryno increase to 4
Completed Connect Scan at 08:15, 9.75s elapsed (1000 total ports)
Nmap scan report for localhost (127.0.0.1)
Host is up (0.00020s latency).
Not shown: 997 closed ports
PORT   STATE SERVICE
22/tcp open  ssh
25/tcp open  smtp
80/tcp open  http
 
Read data files from: /usr/local/share/nmap
Nmap done: 1 IP address (1 host up) scanned in 9.84 seconds

nmapに関する記事

関連項目