1
0
mirror of https://github.com/nmap/nmap.git synced 2025-12-07 13:11:28 +00:00

Regenerate the nroff man page translations

This commit is contained in:
fyodor
2009-11-21 11:07:47 +00:00
parent 119916bec3
commit 06e2ac1ba9
15 changed files with 7417 additions and 7204 deletions

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -1,19 +1,27 @@
'\" t
.\" Title: nmap
.\" Author:
.\" Generator: DocBook XSL Stylesheets v1.73.2 <http://docbook.sf.net/>
.\" Date: 06/15/2008
.\" Manual:
.\" Source:
.\" Author: [FIXME: author] [see http://docbook.sf.net/el/author]
.\" Generator: DocBook XSL Stylesheets v1.74.3 <http://docbook.sf.net/>
.\" Date: 11/21/2009
.\" Manual: [FIXME: manual]
.\" Source: [FIXME: source]
.\" Language: English
.\"
.TH "NMAP" "1" "06/15/2008" "" ""
.TH "NMAP" "1" "11/21/2009" "[FIXME: source]" "[FIXME: manual]"
.\" -----------------------------------------------------------------
.\" * set default formatting
.\" -----------------------------------------------------------------
.\" disable hyphenation
.nh
.\" disable justification (adjust text to left margin only)
.ad l
.\" -----------------------------------------------------------------
.\" * MAIN CONTENT STARTS HERE *
.\" -----------------------------------------------------------------
.SH "NAME"
nmap - ネットワーク調査ツールおよびセキュリティ/ポート スキャナ
nmap \- ネットワーク調査ツールおよびセキュリティ/ポート スキャナ
.SH "SYNOPSIS"
.HP 5
.HP \w'\fBnmap\fR\ 'u
\fBnmap\fR [\fIスキャンタイプ\fR...] [\fIオプション\fR] {\fIターゲットの指定\fR}
.SH "ツール説明"
.PP
@@ -26,29 +34,31 @@ unfilteredに分類される。ポートの状態がopen|filteredやclosed|filte
Nmapは、このポート一覧表以外にも、逆引きDNS名、OSの推測、デバイスの種類、MACアドレスなどの、調査対象に関するさらに詳細な情報を提供できる。
.PP
典型的なNmapスキャンの例を、以下の
Example\ 1, \(lqNmapスキャンの典型的な例\(rqに示した。この例で使用されているNmapの引数は、OSとそのバージョンの検出を可能にする\fB\-A\fRと、処理を高速に実行するための\fB\-T4\fR、および2つのターゲットホスト名だけである。
Example\ \&1, \(lqNmapスキャンの典型的な例\(rqに示した。この例で使用されているNmapの引数は、OSとそのバージョンの検出を可能にする\fB\-A\fRと、処理を高速に実行するための\fB\-T4\fR、および2つのターゲットホスト名だけである。
.PP
\fBExample\ 1.\ Nmapスキャンの典型的な例\fR
\fBExample\ \&1.\ \&Nmapスキャンの典型的な例\fR
.sp
.if n \{\
.RS 4
.\}
.nf
# nmap \-A \-T4 scanme\.nmap\.org playground
# nmap \-A \-T4 scanme\&.nmap\&.org playground
Starting nmap ( http://www\.insecure\.org/nmap/ )
Interesting ports on scanme\.nmap\.org (205\.217\.153\.62):
Starting nmap ( http://www\&.insecure\&.org/nmap/ )
Interesting ports on scanme\&.nmap\&.org (205\&.217\&.153\&.62):
(The 1663 ports scanned but not shown below are in state: filtered)
PORT STATE SERVICE VERSION
22/tcp open ssh OpenSSH 3\.9p1 (protocol 1\.99)
22/tcp open ssh OpenSSH 3\&.9p1 (protocol 1\&.99)
53/tcp open domain
70/tcp closed gopher
80/tcp open http Apache httpd 2\.0\.52 ((Fedora))
80/tcp open http Apache httpd 2\&.0\&.52 ((Fedora))
113/tcp closed auth
Device type: general purpose
Running: Linux 2\.4\.X|2\.5\.X|2\.6\.X
OS details: Linux 2\.4\.7 \- 2\.6\.11, Linux 2\.6\.0 \- 2\.6\.11
Uptime 33\.908 days (since Thu Jul 21 03:38:03 2005)
Running: Linux 2\&.4\&.X|2\&.5\&.X|2\&.6\&.X
OS details: Linux 2\&.4\&.7 \- 2\&.6\&.11, Linux 2\&.6\&.0 \- 2\&.6\&.11
Uptime 33\&.908 days (since Thu Jul 21 03:38:03 2005)
Interesting ports on playground\.nmap\.org (192\.168\.0\.40):
Interesting ports on playground\&.nmap\&.org (192\&.168\&.0\&.40):
(The 1659 ports scanned but not shown below are in state: closed)
PORT STATE SERVICE VERSION
135/tcp open msrpc Microsoft Windows RPC
@@ -57,35 +67,39 @@ PORT STATE SERVICE VERSION
445/tcp open microsoft\-ds Microsoft Windows XP microsoft\-ds
1002/tcp open windows\-icfw?
1025/tcp open msrpc Microsoft Windows RPC
1720/tcp open H\.323/Q\.931 CompTek AquaGateKeeper
5800/tcp open vnc\-http RealVNC 4\.0 (Resolution 400x250; VNC TCP port: 5900)
5900/tcp open vnc VNC (protocol 3\.8)
1720/tcp open H\&.323/Q\&.931 CompTek AquaGateKeeper
5800/tcp open vnc\-http RealVNC 4\&.0 (Resolution 400x250; VNC TCP port: 5900)
5900/tcp open vnc VNC (protocol 3\&.8)
MAC Address: 00:A0:CC:63:85:4B (Lite\-on Communications)
Device type: general purpose
Running: Microsoft Windows NT/2K/XP
OS details: Microsoft Windows XP Pro RC1+ through final release
Service Info: OSs: Windows, Windows XP
Nmap finished: 2 IP addresses (2 hosts up) scanned in 88\.392 seconds
Nmap finished: 2 IP addresses (2 hosts up) scanned in 88\&.392 seconds
.fi
.if n \{\
.RE
.\}
.PP
Nmapの最新バージョンは、\fI\%http://www.insecure.org/nmap/\fRから入手できる。また、本マニュアルページの最新版は、\fI\%http://www.insecure.org/nmap/man/\fRで参照できる。
Nmapの最新バージョンは、\m[blue]\fB\%http://www.insecure.org/nmap/\fR\m[]から入手できる。また、本マニュアルページの最新版は、\m[blue]\fB\%http://www.insecure.org/nmap/man/\fR\m[]で参照できる。
.SH "オプション概要"
.PP
このオプション概要は、Nmapを引数なしで実行すると表示される。最新版は\fI\%http://www.insecure.org/nmap/data/nmap.usage.txt\fRで参照できる。これを見ると、比較的利用機会の多いオプションについての概要を確認できるが、本マニュアルの以下に掲載する詳細な解説に代わるものではない。使用頻度の低いオプションには、ここに含まれていないものもある。
このオプション概要は、Nmapを引数なしで実行すると表示される。最新版は\m[blue]\fB\%http://www.insecure.org/nmap/data/nmap.usage.txt\fR\m[]で参照できる。これを見ると、比較的利用機会の多いオプションについての概要を確認できるが、本マニュアルの以下に掲載する詳細な解説に代わるものではない。使用頻度の低いオプションには、ここに含まれていないものもある。
.PP
.sp
.if n \{\
.RS 4
.\}
.nf
Usage: nmap [Scan Type(s)] [Options] {target specification}
TARGET SPECIFICATION:
Can pass hostnames, IP addresses, networks, etc\.
Ex: scanme\.nmap\.org, microsoft\.com/24, 192\.168\.0\.1; 10\.0\.0\-255\.1\-254
Can pass hostnames, IP addresses, networks, etc\&.
Ex: scanme\&.nmap\&.org, microsoft\&.com/24, 192\&.168\&.0\&.1; 10\&.0\&.0\-255\&.1\-254
\-iL <inputfilename>: Input from list of hosts/networks
\-iR <num hosts>: Choose random targets
\-\-exclude <host1[,host2][,host3],\.\.\.>: Exclude hosts/networks
\-\-exclude <host1[,host2][,host3],\&.\&.\&.>: Exclude hosts/networks
\-\-excludefile <exclude_file>: Exclude list from file
HOST DISCOVERY:
\-sL: List Scan \- simply list targets to scan
@@ -120,12 +134,12 @@ TIMING AND PERFORMANCE:
\-\-min\-hostgroup/max\-hostgroup <msec>: Parallel host scan group sizes
\-\-min\-parallelism/max\-parallelism <msec>: Probe parallelization
\-\-min_rtt_timeout/max\-rtt\-timeout/initial\-rtt\-timeout <msec>: Specifies
probe round trip time\.
probe round trip time\&.
\-\-host\-timeout <msec>: Give up on target after this long
\-\-scan\-delay/\-\-max_scan\-delay <msec>: Adjust delay between probes
FIREWALL/IDS EVASION AND SPOOFING:
\-f; \-\-mtu <val>: fragment packets (optionally w/given MTU)
\-D <decoy1,decoy2[,ME],\.\.\.>: Cloak a scan with decoys
\-D <decoy1,decoy2[,ME],\&.\&.\&.>: Cloak a scan with decoys
\-S <IP_Address>: Spoof source address
\-e <iface>: Use specified interface
\-g/\-\-source\-port <portnum>: Use given port number
@@ -134,7 +148,7 @@ FIREWALL/IDS EVASION AND SPOOFING:
\-\-spoof\-mac <mac address/prefix/vendor name>: Spoof your MAC address
OUTPUT:
\-oN/\-oX/\-oS/\-oG <file>: Output scan in normal, XML, s|<rIpt kIddi3,
and Grepable format, respectively, to the given filename\.
and Grepable format, respectively, to the given filename\&.
\-oA <basename>: Output in the three major formats at once
\-v: Increase verbosity level (use twice for more effect)
\-d[level]: Set or increase debugging level (Up to 9 is meaningful)
@@ -151,27 +165,29 @@ MISC:
\-\-send\-eth/\-\-send\-ip: Send using raw ethernet frames or IP packets
\-\-privileged: Assume that the user is fully privileged
\-V: Print version number
\-h: Print this help summary page\.
\-h: Print this help summary page\&.
EXAMPLES:
nmap \-v \-A scanme\.nmap\.org
nmap \-v \-sP 192\.168\.0\.0/16 10\.0\.0\.0/8
nmap \-v \-A scanme\&.nmap\&.org
nmap \-v \-sP 192\&.168\&.0\&.0/16 10\&.0\&.0\&.0/8
nmap \-v \-iR 10000 \-P0 \-p 80
.fi
.if n \{\
.RE
.\}
.sp
.SH "ターゲットの指定"
.PP
Nmapのコマンドラインで、オプション(もしくはオプションの引数)でないものはすべて、ターゲットホストの指定として扱われる。最も簡単な例は、スキャンを行うターゲットのIPアドレスやホスト名の指定である。
.PP
隣接した複数のホストから成るネットワーク全体をスキャン対象としたい場合は、CIDR表記のアドレス指定を利用できる。IPアドレスやホスト名の末尾に\fIbit数\fRを付加すると、Nmapは、アドレスの上位から指定した\fIbit数\fRまでが参照するIPアドレスや特定のホスト名と同じアドレスをすべてスキャンする。例えば、192\.168\.10\.0/24を指定すると 192\.168\.10\.0 (2進表示:
11000000 10101000 00001010 00000000)から192\.168\.10\.255 (2進表示:
11000000 10101000 00001010 11111111)までののホストがスキャンされる。192\.168\.10\.40/24を指定しても、まったく同じ結果になる。ホスト scanme\.nmap\.orgのIPアドレスが205\.217\.153\.62であるとすると、scanme\.nmap\.org/16という指定では、205\.217\.0\.0 から 205\.217\.255\.255 までの65,536個のIPアドレスをスキャンすることになる。指定可能な最小値は/1であり、これはインターネットの半分をスキャンすることになる。最大値は/32で、すべてのアドレスビットが固定されるので、指定したホストやIPアドレスだけがスキャンされる。
隣接した複数のホストから成るネットワーク全体をスキャン対象としたい場合は、CIDR表記のアドレス指定を利用できる。IPアドレスやホスト名の末尾に\fIbit数\fRを付加すると、Nmapは、アドレスの上位から指定した\fIbit数\fRまでが参照するIPアドレスや特定のホスト名と同じアドレスをすべてスキャンする。例えば、192\&.168\&.10\&.0/24を指定すると 192\&.168\&.10\&.0 (2進表示:
11000000 10101000 00001010 00000000)から192\&.168\&.10\&.255 (2進表示:
11000000 10101000 00001010 11111111)までののホストがスキャンされる。192\&.168\&.10\&.40/24を指定しても、まったく同じ結果になる。ホスト scanme\&.nmap\&.orgのIPアドレスが205\&.217\&.153\&.62であるとすると、scanme\&.nmap\&.org/16という指定では、205\&.217\&.0\&.0 から 205\&.217\&.255\&.255 までの65,536個のIPアドレスをスキャンすることになる。指定可能な最小値は/1であり、これはインターネットの半分をスキャンすることになる。最大値は/32で、すべてのアドレスビットが固定されるので、指定したホストやIPアドレスだけがスキャンされる。
.PP
CIDR表記は簡潔であるが、必ずしも十分な柔軟性があるわけではない。例えば、192\.168\.0\.0/16をスキャンする際に、\.0や\.255で終わるアドレスは、通常はブロードキャストアドレスなのですべて対象から除外したい場合があるだろう。Nmapではこのケースには、オクテット(octet=8bit)範囲のアドレス指定によって対応する。通常のIPアドレスを指定する代わりに、コンマ区切りの数のリストや各オクテット(8bit)の範囲を指定できる。例えば、192\.168\.0\-255\.1\-254と指定すると、\.0と\.255で終わる範囲のアドレスはすべて省かれる。この範囲は最後のオクテットだけに限る必要はない。すなわち、0\-255\.0\-255\.13\.37と指定すると、13\.37で終わるすべてのIPアドレスをインターネット全体でスキャンする。このような広範囲からのサンプリングは、インターネットの調査や研究を行う場合に役立つ。
CIDR表記は簡潔であるが、必ずしも十分な柔軟性があるわけではない。例えば、192\&.168\&.0\&.0/16をスキャンする際に、\&.0や\&.255で終わるアドレスは、通常はブロードキャストアドレスなのですべて対象から除外したい場合があるだろう。Nmapではこのケースには、オクテット(octet=8bit)範囲のアドレス指定によって対応する。通常のIPアドレスを指定する代わりに、コンマ区切りの数のリストや各オクテット(8bit)の範囲を指定できる。例えば、192\&.168\&.0\-255\&.1\-254と指定すると、\&.0と\&.255で終わる範囲のアドレスはすべて省かれる。この範囲は最後のオクテットだけに限る必要はない。すなわち、0\-255\&.0\-255\&.13\&.37と指定すると、13\&.37で終わるすべてのIPアドレスをインターネット全体でスキャンする。このような広範囲からのサンプリングは、インターネットの調査や研究を行う場合に役立つ。
.PP
IPv6アドレスは、完全修飾形(省略なし)のIPv6アドレスやホスト名でしか指定できない。IPv6では、CIDRやオクテット範囲は使い道がほとんどないため、サポートされない。
.PP
Nmapはコマンドラインでの複数のホスト指定方法に対応しており、すべて同じ形式にしなくてもよい。\fBnmap scanme\.nmap\.org 192\.168\.0\.0/8 10\.0\.0,1,3\-7\.0\-255\fRというコマンドを実行しても、期待通りの結果になる。
Nmapはコマンドラインでの複数のホスト指定方法に対応しており、すべて同じ形式にしなくてもよい。\fBnmap scanme\&.nmap\&.org 192\&.168\&.0\&.0/8 10\&.0\&.0,1,3\-7\&.0\-255\fRというコマンドを実行しても、期待通りの結果になる。
.PP
ターゲットは通常、コマンドライン上で指定されるが、以下のオプションもまた、ターゲットの選択を制御するために利用できる。
.PP
@@ -185,7 +201,7 @@ Nmapはコマンドラインでの複数のホスト指定方法に対応して
インターネット全域に対する調査や研究を行う場合、ターゲットを無作為に選びたい場合もあるだろう。\fIホスト数\fRの引数は、IPをいくつ生成するべきかをNmapに伝える。プライベート、マルチキャスト、未割り当てなどのアドレス範囲のような望ましくないIPは、自動的に飛ばして進むようになっている。引数に0(ゼロ)を指定すると、スキャンが無限に続けられる。ただし、ネットワーク管理者のなかには、自身の管理するネットワークを不正にスキャンされたことに腹を立ててクレームをつける場合もあることに注意しておこう。このオプションは、自己責任で使用すること 雨の日の午後、退屈しのぎに拾い見るためのWebサーバを無作為に見つけたい場合は、\fBnmap \-sS \-PS80 \-iR 0 \-p 80\fRというコマンドを試してみるとよい。
.RE
.PP
\fB\-\-exclude <host1[,host2][,host3],\.\.\.>\fR (ホスト/ネットワークを除外する)
\fB\-\-exclude <host1[,host2][,host3],\&.\&.\&.>\fR (ホスト/ネットワークを除外する)
.RS 4
ターゲットのコンマ区切りリストを指定し、それらが指定した全ネットワーク範囲の一部であっても、スキャン対象から除外されるようにする。引数として渡すリストでは通常のNmap構文が用いられるので、ホスト名、CIDR表記のネットブロック、オクテット範囲などを含めることもできる。このオプションが役に立つのは、スキャンしたいネットワークに、ポートスキャンによって悪影響が及ぶことがわかっている、触れてはならないミッションクリティカルなサーバやシステムや、他人が管理しているサブネットワークが含まれる場合である。
.RE
@@ -198,7 +214,7 @@ Nmapはコマンドラインでの複数のホスト指定方法に対応して
.PP
ネットワーク偵察ミッションの第一段階に行うべきことの1つは、一連の(非常に広範な場合もある)IP範囲を限定して、アクティブな状態であるか、関心のあるホストのリストを作成することである。各IPアドレスのポートを1つ1つスキャンするのは、時間はかかるもののなかなか進まない、通常は無駄な作業である。もちろん、あるホストに興味を引かれる要因は、スキャンの目的に大きく左右される。ネットワーク管理者なら、特定のサービスを実行しているホストにしか興味を示さないかもしれないし、セキュリティ監査人なら、IPアドレスを持つデバイス1つ1つに関心を引かれる場合もあるだろう。内部ネットワーク管理者なら、自分が管理するネットワーク上のホストの位置を確認するためにICMP pingを使えるだけで満足かもしれないし、外部のペネトレーションテストの実施担当者なら、ファイアウォールの制限をすり抜けようとして、多種多様な調査手法を使う場合もあるだろう。
.PP
このように、ホスト発見のニーズは多岐にわたるので、Nmapには、使用する技法をカスタマイズするための幅広い種類のオプションが備わっている。ホスト探索はpingスキャンと呼ばれることもあるが、一般的なpingツールによる単純なICMPエコー要求パケットよりもはるかに優れている。ユーザは、リストスキャン(\fB\-sL\fR)を用いるか、pingを無効にして(\fB\-P0\fR)、このping段階を完全に省略するか、もしくはネットワークに対してマルチポートのTCP SYN/ACK、UDP、ICMPなどのプローブを任意に組み合わせて行うことができる。これらのプローブの目的は、IPアドレスが実際にアクティブな状態(ホストやネットワークデバイスによって使用中)であることを示す応答を誘い出すことである。多くのネットワークでは、いつでもアクティブなIPアドレスは全体のほんのわずかしかない。RFC1918で定められたプライベートアドレス空間(例10\.0\.0\.0/8)では特にそうなっている。このネットワークには、1600万個のIPアドレスがあるが、これが1000台足らずのマシンしかない企業で使われているのを見たことがある。ホスト発見を実行すると、こうした広大なIPアドレスの海の中から、まばらにIPアドレスを割り振られたマシンを探し出すことができる。
このように、ホスト発見のニーズは多岐にわたるので、Nmapには、使用する技法をカスタマイズするための幅広い種類のオプションが備わっている。ホスト探索はpingスキャンと呼ばれることもあるが、一般的なpingツールによる単純なICMPエコー要求パケットよりもはるかに優れている。ユーザは、リストスキャン(\fB\-sL\fR)を用いるか、pingを無効にして(\fB\-P0\fR)、このping段階を完全に省略するか、もしくはネットワークに対してマルチポートのTCP SYN/ACK、UDP、ICMPなどのプローブを任意に組み合わせて行うことができる。これらのプローブの目的は、IPアドレスが実際にアクティブな状態(ホストやネットワークデバイスによって使用中)であることを示す応答を誘い出すことである。多くのネットワークでは、いつでもアクティブなIPアドレスは全体のほんのわずかしかない。RFC1918で定められたプライベートアドレス空間(例10\&.0\&.0\&.0/8)では特にそうなっている。このネットワークには、1600万個のIPアドレスがあるが、これが1000台足らずのマシンしかない企業で使われているのを見たことがある。ホスト発見を実行すると、こうした広大なIPアドレスの海の中から、まばらにIPアドレスを割り振られたマシンを探し出すことができる。
.PP
 ホスト発見のオプションが何も指定されない場合、Nmapはポート80宛てのTCP ACKパケットと、ICMPエコー要求クエリを各ターゲットマシンに送信する。この例外は、ローカル イーサネット ネットワーク上にあるターゲットに対して、ARPスキャンが用いられている場合である。高い権限のないUNIXシェルユーザでは、\fBconnect()\fRシステムコールを使って、ACKの代わりにSYNパケットが送られる。これらのデフォルトは、\fB\-PA \-PE\fR
オプションに相当する。このホスト発見機能は、ローカルネットワークをスキャンする場合は十分だが、より包括的な一連の発見調査は、セキュリティ監査に任せた方がよい。
@@ -209,7 +225,7 @@ Nmapはコマンドラインでの複数のホスト指定方法に対応して
.PP
\fB\-sL\fR (リストスキャン)
.RS 4
ホスト発見の縮小版で、単に指定されたネットワークの全ホストを一覧するだけであり、ターゲットホストには何もパケットを送らない。デフォルトでは、Nmapはホスト名を知るために、ホスト上でDNSの逆引き解決も行う。単なるホスト名とはいえ、意外なほど有用な情報をもたらしてくれることも多い。例えばfw\.chi\.playboy\.comは、プレイボーイ社(Playboy Enterprises)のシカゴ(Chicago)支社のファイアウォールである。また最終的には、IPアドレスの総数についての報告もある。リストスキャンは、自分のターゲットに対して正しいIPアドレスが得られていることを確認するための有効な健全性検査になる。ターゲットのホストが見覚えのないドメイン名を示している場合は、間違って別の会社のネットワークをスキャンしてしまわないように、さらに詳しく調査するだけの価値はある。
ホスト発見の縮小版で、単に指定されたネットワークの全ホストを一覧するだけであり、ターゲットホストには何もパケットを送らない。デフォルトでは、Nmapはホスト名を知るために、ホスト上でDNSの逆引き解決も行う。単なるホスト名とはいえ、意外なほど有用な情報をもたらしてくれることも多い。例えばfw\&.chi\&.playboy\&.comは、プレイボーイ社(Playboy Enterprises)のシカゴ(Chicago)支社のファイアウォールである。また最終的には、IPアドレスの総数についての報告もある。リストスキャンは、自分のターゲットに対して正しいIPアドレスが得られていることを確認するための有効な健全性検査になる。ターゲットのホストが見覚えのないドメイン名を示している場合は、間違って別の会社のネットワークをスキャンしてしまわないように、さらに詳しく調査するだけの価値はある。
.sp
リストスキャンの狙いは、単にターゲットホストのリストを出力するだけなので、ポートスキャン、OS検出、pingスキャンなどのより高度なレベルの機能を実現するためのオプションは、これと組み合わせることはできない。これらのハイレベルの機能を実行する際に、pingスキャンを無効にしたい場合は、\fB\-P0\fRオプションの項を参照のこと。
.RE
@@ -230,7 +246,7 @@ Nmapはコマンドラインでの複数のホスト指定方法に対応して
.PP
\fB\-PS [portlist]\fR (TCP SYN Ping)
.RS 4
このオプションによって、SYNフラグ付きの空のTCPパケットが送信される。デフォルトの送信先ポートは80番(この設定は、\fInmap\.h\fRのDEFAULT_TCP_PROBE_PORTを書き換えてコンパイルすると変更できる)だが、代わりのポートをパラメタとして指定できる。また、コンマ区切りのポート番号リスト(例:\fB\-PS22,23,25,80,113,1050,35000\fR)を指定することも可能である。この場合、各ポートに対するプローブは同時並行で試みられる。
このオプションによって、SYNフラグ付きの空のTCPパケットが送信される。デフォルトの送信先ポートは80番(この設定は、nmap\&.hのDEFAULT_TCP_PROBE_PORTを書き換えてコンパイルすると変更できる)だが、代わりのポートをパラメタとして指定できる。また、コンマ区切りのポート番号リスト(例:\fB\-PS22,23,25,80,113,1050,35000\fR)を指定することも可能である。この場合、各ポートに対するプローブは同時並行で試みられる。
.sp
SYNフラグによって、こちら側がコネクションの確立を試みていることをリモートのシステムに知らせる。通常は送信先ポートが閉じており、RST(リセット)パケットが送り返される。このポートがたまたま開いていた場合は、ターゲットはSYN/ACK TCPパケットで応答し、TCPの3ウェイハンドシェイクの第二段階に進む。続いて、Nmapを実行しているマシンが、ACKパケットを送って3ウェイハンドシェイクを完了すれば、完全なコネクションが確立されるが、その代わりにRSTで応答することで、生成途中のコネクションを切断する。このRSTパケットは、Nmap自身ではなくて、Nmapを実行しているマシンのカーネルが、予期せぬSYN/ACKに応答して送るものである。
.sp
@@ -256,7 +272,7 @@ SYNおよびACKの両方の pingが使えるようになっている理由は、
.RS 4
これもホスト発見用オプションで、空の(\fB\-\-data\-length\fRが指定されている場合を除き)UDPパケットを特定のポートに送信する。ポートリストは、上で述べた\fB\-PS\fR
\fB\-PA\fRのオプションの場合と同じ形式にする。特にポートが指定されていない場合、デフォルトでは31338番になる。このデフォルト値を設定するには、\fInmap\.h\fRのDEFAULT_UDP_PROBE_PORTを書き換えてコンパイルする。ほとんど使われることがないポートがデフォルトで使用されている理由は、開放ポートへの送信が、このスキャンタイプでは特に望ましくない場合が多いからである。
\fB\-PA\fRのオプションの場合と同じ形式にする。特にポートが指定されていない場合、デフォルトでは31338番になる。このデフォルト値を設定するには、nmap\&.hのDEFAULT_UDP_PROBE_PORTを書き換えてコンパイルする。ほとんど使われることがないポートがデフォルトで使用されている理由は、開放ポートへの送信が、このスキャンタイプでは特に望ましくない場合が多いからである。
.sp
UDPプローブがターゲットマシンで閉じたポートに行き着いた場合は、ICMPポート到達不能パケットが返送されるはずである。Nmapはこれにより、ターゲットマシンが稼動中でアクセス可能であることを知ることになる。ICMPにはこの他にも、ホスト/ネットワーク到達不能やTTL超過などの、ホストがダウンしているか到達不能であることを示す多様なエラーメッセージがある。応答がないのも、これと同様に解釈される。空のパケットが開放ポートに到達した場合、ほとんどのサービスはこれを無視して、何の応答も返さない。デフォルトのプローブポートが、ほぼ使用中ではない31338番になっているのは、このためである。「chargen」などのサービスには、空のUDPパケットに応答するものがいくつかあり、マシンが利用可能であることをNmapに知らせることになる。
.sp
@@ -265,9 +281,9 @@ UDPプローブがターゲットマシンで閉じたポートに行き着い
.PP
\fB\-PE\fR; \fB\-PP\fR; \fB\-PM\fR (ICMP Ping タイプ)
.RS 4
Nmapは、上で述べたようなTCP や UDPによるホスト発見の特異なタイプに加えて、どこにでもあるpingプログラムによって送信される標準的なパケットを送ることもできる。Nmapは、ICMPタイプ8(エコー要求)パケットをターゲットのIPアドレスに送信し、利用可能なホストからタイプ0(エコー応答)が返されるのを待ち受ける。ネットワーク調査を行う者にとっては残念なことに、最近のホストやファイアウォールは、\fIRFC1122\fR\&[1]の要件通り応答を返すよりは、これらのパケットをブロックするものが多い。そのため、インターネット上の未知のターゲットに対しては、ICMPスキャンだけでは十分な信頼性が得られない。だが、内部ネットワークを監視しているシステム管理者にとっては、実用的で効率的なアプローチになる場合もある。このエコー要求動作を有効にするには、\fB\-PE\fRオプションを使用すること。
Nmapは、上で述べたようなTCP や UDPによるホスト発見の特異なタイプに加えて、どこにでもあるpingプログラムによって送信される標準的なパケットを送ることもできる。Nmapは、ICMPタイプ8(エコー要求)パケットをターゲットのIPアドレスに送信し、利用可能なホストからタイプ0(エコー応答)が返されるのを待ち受ける。ネットワーク調査を行う者にとっては残念なことに、最近のホストやファイアウォールは、\m[blue]\fBRFC1122\fR\m[]\&\s-2\u[1]\d\s+2の要件通り応答を返すよりは、これらのパケットをブロックするものが多い。そのため、インターネット上の未知のターゲットに対しては、ICMPスキャンだけでは十分な信頼性が得られない。だが、内部ネットワークを監視しているシステム管理者にとっては、実用的で効率的なアプローチになる場合もある。このエコー要求動作を有効にするには、\fB\-PE\fRオプションを使用すること。
.sp
エコー要求は標準的なICMP pingクエリであるが、Nmapはそれだけにとどまらない。ICMP規格(\fIRFC792\fR\&[2])には、タイムスタンプ要求、情報要求、アドレスマスク要求などのパケットが、それぞれコード13、15、17として指定されている。これらのクエリの表向きの目的は、アドレスマスクや現在の時刻などの情報を知ることだが、ホスト発見にも容易に利用できる。応答を返すシステムはすなわち、稼動中で利用可能なのである。情報要求パケットは、それほど広くサポートされているわけではないので、今のところNmapには実装されていない。RFC 1122では\(lqホストにはこの種のメッセージを実装するべきではありません\(rqと提唱されている。タイムスタンプとアドレスマスクに関するクエリは、それぞれ\fB\-PP\fR\fB\-PM\fRのオプションを付けることで送信できる。タイムスタンプ応答(ICMP コード14)やアドレスマスク応答(コード18)によって、ホストが利用可能であることが明らかになる。これら2つのクエリは、管理者がエコー要求パケットを限定してブロックしているが、他のICMPクエリが同じ目的で用いられる可能性があることを見落としている場合に有効である。
エコー要求は標準的なICMP pingクエリであるが、Nmapはそれだけにとどまらない。ICMP規格(\m[blue]\fBRFC792\fR\m[]\&\s-2\u[2]\d\s+2)には、タイムスタンプ要求、情報要求、アドレスマスク要求などのパケットが、それぞれコード13、15、17として指定されている。これらのクエリの表向きの目的は、アドレスマスクや現在の時刻などの情報を知ることだが、ホスト発見にも容易に利用できる。応答を返すシステムはすなわち、稼動中で利用可能なのである。情報要求パケットは、それほど広くサポートされているわけではないので、今のところNmapには実装されていない。RFC 1122では\(lqホストにはこの種のメッセージを実装するべきではありません\(rqと提唱されている。タイムスタンプとアドレスマスクに関するクエリは、それぞれ\fB\-PP\fR\fB\-PM\fRのオプションを付けることで送信できる。タイムスタンプ応答(ICMP コード14)やアドレスマスク応答(コード18)によって、ホストが利用可能であることが明らかになる。これら2つのクエリは、管理者がエコー要求パケットを限定してブロックしているが、他のICMPクエリが同じ目的で用いられる可能性があることを見落としている場合に有効である。
.RE
.PP
\fB\-PR\fR (ARP Ping)
@@ -354,20 +370,20 @@ SYNスキャンが利用できる場合は通常、そちらを使用した方
.PP
\fB\-sU\fR (UDP スキャン)
.RS 4
インターネット上で最も広く利用されているサービスの大部分は、TCPプロトコルで実行されているが、\fIUDP\fR\&[3]サービスも広く導入されている。DNS、SNMP、DHCP(それぞれ登録ポートは 53、161/162、67/68)の3つは、最もよく利用されているUDPサービスである。UDPスキャンは通常、TCPよりも処理に時間がかかり難易度も高いので、セキュリティ監査人のなかにはこれらのポートを無視する人もいる。だがこれは誤りである。悪用可能なUDPサービスは極めてよくあるものであり、攻撃者がこうしたプロトコルを見過ごすわけはないからだ。好都合なことに、NmapはUDPポートの一覧表を作成するのに役立てることができる。
インターネット上で最も広く利用されているサービスの大部分は、TCPプロトコルで実行されているが、\m[blue]\fBUDP\fR\m[]\&\s-2\u[3]\d\s+2サービスも広く導入されている。DNS、SNMP、DHCP(それぞれ登録ポートは 53、161/162、67/68)の3つは、最もよく利用されているUDPサービスである。UDPスキャンは通常、TCPよりも処理に時間がかかり難易度も高いので、セキュリティ監査人のなかにはこれらのポートを無視する人もいる。だがこれは誤りである。悪用可能なUDPサービスは極めてよくあるものであり、攻撃者がこうしたプロトコルを見過ごすわけはないからだ。好都合なことに、NmapはUDPポートの一覧表を作成するのに役立てることができる。
.sp
UDPスキャンを作動させるには、\fB\-sU\fRオプションを指定する。SYN スキャン(\fB\-sS\fR)などのTCPスキャンタイプと組み合わせて用いて、同じ実行時間中に両方のプロトコルをチェックできる。
.sp
UDPスキャンは、空の(データなし)UDPヘッダを各ターゲットポートに送ることで機能する。ICMPポート到達不能エラー(タイプ3、コード 1、2、9、10、13)が返された場合、ポートはclosed閉じている状態にある。その他のICMPポート到達不能エラー(タイプ3、コード3)が返された場合、ポートはfilteredフィルタありと見なされる。まれにサービスがUDPパケットで応答することがあるが、その場合はポートがopenであることがわかる。数回の再試行の後も応答がない場合、ポートはopen|filteredに分類される。これは、ポートが開いているか、もしくはパケットフィルタが通信を阻んでいることを意味する。バージョンスキャン(\fB\-sV\fR)を用いて、実際に開いているポートとフィルタ処理されたポートを識別することもできる。
.sp
UDPスキャンに関する大きな課題は、処理の高速化である。Openポートやfilteredポートから応答が送り返されることはほとんどないため、Nmapはそのままタイムアウトし、プローブや応答が行方不明になった場合に備えて再試行を行うことになる。閉じたポートは、さらに大きな問題になる場合が多い。閉じたポートからは通常、ICMPポート到達不能エラーが返されるが、閉じたTCPポートがSYNやConnectスキャンに応答してRSTパケットを送る場合とは異なり、多くのホストでは、ICMPポート到達不能メッセージがデフォルトでレート制限されている。Linux や Solarisは、この点に関して特に厳しい。例えば、Linux 2\.4\.20カーネルは、宛先到達不能メッセージを毎秒1個(\fInet/ipv4/icmp\.c\fRで指定)に制限している。
UDPスキャンに関する大きな課題は、処理の高速化である。Openポートやfilteredポートから応答が送り返されることはほとんどないため、Nmapはそのままタイムアウトし、プローブや応答が行方不明になった場合に備えて再試行を行うことになる。閉じたポートは、さらに大きな問題になる場合が多い。閉じたポートからは通常、ICMPポート到達不能エラーが返されるが、閉じたTCPポートがSYNやConnectスキャンに応答してRSTパケットを送る場合とは異なり、多くのホストでは、ICMPポート到達不能メッセージがデフォルトでレート制限されている。Linux や Solarisは、この点に関して特に厳しい。例えば、Linux 2\&.4\&.20カーネルは、宛先到達不能メッセージを毎秒1個(net/ipv4/icmp\&.cで指定)に制限している。
.sp
Nmapはレート制限を検出し、それに応じて処理速度を下げて、ターゲットマシンで落とされるような無用なパケットでネットワークを溢れさせないようにする。残念ながら、Linux方式で毎秒1パケットに制限されると、65,536個のポートをスキャンするのに18時間あまりかかる。UDPスキャンの速度を上げるためのアイデアには、次のようなものがある。同時並行でスキャンするホストの数を増やす、よく使われるポートだけを先に重点的にスキャンする、ファイアウォールの背後からスキャンする、\fB\-\-host\-timeout\fRオプションを使って低速なホストをスキップする。
.RE
.PP
\fB\-sN\fR; \fB\-sF\fR; \fB\-sX\fR (TCP Null、FIN、およびXmasスキャン)
.RS 4
これら3つのスキャンタイプ(次の節で述べる\fB\-\-scanflags\fRオプションを併用するとさらにいろいろなことができる)は、\fITCP RFC\fR\&[4]の巧妙な抜け穴を突いて、openポートとclosedポートを識別するためのものである。TCP RFCの65ページには、\(lq宛先ポートの状態が CLOSEDならば\.\.\. RSTを含まない入力セグメントは、その応答としてRSTを送信する\(rqとある。次のページでは、SYN、RST、ACKなどのビットセットを含まない、openポート宛てパケットについて述べてあり、\(lqここに至ることはなさそうであるが、もし至ったらセグメントを破棄してリターンする\(rqとある。
これら3つのスキャンタイプ(次の節で述べる\fB\-\-scanflags\fRオプションを併用するとさらにいろいろなことができる)は、\m[blue]\fBTCP RFC\fR\m[]\&\s-2\u[4]\d\s+2の巧妙な抜け穴を突いて、openポートとclosedポートを識別するためのものである。TCP RFCの65ページには、\(lq宛先ポートの状態が CLOSEDならば\&.\&.\&. RSTを含まない入力セグメントは、その応答としてRSTを送信する\(rqとある。次のページでは、SYN、RST、ACKなどのビットセットを含まない、openポート宛てパケットについて述べてあり、\(lqここに至ることはなさそうであるが、もし至ったらセグメントを破棄してリターンする\(rqとある。
.sp
このRFC文書に準拠しているシステムをスキャンすると、SYN、RST、ACKなどのフラグビットを含まないパケットに対しては、ポートが閉じている場合はRSTが返され、ポートが開いている場合は何の応答も返されないことになる。これら3つのフラグビットが含まれない限り、他の3つ(FIN、PSH、URG)をどのように組み合わせてもよい。Nmapは以下の3つのスキャンタイプでこの弱点を突く。
.PP
@@ -423,7 +439,7 @@ Maimonスキャンは、発見者であるUriel Maimon氏の名前にちなん
.PP
\fB\-sI <zombie host[:probeport]>\fR (Idle スキャン)
.RS 4
この高度なスキャン手法を使用すると、対象ホストに対して完全に匿名でTCPポートスキャンを実行できる(スキャンする側の実IPアドレスからは、対象ホストにパケットが送信されない)。それだけではなく、ゾンビホスト上で連続的に生成されるIPフラグメントID(識別子)が予測可能であることを巧妙に利用した独自のサイドチャネル攻撃を実行して、対象ホスト上のopenポートに関する情報を収集することもできる。IDSシステムでは、このスキャンはこちらで指定したゾンビマシン(稼動中でかつ特定の条件を満たす必要がある)から行われているものとして表示される。この非常に興味深いスキャンタイプは複雑すぎて本稿ではとても全容を説明しきれないので、完全な詳細を掲載した非公式の論文を以下に投稿しておくことにする:\fI\%http://nmap.org/book/idlescan.html\fR
この高度なスキャン手法を使用すると、対象ホストに対して完全に匿名でTCPポートスキャンを実行できる(スキャンする側の実IPアドレスからは、対象ホストにパケットが送信されない)。それだけではなく、ゾンビホスト上で連続的に生成されるIPフラグメントID(識別子)が予測可能であることを巧妙に利用した独自のサイドチャネル攻撃を実行して、対象ホスト上のopenポートに関する情報を収集することもできる。IDSシステムでは、このスキャンはこちらで指定したゾンビマシン(稼動中でかつ特定の条件を満たす必要がある)から行われているものとして表示される。この非常に興味深いスキャンタイプは複雑すぎて本稿ではとても全容を説明しきれないので、完全な詳細を掲載した非公式の論文を以下に投稿しておくことにする:\m[blue]\fB\%http://nmap.org/book/idlescan.html\fR\m[]
.sp
このスキャンタイプは、(その匿名性のために)格別に秘匿性が高いことに加え、マシン間のIPベースの信頼関係を明らかにすることができる。ポートリストには、\fI指定したゾンビホストから見た\fRopenポートが表示される。よって、(ルータ/パケットフィルタのルールから)信頼関係にあると思われる様々なゾンビマシンを使ってターゲットをスキャンしてみることもできる。
.sp
@@ -441,7 +457,7 @@ IPプロトコルスキャンを使うと、ターゲットマシン上でどの
.PP
\fB\-b <ftp relay host>\fR (FTP バウンス スキャン)
.RS 4
FTPプロトコル(\fIRFC 959\fR\&[5])の興味深い特徴の1つは、いわゆるプロキシFTP接続に対応していることである。これにより、ユーザは一台のFTPサーバに接続し、そのファイルを第三者サーバに送るように要求できる。これは、様々なレベルの悪用にうってつけの機能なので、たいていのサーバでは、サポートするのを止めている。例えば、この機能を悪用して、FTPサーバに他のホストをポートスキャンさせることも可能である。単に、ターゲットホストの興味あるポートに順にファイルを送信するよう、そのFTPサーバに要求するだけでよい。エラーメッセージには、ポートが開いているか否かが記述される。これは、ファイアウォールをすり抜けるための有効な手段になる。組織のFTPサーバは、どんなインターネットホストよりも、他の内部ホストにアクセスしやすい場所に設置されている場合が多いからだ。Nmapは、\fB\-b\fRオプションでftpバウンススキャンを実行できる。引数は\fIusername\fR:\fIpassword\fR@\fIserver\fR:\fIport\fRのような形式になる。\fIServer\fRは、この脆弱性の影響を受けるFTPサーバの名前かIPアドレスを指定する。通常のURLの場合と同様に、匿名ログインの認証情報(user:
FTPプロトコル(\m[blue]\fBRFC 959\fR\m[]\&\s-2\u[5]\d\s+2)の興味深い特徴の1つは、いわゆるプロキシFTP接続に対応していることである。これにより、ユーザは一台のFTPサーバに接続し、そのファイルを第三者サーバに送るように要求できる。これは、様々なレベルの悪用にうってつけの機能なので、たいていのサーバでは、サポートするのを止めている。例えば、この機能を悪用して、FTPサーバに他のホストをポートスキャンさせることも可能である。単に、ターゲットホストの興味あるポートに順にファイルを送信するよう、そのFTPサーバに要求するだけでよい。エラーメッセージには、ポートが開いているか否かが記述される。これは、ファイアウォールをすり抜けるための有効な手段になる。組織のFTPサーバは、どんなインターネットホストよりも、他の内部ホストにアクセスしやすい場所に設置されている場合が多いからだ。Nmapは、\fB\-b\fRオプションでftpバウンススキャンを実行できる。引数は\fIusername\fR:\fIpassword\fR@\fIserver\fR:\fIport\fRのような形式になる。\fIServer\fRは、この脆弱性の影響を受けるFTPサーバの名前かIPアドレスを指定する。通常のURLの場合と同様に、匿名ログインの認証情報(user:
anonymous
password:\-wwwuser@)が使われる場合は、\fIusername\fR:\fIpassword\fRの部分は省略できる。\fIserver\fRのデフォルトのFTPポート(21)を用いる場合は、ポート番号(と前のコロン)も省略可能である。
.sp
@@ -449,7 +465,7 @@ password:\-wwwuser@)が使われる場合は、\fIusername\fR:\fIpassword\fRの
.RE
.SH "ポートの指定とスキャンの順序"
.PP
Nmapには、これまでに述べたすべてのスキャン手法に加えて、どのポートをスキャンするかや、スキャンの順序をランダムにするか順序通りにするかなどを指定するためのオプションが用意されている。デフォルトでは、Nmapは、1024番(を含む)までの全ポートと、1025番以降のポートはスキャン対象のプロトコルに応じて\fInmap\-services\fRファイルに記載されたポートをスキャンする。
Nmapには、これまでに述べたすべてのスキャン手法に加えて、どのポートをスキャンするかや、スキャンの順序をランダムにするか順序通りにするかなどを指定するためのオプションが用意されている。デフォルトでは、Nmapは、1024番(を含む)までの全ポートと、1025番以降のポートはスキャン対象のプロトコルに応じてnmap\-servicesファイルに記載されたポートをスキャンする。
.PP
\fB\-p <port ranges>\fR (指定されたポートのみスキャン)
.RS 4
@@ -461,7 +477,7 @@ TCPポートとUDPポート両方のスキャンを実行する場合は、ポ
.PP
\fB\-F\fR (高速 (限定したポートだけ) スキャン)
.RS 4
Nmapに同梱されている\fInmap\-services\fRファイル(\fB\-sO\fRでは「protocols」ファイル)に列挙されているポートだけをスキャンするように指定する。こうすることで、ホスト上の全65535ポートをスキャンするよりもはるかに高速になる。このリストには非常に多く(1200以上)のTCPポートが含まれているので、デフォルトのTCPスキャン(約1650ポート)との速度差はそれほど大きくはない。\fB\-\-datadir\fRオプションを使って、自分で独自に作成した小さな\fInmap\-services\fRファイルを指定すると、この速度差をかなり大きくすることができる。
Nmapに同梱されているnmap\-servicesファイル(\fB\-sO\fRでは「protocols」ファイル)に列挙されているポートだけをスキャンするように指定する。こうすることで、ホスト上の全65535ポートをスキャンするよりもはるかに高速になる。このリストには非常に多く(1200以上)のTCPポートが含まれているので、デフォルトのTCPスキャン(約1650ポート)との速度差はそれほど大きくはない。\fB\-\-datadir\fRオプションを使って、自分で独自に作成した小さなnmap\-servicesファイルを指定すると、この速度差をかなり大きくすることができる。
.RE
.PP
\fB\-r\fR (ポートの順番を無作為にしない)
@@ -470,11 +486,11 @@ Nmapに同梱されている\fInmap\-services\fRファイル(\fB\-sO\fRでは「
.RE
.SH "サービスとバージョンの検出"
.PP
リモートマシンをターゲットにしてNmapを実行した結果、25/tcp、80/tcp、53/udpの各ポートが開いていることが判明したとしよう。Nmapは、約2200個のよく知られたサービスから成る\fInmap\-services\fRのデータベースを用いて、これらのポートがそれぞれメールサーバ(SMTP)、Webサーバ(HTTP)、ネームサーバ(DNS)に相当するとレポートする。通常、この検索結果は正確である。すなわち、TCPポート25番で待ち受けするデーモンの大部分は、実際にメールサーバである。だが、これをすべて鵜呑みにしてはいけない。通常とは異なるポートでサービスが実行されるケースも実際にあり得る。
リモートマシンをターゲットにしてNmapを実行した結果、25/tcp、80/tcp、53/udpの各ポートが開いていることが判明したとしよう。Nmapは、約2200個のよく知られたサービスから成るnmap\-servicesのデータベースを用いて、これらのポートがそれぞれメールサーバ(SMTP)、Webサーバ(HTTP)、ネームサーバ(DNS)に相当するとレポートする。通常、この検索結果は正確である。すなわち、TCPポート25番で待ち受けするデーモンの大部分は、実際にメールサーバである。だが、これをすべて鵜呑みにしてはいけない。通常とは異なるポートでサービスが実行されるケースも実際にあり得る。
.PP
たとえNmapが正しくて、上で仮定したサーバがそれぞれSMTP、HTTP、DNSサーバを実行している場合でも、これは多くの情報にはならない。自社やクライアントの脆弱性調査(簡単なインベントリ調査の場合でも)を実施する際には、どのメールサーバやDNSサーバが動作中であるかを知りたいはずである。正確なバージョン番号を入手することは、サーバがどのような攻撃に対して脆弱であるかを判断するのに大いに役に立つ。バージョン検出はこうした情報を入手するのに役立つ手法である。
.PP
別のスキャン手法を用いてTCPポートや UDPポートを発見したら、そこで何が実行されているかについての詳細を明らかにするために、これらのポートをバージョン検出によってさらに綿密に調査する。\fInmap\-service\-probes\fRデータベースには、様々なサービスの問い合わせを行うためのプローブや、応答を識別して解析するための照合表現が含まれている。Nmapは以下の情報の特定を試みるサービスプロトコル(例ftp、ssh、telnet、http)、アプリケーション名(例ISC Bind、Apache httpd、Solaris telnetd)、バージョン番号、ホスト名、デバイスタイプ(例:プリンタ、ルータ)、OSファミリ(例Windows、 Linux) さらには、Xサーバが接続に対してopen状態にあるかどうかや、SSHプロトコルのバージョン、KaZaAのユーザ名などのその他様々な詳細情報の特定が試みられる場合もある。もちろんたいていのサービスは、これらの情報をすべて提供できるわけではない。NmapにOpenSSLのサポート機能が組み困れている場合は、SSLサーバに接続して、この暗号化層の背後で待ち受けしているサービスを推定する。RPC(Remote Procedure Call)サービスが発見された場合は、RPCプログラムとバージョン番号を特定するためにNmapのRPCグラインダー(\fB\-sR\fR)が自動的に使用される。UDPポートスキャンを実行しても、「open」か「filtered」かを判定できなかった一部のポートは、open|filtered状態として保留される。バージョン検出は、これらのポートから応答を導き出して、可能な場合はその状態を「open」に変更しようと試みる。open|filteredのTCPポートも同様に取り扱われる。ここで注目すべき点は、バージョン検出がNmapの\fB\-A\fRオプションで有効になる機能の1つに含まれることである。バージョン検出のメカニズム、使用法、カスタマイズ方法に関する論文は、以下で入手できる\fI\%http://www.insecure.org/nmap/vscan/\fR
別のスキャン手法を用いてTCPポートや UDPポートを発見したら、そこで何が実行されているかについての詳細を明らかにするために、これらのポートをバージョン検出によってさらに綿密に調査する。nmap\-service\-probesデータベースには、様々なサービスの問い合わせを行うためのプローブや、応答を識別して解析するための照合表現が含まれている。Nmapは以下の情報の特定を試みるサービスプロトコル(例ftp、ssh、telnet、http)、アプリケーション名(例ISC Bind、Apache httpd、Solaris telnetd)、バージョン番号、ホスト名、デバイスタイプ(例:プリンタ、ルータ)、OSファミリ(例Windows、 Linux) さらには、Xサーバが接続に対してopen状態にあるかどうかや、SSHプロトコルのバージョン、KaZaAのユーザ名などのその他様々な詳細情報の特定が試みられる場合もある。もちろんたいていのサービスは、これらの情報をすべて提供できるわけではない。NmapにOpenSSLのサポート機能が組み困れている場合は、SSLサーバに接続して、この暗号化層の背後で待ち受けしているサービスを推定する。RPC(Remote Procedure Call)サービスが発見された場合は、RPCプログラムとバージョン番号を特定するためにNmapのRPCグラインダー(\fB\-sR\fR)が自動的に使用される。UDPポートスキャンを実行しても、「open」か「filtered」かを判定できなかった一部のポートは、open|filtered状態として保留される。バージョン検出は、これらのポートから応答を導き出して、可能な場合はその状態を「open」に変更しようと試みる。open|filteredのTCPポートも同様に取り扱われる。ここで注目すべき点は、バージョン検出がNmapの\fB\-A\fRオプションで有効になる機能の1つに含まれることである。バージョン検出のメカニズム、使用法、カスタマイズ方法に関する論文は、以下で入手できる\m[blue]\fB\%http://www.insecure.org/nmap/vscan/\fR\m[]
.PP
Nmapがサービスからの応答を受信しても、データベースに一致するものが見つからなかった場合は、特別なフィンガープリントとURLが出力される。このURLは、ポートで何が動作しているかが確実に分かっている場合に、フィンガープリントを投稿していただくためのものだ。あなたの発見がいろいろな人のためになるよう、2、3分もかからないのでぜひ投稿していただきたい。こうした投稿のおかげで、Nmapは、smtp, ftp, httpなどの350以上のプロトコルに対する約3000件のパターン照合例を備えるまでになっている。
.PP
@@ -487,12 +503,12 @@ Nmapがサービスからの応答を受信しても、データベースに一
.PP
\fB\-\-allports\fR (バージョン検出の対象からすべてのポートを除外しない)
.RS 4
デフォルトでは、Nmapのバージョン検出は、TCPポート9100番をスキップするようになっている。一部のプリンタはこのポートに送られたものは何でも出力するので、HTTP GETリクエストやバイナリ形式のSSLセッションリクエストなどのページが何十枚も印刷されることになるからだ。この動作を変更するには、\fInmap\-service\-probes\fRの当該の「除外」(Exclude)ディレクティブを変更あるいは削除するか、もしくは\fB\-\-allports\fRを指定すると、Excludeディレクティブに関係なくすべてのポートがスキャンされるようにできる。
デフォルトでは、Nmapのバージョン検出は、TCPポート9100番をスキップするようになっている。一部のプリンタはこのポートに送られたものは何でも出力するので、HTTP GETリクエストやバイナリ形式のSSLセッションリクエストなどのページが何十枚も印刷されることになるからだ。この動作を変更するには、nmap\-service\-probesの当該の「除外」(Exclude)ディレクティブを変更あるいは削除するか、もしくは\fB\-\-allports\fRを指定すると、Excludeディレクティブに関係なくすべてのポートがスキャンされるようにできる。
.RE
.PP
\fB\-\-version\-intensity <intensity>\fR (バージョンスキャンの強度を設定)
.RS 4
Nmapは、バージョンスキャン(\fB\-sV\fR)を実行する際に、1から9までの「希少」(rarity)値が割り振られた一連のプローブを送信する。この希少値が小さいプローブほど、よく用いられる各種サービスに対して有効であり、この希少値が大きいプローブほど、用途が限られることになる。強度レベルは、どのプローブを適用するべきかを指定するオプションである。この数字が大きいほど、サービスが正しく特定される確率は高くなる。だが、強度が高いスキャンは、それだけ時間がかかる。強度は0から9の間で指定する必要があり、デフォルトは7である。\fInmap\-service\-probes\fRのportsディレクティブによって、ターゲットポートにプローブを登録すると、このプローブは強度レベルに関係なく試行される。これにより、DNSプローブは常に開ポート53番に対して試行され、SSLプローブはポート443番に対して実行されるようにすることなどができる。
Nmapは、バージョンスキャン(\fB\-sV\fR)を実行する際に、1から9までの「希少」(rarity)値が割り振られた一連のプローブを送信する。この希少値が小さいプローブほど、よく用いられる各種サービスに対して有効であり、この希少値が大きいプローブほど、用途が限られることになる。強度レベルは、どのプローブを適用するべきかを指定するオプションである。この数字が大きいほど、サービスが正しく特定される確率は高くなる。だが、強度が高いスキャンは、それだけ時間がかかる。強度は0から9の間で指定する必要があり、デフォルトは7である。nmap\-service\-probesのportsディレクティブによって、ターゲットポートにプローブを登録すると、このプローブは強度レベルに関係なく試行される。これにより、DNSプローブは常に開ポート53番に対して試行され、SSLプローブはポート443番に対して実行されるようにすることなどができる。
.RE
.PP
\fB\-\-version\-light\fR (ライトモードを有効にする)
@@ -516,14 +532,14 @@ Nmapは、バージョンスキャン(\fB\-sV\fR)を実行する際に、1から
.RE
.SH "OS 検出"
.PP
Nmapの最も有名な機能の1つは、TCP/IPスタック・フィンガープリンティングを用いた、リモートからのOS検出機能である。Nmapは、一連のTCPやUDPのパケットをリモートホストに送り、その応答をほぼ全面的に調査する。TCP ISN(イニシャルシーケンス番号)サンプリング、TCPオプションのサポートや順序の調査、IPIDサンプリング、TCP初期ウィンドウサイズ調査などの数多くのテストを実施した後、Nmapはこれらの結果を、既知のOSフィンガープリントが1500件以上データベース化された\fInmap\-os\-fingerprints\fRと照合し、一致するものがあった場合はそのOSに関する詳細情報を出力する。各フィンガープリントには、フリーテキスト形式のOSの解説、ベンダ名を与える分類(例Sun)、下位のOS(例Solaris)、OSの世代(例10)、デバイスの種類(汎用、ルータ、スイッチ、ゲーム機など)が含まれる。
Nmapの最も有名な機能の1つは、TCP/IPスタック・フィンガープリンティングを用いた、リモートからのOS検出機能である。Nmapは、一連のTCPやUDPのパケットをリモートホストに送り、その応答をほぼ全面的に調査する。TCP ISN(イニシャルシーケンス番号)サンプリング、TCPオプションのサポートや順序の調査、IPIDサンプリング、TCP初期ウィンドウサイズ調査などの数多くのテストを実施した後、Nmapはこれらの結果を、既知のOSフィンガープリントが1500件以上データベース化されたnmap\-os\-fingerprintsと照合し、一致するものがあった場合はそのOSに関する詳細情報を出力する。各フィンガープリントには、フリーテキスト形式のOSの解説、ベンダ名を与える分類(例Sun)、下位のOS(例Solaris)、OSの世代(例10)、デバイスの種類(汎用、ルータ、スイッチ、ゲーム機など)が含まれる。
.PP
条件(例えば少なくともopenポート1つとclosedポート1つの存在がわかっているなど)は整っているが、NmapがターゲットマシンのOSを推測できない場合は、フィンガープリント投稿用URLがNmapから提供される。対象のマシンで動作しているOSが何か(確実に)わかっている場合は、当該のフィンガープリントをこのURLを使って投稿できる。こうした投稿が行われることで、Nmapが認識できるOSのデータベースに新たなデータが蓄積され、あらゆるユーザがさらに精度の高い調査を行えるようになる。
.PP
OS検出を行うことで、そのプロセスのなかで収集される情報を利用した別のテストをいくつか行うこともできる。例えば、アップタイムの測定がその1つで、TCPのタイムスタンプオプション(RFC 1323)を用いて、マシンが最後に再起動されたのはいつかを推定する。これは、その情報を返したマシンに関してのみ報告される。もう一つのテストは、TCPシーケンス番号の予測可能性の分類である。これにより、リモートホストに対して偽造したTCP接続を確立するのがどの程度困難であるかがおおよそ判定できる。これは、発信元IPベースの信頼関係(rlogin、ファイアウォール、フィルタなど)の弱点を悪用したり、攻撃の出所を隠蔽したりする場合に役立つ。この種のスプーフィングはもはやめったに行われないが、これに対して脆弱なマシンがいまだに数多くある。難易度を表す実際の数値は、統計的なサンプリングに基づいているために上下する可能性がある。通常は\(lqworthy challenge価値ある挑戦)\(rq\(lqtrivial jokeつまらないジョーク\(rqなどの言葉の表現による分類を利用する方がよい。これは、冗長(\fB\-v\fR)モードの標準出力にのみレポートされる。\fB\-O\fRオプションとともに冗長モードが有効になっている場合、IPIDシーケンス番号の生成に関する情報もレポートされる。ほとんどのマシンは、\(lqインクリメンタル(incremental)\(rqに分類される。これは、送信するパケットごとに、IPヘッダのIDフィールドの値を1ずつ増加させることを意味する。この仕組みのせいで、これらのマシンは高度な情報収集攻撃やスプーフィング攻撃に対して脆弱になっている。
.PP
OS検出のメカニズム、使用法、カスタマイズ方法について述べた論文は、以下で入手できる(十数ヶ国語の翻訳版あり)
\fI\%http://www.insecure.org/nmap/osdetect/\fR
\m[blue]\fB\%http://www.insecure.org/nmap/osdetect/\fR\m[]
.PP
OS検出は、以下のオプションで実行および制御できる
.PP
@@ -612,7 +628,7 @@ Nmapは、プローブを中止もしくは再送信するまで、プローブ
.sp
\fBT0\fRの主な効果は、スキャンを連続的に実行して一度に1つのポートしかスキャンされないようにすることと、各プローブを送信する間に5分間待機することである。\fBT1\fR
\fBT2\fRは似ているが、それぞれプローブ間の待機時間が15秒と0\.4秒しかない。\fBT3\fRはNmapのデフォルト動作で、並列処理が含まれる。\fBT4\fR\fB\-\-max\-rtt\-timeout 1250 \-\-initial\-rtt\-timeout 500\fRに相当し、TCPスキャンの最大遅延時間を10msに設定する。\fBT5\fR\fB\-\-max\-rtt\-timeout 300 \-\-min_rtt_timeout 50 \-\-initial\-rtt\-timeout 250 \-\-host\-timeout 900000\fRに相当し、TCPスキャンの最大遅延時間を5msに設定する。
\fBT2\fRは似ているが、それぞれプローブ間の待機時間が15秒と0\&.4秒しかない。\fBT3\fRはNmapのデフォルト動作で、並列処理が含まれる。\fBT4\fR\fB\-\-max\-rtt\-timeout 1250 \-\-initial\-rtt\-timeout 500\fRに相当し、TCPスキャンの最大遅延時間を10msに設定する。\fBT5\fR\fB\-\-max\-rtt\-timeout 300 \-\-min_rtt_timeout 50 \-\-initial\-rtt\-timeout 250 \-\-host\-timeout 900000\fRに相当し、TCPスキャンの最大遅延時間を5msに設定する。
.RE
.SH "ファイアウォール/IDS の回避とスプーフィング"
.PP
@@ -631,7 +647,7 @@ Nmapには、ファイアウォールルールを回避したりIDSをこっそ
\fB\-f\fRオプションを指定すると、要求されたスキャン(pingスキャンを含む)は小さく断片化されたIPパケットを利用するようになる。これを行う目的は、TCPヘッダを複数のパケットに分割することで、パケットフィルタや侵入検知システム(IDS)などの厄介なセキュリティ策にスキャンを検知されにくくすることである。ただし、以下の点には注意が必要だ。すなわち、プログラムのなかには、このような小さなパケットの処理によって問題を生じるものがあることだ。旧式のスニファ「Sniffit」は、最初のフラグメントを受信した瞬間にセグメンテーション障害を起こした。このオプションを一度指定すると、NmapはIPヘッダを8バイトかそれ以下の大きさのパケットに分割する。つまり、20バイトのTCPヘッダは3つのパケットに分割されることになる。8バイトのパケットが2つと、残りの1つが4バイトになる。もちろん、各フラグメントにもIPヘッダがある。\fB\-f\fRを再度指定すると、フラグメントあたり16バイトが使われる(フラグメントの数は減る)。あるいは、\fB\-\-mtu\fRオプションで、ユーザ独自の分割サイズを指定することもできる。\fB\-\-mtu\fRを使う場合は、同時に\fB\-f\fRは指定しないこと。分割サイズは8の倍数にする必要がある。断片化されたパケットは、すべてのIPフラグメントを待ち行列に入れるパケットフィルタやファイアウォール例えば、LinuxカーネルのCONFIG_IP_ALWAYS_DEFRAGオプションなどを通り抜けることはできないが、ネットワークによっては、この断片化によって生じるパフォーマンスの低下に耐えきれないために、これを無効にしているところがある。またそれ以外にも、各フラグメントがそれぞれ異なる経路を通ってネットワークに至る可能性があるために、この機能を有効にできないところもある。一部の発信元システムでは、カーネルで発信パケットのフラグメント化を解消するものもある。コネクション追跡モジュールの「iptables」を備えるLinuxなどがこれにあたる。送信パケットがきちんとフラグメント化されていることを確認するために、Etherealなどのスニファを実行しながら、スキャンを行うようにすること。自身のホストのOSが原因で問題が生じる場合は、IP層を回避して「生」イーサネット フレームを送るために、\fB\-\-send\-eth\fRを試してみるとよい。
.RE
.PP
\fB\-D <decoy1 [,decoy2][,ME],\.\.\.>\fR (おとりを使ってスキャンを隠蔽する)
\fB\-D <decoy1 [,decoy2][,ME],\&.\&.\&.>\fR (おとりを使ってスキャンを隠蔽する)
.RS 4
おとり(囮)スキャンを実行する。おとりスキャンとは、実際のスキャンの他に、おとりとして指定したホスト(複数可)もターゲットネットワークをスキャンしているようにリモートホストに見せかけるためのものである。この結果、対象ホストのIDSは、それぞれ異なる複数のIPアドレスから、5から10のポートスキャンが実行されたことを報告する場合もあるが、実際にどのIPがスキャンを実行していたもので、どれが無実のおとりだったのかを知られることはない。このおとりスキャンは、ルータの経路追跡、応答の破棄、その他の動的メカニズムによって阻止される可能性があるが、通常は攻撃元のIPアドレスを隠蔽する技法として非常に効果的である。
.sp
@@ -662,7 +678,7 @@ Nmapには、ファイアウォールルールを回避したりIDSをこっそ
.sp
これらの問題に対するセキュアなソリューションは、多くの場合、アプリケーションレベルのプロキシや、プロトコル解析型ファイアウォールモジュールの形で存在する。だが残念ながら、もっと簡単で、安全性の低いソリューションもあるのだ。多くの管理者は、DNS応答は53番ポートから、アクティブftpは20番ポートから来ることに注目し、これらのポートからの内向きトラフィックを無条件に許可してしまうという罠に陥る。こうしたファイアウォールの抜け穴の存在に気付いて悪用するような攻撃者がいるとは思ってもいない場合が多い。また別のケースでは、管理者がこうした処置を、より安全性の高いソリューションを実装するまでの短期間の応急処置と見なしている場合もある。そして結局、セキュリティを向上させることなどすっかり忘れてしまうわけだ。
.sp
こうした罠に陥るのは何も、多忙なネットワーク管理者だけではない。この種の安全性の低いルールが標準で装備されてくる製品は膨大な数にのぼる。マイクロソフト社にも、責任の一端はある。Windows 2000 や Windows XPに標準装備されているIPsecフィルタには、88番ポート(Kerberos)からのTCP や UDPのトラフィックをすべて許可するという暗黙のルールが含まれている。この他に有名なケースでは、Zone Alarm社製パーソナルファイアウォールの2\.1\.25以下のバーションでは、ソースポートが53番(DNS)と67番(DHCP)の内向きUDPパケットをすべて許可するようになっていた。
こうした罠に陥るのは何も、多忙なネットワーク管理者だけではない。この種の安全性の低いルールが標準で装備されてくる製品は膨大な数にのぼる。マイクロソフト社にも、責任の一端はある。Windows 2000 や Windows XPに標準装備されているIPsecフィルタには、88番ポート(Kerberos)からのTCP や UDPのトラフィックをすべて許可するという暗黙のルールが含まれている。この他に有名なケースでは、Zone Alarm社製パーソナルファイアウォールの2\&.1\&.25以下のバーションでは、ソースポートが53番(DNS)と67番(DHCP)の内向きUDPパケットをすべて許可するようになっていた。
.sp
Nmapには、この種の弱点を突くためのオプションとして、\fB\-g\fR
\fB\-\-source\-port\fR(これらは同等のもの)が用意されている。単ポート番号を指定すると、可能な場合であれば、Nmapはそのポートからパケットを送信する。特定のOS検出検査が正しく機能するようにするために、Nmapは様々なポート番号を使用する必要がある。NmapはDNS要求の処理にシステムのライブラリを用いているので、この\fB\-\-source\-port\fRフラグを指定していても、DNS要求には無視されることになる。SYNスキャンを含む大部分のTCPスキャン、およびUDPスキャンは、このオプションに完全に対応している。
@@ -680,12 +696,12 @@ Nmapには、この種の弱点を突くためのオプションとして、\fB\
.PP
\fB\-\-randomize\-hosts\fR (ターゲットホストの順番を無作為化する)
.RS 4
このオプションは、Nmapがスキャンを実行する前に、各グループあたり最大8096のホストをランダムに並び替えるようにする。これにより、特にスキャン速度を遅く設定するタイミングオプションと併用する場合は、各種ネットワーク監視システムにスキャンが検知される可能性を小さくすることができる。より大規模なグループを無作為化したい場合は、\fInmap\.h\fRのPING_GROUP_SZを増やして再コンパイルする。別の手段としては、リストスキャンでターゲットIPリストを作成し(\fB\-sL \-n \-oN \fR\fB\fIfilename\fR\fR)、これをPerlスクリプトで無作為化して、\fB\-iL\fRでリストをそのままNmapに渡す。
このオプションは、Nmapがスキャンを実行する前に、各グループあたり最大8096のホストをランダムに並び替えるようにする。これにより、特にスキャン速度を遅く設定するタイミングオプションと併用する場合は、各種ネットワーク監視システムにスキャンが検知される可能性を小さくすることができる。より大規模なグループを無作為化したい場合は、nmap\&.hのPING_GROUP_SZを増やして再コンパイルする。別の手段としては、リストスキャンでターゲットIPリストを作成し(\fB\-sL \-n \-oN \fR\fB\fIfilename\fR\fR)、これをPerlスクリプトで無作為化して、\fB\-iL\fRでリストをそのままNmapに渡す。
.RE
.PP
\fB\-\-spoof\-mac <mac address, prefix, or vendor name>\fR (MACアドレスを偽装する)
.RS 4
Nmapが送信するすべての生イーサネット フレームに、指定したMACアドレスを使うようにする。このオプションは、Nmapが実際にイーサネットレベルのパケットを送信するように、\fB\-\-send\-eth\fRが必要条件になる。MACアドレスは、さまざまな形式で指定できる。文字列の\(lq0\(rqだけが指定された場合は、NmapはセッションのMACアドレスを完全に無作為に選ぶ。指定した文字列が偶数の16進数(一組ずつ状況に応じてコロンで区切る)の場合は、NmapはこれをMACアドレスとして使用する。12桁未満の16進数が指定された場合は、Nmapは残りの6バイトにランダムな値を補充する。引数が0や16進文字列ではない場合は、Nmapは\fInmap\-mac\-prefixes\fR
Nmapが送信するすべての生イーサネット フレームに、指定したMACアドレスを使うようにする。このオプションは、Nmapが実際にイーサネットレベルのパケットを送信するように、\fB\-\-send\-eth\fRが必要条件になる。MACアドレスは、さまざまな形式で指定できる。文字列の\(lq0\(rqだけが指定された場合は、NmapはセッションのMACアドレスを完全に無作為に選ぶ。指定した文字列が偶数の16進数(一組ずつ状況に応じてコロンで区切る)の場合は、NmapはこれをMACアドレスとして使用する。12桁未満の16進数が指定された場合は、Nmapは残りの6バイトにランダムな値を補充する。引数が0や16進文字列ではない場合は、Nmapはnmap\-mac\-prefixes
を調べて、指定した文字列を含むベンダ名を見つける(大文字と小文字は区別されない)。一致するものがあった場合、そのベンダのOUI(Organizationally Unique Identifier:3バイトのベンダコード)を使用し、残りの3バイトにはランダムに記入する。有効な\fB\-\-spoof\-mac\fR引数は、Apple、0、01:02:03:04:05:06、deadbeefcafe、0020F2、Ciscoなどになる。
.RE
.SH "出力"
@@ -700,11 +716,11 @@ XML出力は、最も重要な出力タイプの1つであり、HTMLに変換し
.PP
残り2つの出力タイプは、grepで検索可能なシンプルな出力で、ターゲットホストに関するほとんどの情報が1行で表示されるものと、自分のことを>sCRiPt KiDDi3だと思うユーザ向けのsCRiPt KiDDi3 0utPUt出力だ。
.PP
インタラクティブ出力はデフォルトで、関連するコマンドラインオプションはないが、他の4つのフォーマットオプションでは、同じ構文が使われる。取る引数は1つで、結果を保存するファイル名である。複数のフォーマットを指定してもよいが、各フォーマットは1度しか指定できない。例えば、自分の調査用に通常の出力を保存し、同時に同じスキャン結果をプログラムの解析用にXML形式で保存したい場合もあるだろう。これは、\fB\-oX myscan\.xml \-oN myscan\.nmap\fRというオプションを使って実行できる。なお、ここでは簡潔にするためにmyscan\.xmlのような単純なファイル名を用いているが、通常はもっと説明的な名前にするのが推奨されている。どのようなファイル名にするかは、個人の好みの問題だが、筆者はスキャンの実施日と簡単なコメントを組み入れた長い名前を使い、スキャン対象の企業名にちなんだ名前のディレクトリに入れている。
インタラクティブ出力はデフォルトで、関連するコマンドラインオプションはないが、他の4つのフォーマットオプションでは、同じ構文が使われる。取る引数は1つで、結果を保存するファイル名である。複数のフォーマットを指定してもよいが、各フォーマットは1度しか指定できない。例えば、自分の調査用に通常の出力を保存し、同時に同じスキャン結果をプログラムの解析用にXML形式で保存したい場合もあるだろう。これは、\fB\-oX myscan\&.xml \-oN myscan\&.nmap\fRというオプションを使って実行できる。なお、ここでは簡潔にするためにmyscan\&.xmlのような単純なファイル名を用いているが、通常はもっと説明的な名前にするのが推奨されている。どのようなファイル名にするかは、個人の好みの問題だが、筆者はスキャンの実施日と簡単なコメントを組み入れた長い名前を使い、スキャン対象の企業名にちなんだ名前のディレクトリに入れている。
.PP
これらのオプションは結果をファイルに保存するが、同時にNmapは通常通りインタラクティブ出力を標準出力(stdout)に書き出している。例えば、\fBnmap \-oX myscan\.xml target\fRというコマンドで、XML出力が\fImyscan\.xml\fRに書き込まれ、同じ結果のインタラクティブ出力が標準出力に書き出される。この出力は、\fB\-oX\fRが指定されなかった場合でも行われる。ハイフン(\-)文字を引数としてフォーマットタイプの1つに渡すと、これを変更することができる。すなわち、Nmapはインタラクティブ出力を停止して、代わりにユーザが指定した形式の結果を、標準出力ストリーム(stdout)に書き出すことになる。\fBnmap \-oX \- target\fRというコマンドでは、XML出力だけがstdoutに送られる。この場合も、重大なエラーは標準エラーストリーム(stderr)に書き出される場合がある。
これらのオプションは結果をファイルに保存するが、同時にNmapは通常通りインタラクティブ出力を標準出力(stdout)に書き出している。例えば、\fBnmap \-oX myscan\&.xml target\fRというコマンドで、XML出力がmyscan\&.xmlに書き込まれ、同じ結果のインタラクティブ出力が標準出力に書き出される。この出力は、\fB\-oX\fRが指定されなかった場合でも行われる。ハイフン(\-)文字を引数としてフォーマットタイプの1つに渡すと、これを変更することができる。すなわち、Nmapはインタラクティブ出力を停止して、代わりにユーザが指定した形式の結果を、標準出力ストリーム(stdout)に書き出すことになる。\fBnmap \-oX \- target\fRというコマンドでは、XML出力だけがstdoutに送られる。この場合も、重大なエラーは標準エラーストリーム(stderr)に書き出される場合がある。
.PP
Nmapの一部の引数とは異なり、ログファイルオプションのフラグ(例:\fB\-oX\fR)とファイル名やハイフンとの間のスペースは必須である。この注意を無視して、引数を\fB\-oG\-\fR\fB\-oG\-\fRのように指定したら、Nmapの下位互換機能により、それぞれ\fIG\-\fR\fIXscan\.xml\fRという名前の\fI標準フォーマット\fRの出力ファイルが作成される。
Nmapの一部の引数とは異なり、ログファイルオプションのフラグ(例:\fB\-oX\fR)とファイル名やハイフンとの間のスペースは必須である。この注意を無視して、引数を\fB\-oG\-\fR\fB\-oG\-\fRのように指定したら、Nmapの下位互換機能により、それぞれG\-やXscan\&.xmlという名前の\fI標準フォーマット\fRの出力ファイルが作成される。
.PP
またNmapには、スキャン結果の冗長性を制御するオプションや、出力ファイルに上書きしないで追加書き込みするためのオプションも用意されている。これらのオプションについてはすべて以下で説明する。
.PP
@@ -717,13 +733,13 @@ Nmapの一部の引数とは異なり、ログファイルオプションのフ
.PP
\fB\-oX <filespec>\fR (XML 出力)
.RS 4
XML出力が指定した名前のファイルに書き込まれるようにする。Nmapには文書型定義(DTD)が組み込まれており、XMLパーサーはこれを用いて、NmapのXML出力を検証する。本来はプログラムによる使用を目的としたものだが、人間がNmapのXML出力を解釈するのにも役立つ。DTDには、フォーマットの文法要素が定義されており、これらの要素が取ることのできる属性や値が列挙されていることが多い。最新版は以下から常時入手できる\fI\%http://www.insecure.org/nmap/data/nmap.dtd\fR
XML出力が指定した名前のファイルに書き込まれるようにする。Nmapには文書型定義(DTD)が組み込まれており、XMLパーサーはこれを用いて、NmapのXML出力を検証する。本来はプログラムによる使用を目的としたものだが、人間がNmapのXML出力を解釈するのにも役立つ。DTDには、フォーマットの文法要素が定義されており、これらの要素が取ることのできる属性や値が列挙されていることが多い。最新版は以下から常時入手できる\m[blue]\fB\%http://www.insecure.org/nmap/data/nmap.dtd\fR\m[]
.sp
XMLは、ソフトウェアで容易に解析できる定型書式を提供する。C/C++、Perl、Python、Javaなどを含む、あらゆるメジャーなコンピュータ言語用のXMLパーサーが、フリーで入手できるようになっている。これらの言語のほとんどについては、Nmapの出力と実行に特化して処理するためのバインディングも作成されている。例えば、Perl CPAN(Comprehensive Perl Archive Network)の\fINmap::Scanner\fR\&[6]
XMLは、ソフトウェアで容易に解析できる定型書式を提供する。C/C++、Perl、Python、Javaなどを含む、あらゆるメジャーなコンピュータ言語用のXMLパーサーが、フリーで入手できるようになっている。これらの言語のほとんどについては、Nmapの出力と実行に特化して処理するためのバインディングも作成されている。例えば、Perl CPAN(Comprehensive Perl Archive Network)の\m[blue]\fBNmap::Scanner\fR\m[]\&\s-2\u[6]\d\s+2
\fINmap::Parser\fR\&[7]などがある。重要なアプリケーションがNmapとインターフェースで連結する場合はほとんど、XMLが推奨フォーマットになる。
\m[blue]\fBNmap::Parser\fR\m[]\&\s-2\u[7]\d\s+2などがある。重要なアプリケーションがNmapとインターフェースで連結する場合はほとんど、XMLが推奨フォーマットになる。
.sp
XML出力はXSLスタイルシートを参照して、出力結果の書式をHTMLに変換できる。これを使用する最も簡単な方法としては、単にFirefoxやIEなどのWebブラウザでXML出力を読み込むだけでよい。デフォルトでは、これはNmapを実行したマシン上(もしくは同じ構成のマシン)でのみ機能する。これは、\fInmap\.xsl\fRのファイルシステムのパスがハードコード化されているためである。Webに接続したマシン上であればHTMLとして表示されるような、移植性のあるXMLファイルを作成する方法については、\fB\-\-stylesheet\fRオプションの項を参照のこと。
XML出力はXSLスタイルシートを参照して、出力結果の書式をHTMLに変換できる。これを使用する最も簡単な方法としては、単にFirefoxやIEなどのWebブラウザでXML出力を読み込むだけでよい。デフォルトでは、これはNmapを実行したマシン上(もしくは同じ構成のマシン)でのみ機能する。これは、nmap\&.xslのファイルシステムのパスがハードコード化されているためである。Webに接続したマシン上であればHTMLとして表示されるような、移植性のあるXMLファイルを作成する方法については、\fB\-\-stylesheet\fRオプションの項を参照のこと。
.RE
.PP
\fB\-oS <filespec>\fR (ScRipT KIdd|3 oUTpuT)
@@ -741,12 +757,12 @@ Grep可能出力は、コメント行(パウンド(#)記号で始まる行)と
.sp
これらのフィールドの中で通常最も重要なのは、Ports(ポート)であり、ここからそれぞれの興味あるポートに関する詳細情報が得られる。ポートエントリのカンマ区切りリストになっており、各ポートエントリは、1つの興味あるポートを表し、7つのスラッシュ(/)で区切られたサブフィールドから成る。各サブフィールドはPort number、State、Protocol、Owner、Service、SunRPC info、Version infoである。
.sp
XML出力の場合と同様に、本稿でこのフォーマットのすべてを論ずることはできない。Nmapのgrep可能出力フォーマットについての詳細な解説は以下で入手できる\fI\%http://www.unspecific.com/nmap-oG-output\fR
XML出力の場合と同様に、本稿でこのフォーマットのすべてを論ずることはできない。Nmapのgrep可能出力フォーマットについての詳細な解説は以下で入手できる\m[blue]\fB\%http://www.unspecific.com/nmap-oG-output\fR\m[]
.RE
.PP
\fB\-oA <basename>\fR (全フォーマットに出力する)
.RS 4
簡便のために、\fB\-oA \fR\fB\fIbasename\fR\fRを指定すると、スキャン結果を通常、XML、grep可能の3つのフォーマットで一度に保存できるようにした。それぞれ、\fIbasename\fR\.nmap、\fIbasename\fR\.xml、\fIbasename\fR\.gnmapというファイルに保存される。たいていのプログラムと同じく、以下の例のようにファイル名の前にディレクトリパスを付けることもできる\fI~/nmaplogs/foocorp/\fR(UNIX)、\fIc:\ehacking\esco\fR(Windows)
簡便のために、\fB\-oA \fR\fB\fIbasename\fR\fRを指定すると、スキャン結果を通常、XML、grep可能の3つのフォーマットで一度に保存できるようにした。それぞれ、\fIbasename\fR\&.nmap、\fIbasename\fR\&.xml、\fIbasename\fR\&.gnmapというファイルに保存される。たいていのプログラムと同じく、以下の例のようにファイル名の前にディレクトリパスを付けることもできる~/nmaplogs/foocorp/(UNIX)、c:\ehacking\esco(Windows)
.RE
.PP
\fB冗長性とデバッグのオプション\fR
@@ -793,11 +809,11 @@ Nmapが検出したインターフェースやシステム経路のリストを
.PP
\fB\-\-stylesheet <path or URL>\fR (XML出力変換のXSLスタイルシートを設定する)
.RS 4
Nmapには、XML出力を閲覧したりHTMLに変換したりするための\fInmap\.xsl\fRというXSLスタイルシートが同梱されている。XML出力には、xml\-stylesheetディレクティブが組み込まれており、Nmapが最初にインストールした場所(もしくはWindows上の現在作業中のフォルダ)にある\fInmap\.xml\fRを参照する。最近のWebブラウザにNmapのXML出力を読み込むと、ブラウザはファイルシステムから\fInmap\.xsl\fR
Nmapには、XML出力を閲覧したりHTMLに変換したりするためのnmap\&.xslというXSLスタイルシートが同梱されている。XML出力には、xml\-stylesheetディレクティブが組み込まれており、Nmapが最初にインストールした場所(もしくはWindows上の現在作業中のフォルダ)にあるnmap\&.xmlを参照する。最近のWebブラウザにNmapのXML出力を読み込むと、ブラウザはファイルシステムからnmap\&.xsl
を読み出して、出力結果の処理に使用する。別のスタイルシートを使いたい場合は、この\fB\-\-stylesheet\fRオプションの引数として指定する。引数はフルパス名かURLで指定する。よく用いられる例を以下に示す
\fB\-\-stylesheet http://www\.insecure\.org/nmap/data/nmap\.xsl\fR
これで、スタイルシートの最新バージョンがInsecure\.Orgからブラウザに読み込まれる。これにより、Nmap(および
\fInmap\.xsl\fR)がインストールされていないマシン上でも、結果を閲覧しやすくなる。そのため、URLのほうが便利な場合が多いが、デフォルトではプライバシー上の理由で、ローカルファイルシステムでのnmap\.xslの場所が使われている。
\fB\-\-stylesheet http://www\&.insecure\&.org/nmap/data/nmap\&.xsl\fR
これで、スタイルシートの最新バージョンがInsecure\&.Orgからブラウザに読み込まれる。これにより、Nmap(および
nmap\&.xsl)がインストールされていないマシン上でも、結果を閲覧しやすくなる。そのため、URLのほうが便利な場合が多いが、デフォルトではプライバシー上の理由で、ローカルファイルシステムでのnmap\&.xslの場所が使われている。
.RE
.PP
\fB\-\-no_stylesheet\fR (XSLスタイルシート宣言をXMLから除外する)
@@ -813,7 +829,7 @@ NmapがXML出力をXSLスタイルシートと関連付けないようにする
.RS 4
Nmapは2002年より、その最もよく使われる機能に対してIPv6のサポートを提供している。特に、pingスキャン(TCPのみ)、connect()スキャン、バージョン検出などはすべてIPv6に対応している。コマンド構文は、\fB\-6\fRオプションを追加する以外は従来通りである。もちろん、ホスト名ではなくてアドレスを指定する場合は、IPv6の構文を使う必要がある。ただし、アドレス表示は3ffe:7501:4819:2000:210:f3ff:fe03:14d0のようになるので、ホスト名を使う方がよい。出力も従来とほぼ同じであり、\(lq興味のあるポート\(rq行のアドレスがIPv6方式になっているのが唯一のIPv6の証拠である。
.sp
IPv6は必ずしも世界を席巻しているわけではないが、一部(通常はアジア)の国々ではかなり普及しており、最近のOSのほとんどでサポートされている。NmapをIPv6で使用するためには、スキャンのソースとターゲットの両方をIPv6対応に設定する必要がある。自分のISP(他の多くのISPと同様の)からIPv6アドレスを割り当てられていない場合は、様々な場所で入手可能なフリーのトンネルブローカーがNmapとうまく連携して機能する。優れたトンネルブローカーの1つに、BT Exact社が以下で運営しているものがある\fI\%https://tb.ipv6.btexact.com/\fR。 Hurricane Electric社が以下で提供しているものも使ったことがある\fI\%http://ipv6tb.he.net/\fR。「6to4 tunnels」という人気のフリーソフトもある。
IPv6は必ずしも世界を席巻しているわけではないが、一部(通常はアジア)の国々ではかなり普及しており、最近のOSのほとんどでサポートされている。NmapをIPv6で使用するためには、スキャンのソースとターゲットの両方をIPv6対応に設定する必要がある。自分のISP(他の多くのISPと同様の)からIPv6アドレスを割り当てられていない場合は、様々な場所で入手可能なフリーのトンネルブローカーがNmapとうまく連携して機能する。優れたトンネルブローカーの1つに、BT Exact社が以下で運営しているものがある\m[blue]\fB\%https://tb.ipv6.btexact.com/\fR\m[]。 Hurricane Electric社が以下で提供しているものも使ったことがある\m[blue]\fB\%http://ipv6tb.he.net/\fR\m[]。「6to4 tunnels」という人気のフリーソフトもある。
.RE
.PP
\fB\-A\fR (アグレッシブ・スキャンオプション)
@@ -823,10 +839,10 @@ IPv6は必ずしも世界を席巻しているわけではないが、一部(通
.PP
\fB\-\-datadir <directoryname>\fR (Nmapの特別データファイルの位置を指定する)
.RS 4
Nmapは、実行時に特別なデータを、\fInmap\-service\-probes\fR\fInmap\-services\fR\fInmap\-protocols\fR\fInmap\-rpc\fR\fInmap\-mac\-prefixes\fR\fInmap\-os\-fingerprints\fRという名前のファイルに取得する。Nmapはまず、(ある場合は)\fB\-\-datadir\fR
オプションで指定したディレクトリ内で、これらのファイルを探す。ここで見つからなかったファイルは、「NMAPDIR」環境変数で指定したディレクトリから検索する。次に、実在する有効なUID(POSIXシステムの場合)やNmapの実行ファイル(Win32の場合)が格納されているディレクトリの\fI~/\.nmap\fR
を探し、その次に、組み込みディレクトリの\fI/usr/local/share/nmap\fR
\fI/usr/share/nmap\fRを探す。それでもない場合は最後の手段として、Nmapはカレントディレクトリを検索する。
Nmapは、実行時に特別なデータを、nmap\-service\-probesnmap\-servicesnmap\-protocols、nmap\-rpc、nmap\-mac\-prefixesnmap\-os\-fingerprintsという名前のファイルに取得する。Nmapはまず、(ある場合は)\fB\-\-datadir\fR
オプションで指定したディレクトリ内で、これらのファイルを探す。ここで見つからなかったファイルは、「NMAPDIR」環境変数で指定したディレクトリから検索する。次に、実在する有効なUID(POSIXシステムの場合)やNmapの実行ファイル(Win32の場合)が格納されているディレクトリの~/\&.nmap
を探し、その次に、組み込みディレクトリの/usr/local/share/nmap
や/usr/share/nmapを探す。それでもない場合は最後の手段として、Nmapはカレントディレクトリを検索する。
.RE
.PP
\fB\-\-send\-eth\fR (raw生のイーサネット層で送信する)
@@ -863,7 +879,7 @@ Nmapのバージョン番号を書き出して終了する。
.RE
.SH "実行時の対話型操作"
.PP
この機能はまだNmapに存在しない。この項は内容を追加するか削除する必要がある。
.\" この機能はまだNmapに存在しない。この項は内容を追加するか削除する必要がある。
.PP
Nmapの実行中に、すべてのキープロセスをキャプチャする。これにより、停止して再開という手順を経ないでも、プログラムとの情報のやり取りが可能になる。特定の特殊キーで、オプションを変更する。その他のキーは、スキャンに関する情報を伝えるステータスメッセージを表示する。仕様としては、\fI小文字は書き出される情報量を増やし\fR\fI大文字は減らす\fR
.PP
@@ -888,28 +904,28 @@ Nmapの実行中に、すべてのキープロセスをキャプチャする。
.sp
Stats: 0:00:08 elapsed; 111 hosts completed (5 up), 5 undergoing Service Scan
.sp
Service scan Timing: About 28\.00% done; ETC: 16:18 (0:00:15 remaining)
Service scan Timing: About 28\&.00% done; ETC: 16:18 (0:00:15 remaining)
.RE
.SH "使用例"
.PP
以下に、Nmapの使用例を、単純なものからやや複雑で難解なものまでいくつか示した。例で使用したIPアドレスやドメイン名は、あくまでも具体性を持たせることが目的であるため、実際のスキャンでは、それらを\fI自分のネットワーク\fRのアドレスまたはホスト名で置き換えることに注意する。筆者は個人的に、他人のネットワークに対してポートスキャンを実行することは違法行為には当たらないと見ているが、ネットワーク管理者のなかには、自分のネットワークを勝手にスキャンされるのを快く思わずに苦情を訴える者もいるかもしれない。最初に許可を得たほうが得策である。
.PP
ユーザには、テスト目的で、ホストscanme\.nmap\.orgをスキャンする許可が与えられている。この許可の対象は、Nmapによるスキャンに限定されるものであり、エクスプロイトやサービス妨害攻撃のテストは含まれない。帯域幅を節約するために、このホストに対するスキャンは、一日につき十数回以上は行わないようにすること。このフリーのスキャン対象提供サービスが悪用された場合、サービスは停止され、NmapはFailed to resolve given hostname/IP: scanme\.nmap\.org指定したホスト名/IPscanme\.nmap\.orgの解決に失敗しましたという報告を出す。これらの許可は、scanme2\.nmap\.org、scanme3\.nmap\.org等の各ホストにも適用されるが、これらのホストは、現在は存在しない。
ユーザには、テスト目的で、ホストscanme\&.nmap\&.orgをスキャンする許可が与えられている。この許可の対象は、Nmapによるスキャンに限定されるものであり、エクスプロイトやサービス妨害攻撃のテストは含まれない。帯域幅を節約するために、このホストに対するスキャンは、一日につき十数回以上は行わないようにすること。このフリーのスキャン対象提供サービスが悪用された場合、サービスは停止され、NmapはFailed to resolve given hostname/IP: scanme\&.nmap\&.org指定したホスト名/IPscanme\&.nmap\&.orgの解決に失敗しましたという報告を出す。これらの許可は、scanme2\&.nmap\&.org、scanme3\&.nmap\&.org等の各ホストにも適用されるが、これらのホストは、現在は存在しない。
.PP
\fBnmap \-v scanme\.nmap\.org\fR
\fBnmap \-v scanme\&.nmap\&.org\fR
.PP
このオプションを利用すると、scanme\.nmap\.orgというマシン上の予約済みTCPポートすべてに対してスキャンを実行する。また、\fB\-v\fRが指定されているため、冗長モードが有効になる。
このオプションを利用すると、scanme\&.nmap\&.orgというマシン上の予約済みTCPポートすべてに対してスキャンを実行する。また、\fB\-v\fRが指定されているため、冗長モードが有効になる。
.PP
\fBnmap \-sS \-O scanme\.nmap\.org/24\fR
\fBnmap \-sS \-O scanme\&.nmap\&.org/24\fR
.PP
scanme\.nmap\.orgが属している\(lqクラスC\(rqネットワーク上のマシン255台のうちで稼動している各マシンに対して、SYNスキャン(ステルススキャン)を実行する。また、稼動中の各ホスト上で動作しているOSの特定も同時に試行する。SYNスキャンとOSの検出を行うため、root権限が必要となる。
scanme\&.nmap\&.orgが属している\(lqクラスC\(rqネットワーク上のマシン255台のうちで稼動している各マシンに対して、SYNスキャン(ステルススキャン)を実行する。また、稼動中の各ホスト上で動作しているOSの特定も同時に試行する。SYNスキャンとOSの検出を行うため、root権限が必要となる。
.PP
\fBnmap \-sV \-p 22,53,110,143,4564 198\.116\.0\-255\.1\-127\fR
\fBnmap \-sV \-p 22,53,110,143,4564 198\&.116\&.0\-255\&.1\-127\fR
.PP
198\.116のクラスBアドレス空間で、8ビットで表せる255のサブネットに属するホストのうち、前半(1\-127)のIPアドレスを持つホストに対して、ホストの列挙とTCPスキャンを行う。このスキャンを行う目的は、対象システムでsshd、DNS、POP3d、IMAPd、4564番ポートが動作しているかどうかを調査することだ。これらのポートのなかで開いている(open)ことが判明したポートすべてに対してバージョン検出を使用して、何のアプリケーションが動作しているかを特定する。
198\&.116のクラスBアドレス空間で、8ビットで表せる255のサブネットに属するホストのうち、前半(1\-127)のIPアドレスを持つホストに対して、ホストの列挙とTCPスキャンを行う。このスキャンを行う目的は、対象システムでsshd、DNS、POP3d、IMAPd、4564番ポートが動作しているかどうかを調査することだ。これらのポートのなかで開いている(open)ことが判明したポートすべてに対してバージョン検出を使用して、何のアプリケーションが動作しているかを特定する。
.PP
\fBnmap \-v \-iR 100000 \-P0 \-p 80\fR
@@ -918,78 +934,113 @@ Nmapは100,000台のホストを無作為に選び、Webサーバ(80番ポート
で無効にしてある。各ターゲットホスト上で1つのポートしか調査しないのに、どのホストが稼動中であるかを特定するためにプローブを送るのは無駄だからだ。
.PP
\fBnmap \-P0 \-p80 \-oX logs/pb\-port80scan\.xml \-oG logs/pb\-port80scan\.gnmap 216\.163\.128\.20/20\fR
\fBnmap \-P0 \-p80 \-oX logs/pb\-port80scan\&.xml \-oG logs/pb\-port80scan\&.gnmap 216\&.163\&.128\&.20/20\fR
.PP
4096個のIPをスキャンしてWebサーバを見つけ出し(pingなしで)、結果出力をgrep可能およびXMLフォーマットで保存する。
.PP
\fBhost \-l company\.com | cut \-d \-f 4 | nmap \-v \-iL \-\fR
\fBhost \-l company\&.com | cut \-d \-f 4 | nmap \-v \-iL \-\fR
.PP
company\.comに存在するホストを発見するためにDNSのゾーン転送を実行し、発見したIPアドレスをnmapに渡す。このコマンドは、筆者のGNU/Linuxマシンで使用しているものだ。他のシステムには、ゾーン転送を実行するための別のコマンドがある。
company\&.comに存在するホストを発見するためにDNSのゾーン転送を実行し、発見したIPアドレスをnmapに渡す。このコマンドは、筆者のGNU/Linuxマシンで使用しているものだ。他のシステムには、ゾーン転送を実行するための別のコマンドがある。
.SH "バグ"
.PP
Nmapも作者と同様に完全ではない。それでもNmapのほうは、ユーザによるバグの報告やパッチの作成のおかげで、よりよいものにしてゆくことができる。Nmapを使っていて、思い通りに動かない場合は、まず\fI\%http://www.insecure.org/nmap/\fRから入手できる最新のバージョンにアップグレードしてみる。問題が続くようなら、すでに発見・対処が行われた問題かどうかを調査して確かめる。エラーメッセージをGoogle検索したり、\fI\%http://seclists.org/\fRでNmap\-devアーカイブを閲覧したりしてみる。このmanページも全体に目を通した方がよい。それでもどうにもならない場合は、バグレポートを<nmap\-dev@insecure\.org>宛てにメールで送ること。メールには、使用しているNmapのバージョンと、Nmapを実行しているOSの名前とバージョンなどの情報だけでなく、問題に関して分かったことは何でも書いていただきたい。問題の報告やNmapの使い方についての質問などは、nmap\-dev@insecure\.org宛てに送るほうが、筆者宛てに直接送るよりも返事がある可能性ははるかに高い。
Nmapも作者と同様に完全ではない。それでもNmapのほうは、ユーザによるバグの報告やパッチの作成のおかげで、よりよいものにしてゆくことができる。Nmapを使っていて、思い通りに動かない場合は、まず\m[blue]\fB\%http://www.insecure.org/nmap/\fR\m[]から入手できる最新のバージョンにアップグレードしてみる。問題が続くようなら、すでに発見・対処が行われた問題かどうかを調査して確かめる。エラーメッセージをGoogle検索したり、\m[blue]\fB\%http://seclists.org/\fR\m[]でNmap\-devアーカイブを閲覧したりしてみる。このmanページも全体に目を通した方がよい。それでもどうにもならない場合は、バグレポートをnmap\-dev@insecure\&.org宛てにメールで送ること。メールには、使用しているNmapのバージョンと、Nmapを実行しているOSの名前とバージョンなどの情報だけでなく、問題に関して分かったことは何でも書いていただきたい。問題の報告やNmapの使い方についての質問などは、nmap\-dev@insecure\&.org宛てに送るほうが、筆者宛てに直接送るよりも返事がある可能性ははるかに高い。
.PP
またバグレポートより、バグを修正するためのコードパッチのほうが歓迎される。ユーザ自身のコード変更によるパッチファイルの作成方法についての基本的な注意事項は\fI\%http://www.insecure.org/nmap/data/HACKING\fR
またバグレポートより、バグを修正するためのコードパッチのほうが歓迎される。ユーザ自身のコード変更によるパッチファイルの作成方法についての基本的な注意事項は\m[blue]\fB\%http://www.insecure.org/nmap/data/HACKING\fR\m[]
で参照できる。パッチは、nmap\-dev宛てに送る(推奨)か、筆者Fyodorまで直接送っていただきたい。
.SH "作者"
.PP
Fyodor
<fyodor@insecure\.org>
(\fI\%http://www.insecure.org\fR)
fyodor@insecure\&.org
(\m[blue]\fB\%http://www.insecure.org\fR\m[])
.PP
ここ数年で何百人もの人々から、Nmapに対して貴重な貢献をしていただいた。この詳細については、Nmapとともに配布されている\fICHANGELOG\fRファイルを参照のこと。CHANGELOGファイルは以下からも入手できる\fI\%http://www.insecure.org/nmap/nmap_changelog.html\fR
ここ数年で何百人もの人々から、Nmapに対して貴重な貢献をしていただいた。この詳細については、Nmapとともに配布されているCHANGELOGファイルを参照のこと。CHANGELOGファイルは以下からも入手できる\m[blue]\fB\%http://www.insecure.org/nmap/nmap_changelog.html\fR\m[]
.SH "法的通知事項"
.SS "著作権と使用許諾"
.PP
Nmapセキュリティスキャナの著作権は、Insecure\.Com LLCに帰属している1996\-2005。また、Nmapは、Insecure\.Com LLCの登録商標。このプログラムはフリーソフトウェアであり、Free Software FoundationFSFが発行するGNU一般公衆利用許諾契約書のバージョン2で定められている条件に従い、再配布、改変することが可能である。これは、特定の条件下でNmapを使用、改変、再配布する権利を保証するものである。Nmapの技術を独自仕様のソフトウェアに組み込むことを希望する場合は、喜んで別の形態のライセンスを販売するその際は、<sales@insecure\.com>に連絡。多くのセキュリティスキャナのベンダーは、ホスト発見、ポートスキャン、OS検出、サービス/バージョンの検出などの、Nmap技術のライセンスを受けている。
Nmapセキュリティスキャナの著作権は、Insecure\&.Com LLCに帰属している1996\-2005。また、Nmapは、Insecure\&.Com LLCの登録商標。このプログラムはフリーソフトウェアであり、Free Software FoundationFSFが発行するGNU一般公衆利用許諾契約書のバージョン2で定められている条件に従い、再配布、改変することが可能である。これは、特定の条件下でNmapを使用、改変、再配布する権利を保証するものである。Nmapの技術を独自仕様のソフトウェアに組み込むことを希望する場合は、喜んで別の形態のライセンスを販売するその際は、sales@insecure\&.comに連絡。多くのセキュリティスキャナのベンダーは、ホスト発見、ポートスキャン、OS検出、サービス/バージョンの検出などの、Nmap技術のライセンスを受けている。
.PP
GPL(一般公有使用許諾)は、\(lq派生著作物\(rqに対して重要な制約を課していることに注意する必要がある。けれども、この用語の詳細な定義はいまだに与えられていない。ここでは誤解を避けるため、以下のいずれかの事項が行われた場合に、アプリケーションが、GPLにおける\(lq派生著作物\(rqを構成するものと見なす:
.sp
.RS 4
\h'-04'\(bu\h'+03'Nmapのソースコードを統合する
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
Nmapのソースコードを統合する
.RE
.sp
.RS 4
\h'-04'\(bu\h'+03'\fInmap\-os\-fingerprints\fR
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
nmap\-os\-fingerprints
\fInmap\-service\-probes\fRなどの、Nmapの著作権のあるデータファイルを読み込む
nmap\-service\-probesなどの、Nmapの著作権のあるデータファイルを読み込む
.RE
.sp
.RS 4
\h'-04'\(bu\h'+03'Nmapを実行して結果を解析処理する(通常のシェルや実行メニューのアプリケーションとは異なる。これらは未処理のNmap出力を単に表示するだけなので、派生著作物にはならない)
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
Nmapを実行して結果を解析処理する(通常のシェルや実行メニューのアプリケーションとは異なる。これらは未処理のNmap出力を単に表示するだけなので、派生著作物にはならない)
.RE
.sp
.RS 4
\h'-04'\(bu\h'+03'InstallShield社の製品のような独自開発の実行可能インストーラに統合/組込/集約する
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
InstallShield社の製品のような独自開発の実行可能インストーラに統合/組込/集約する
.RE
.sp
.RS 4
\h'-04'\(bu\h'+03'上で述べたことを行うような、ライブラリにリンクしたりプログラムを実行したりする
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
上で述べたことを行うような、ライブラリにリンクしたりプログラムを実行したりする
.RE
.PP
\(lqNmap\(rqという用語は、Nmapの一部あるいは派生物を含めるために用いられるべきである。このリストは排他的な性質のものではなく、一般的な例を用いて、派生著作物の解釈を明確にすることを意図したものである。これらの制約事項は、実際にNmapを再配布する場合にのみ適用される。例えば、Nmap向けの独自開発フロントエンドを作成して販売することには何ら支障はない。ただし、その製品を単体で配布することと、ユーザにNmapのダウンロード先として以下を示すことが必要である\fI\%http://www.insecure.org/nmap/\fR
\(lqNmap\(rqという用語は、Nmapの一部あるいは派生物を含めるために用いられるべきである。このリストは排他的な性質のものではなく、一般的な例を用いて、派生著作物の解釈を明確にすることを意図したものである。これらの制約事項は、実際にNmapを再配布する場合にのみ適用される。例えば、Nmap向けの独自開発フロントエンドを作成して販売することには何ら支障はない。ただし、その製品を単体で配布することと、ユーザにNmapのダウンロード先として以下を示すことが必要である\m[blue]\fB\%http://www.insecure.org/nmap/\fR\m[]
.PP
われわれはこれらを、GPLにさらに追加された制約とは見なしていない。そうではなくて、\(lq派生著作物\(rq
という用語がGPL準拠のNmap製品に適用される場合に、それをどのように解釈するかを明確にするためのものと見なしている。これは、Linus Torvalds氏が、Linuxカーネルモジュールに\(lq派生著作物\(rq
がどのように適用されるかについての自分の解釈を表明したやり方に似ている。われわれの解釈はNmapだけに言及するもので、その他のGPL製品について述べているわけではない。
.PP
GPL準拠でない著作物におけるNmapの使用に対する、GPLライセンスによる制約について質問がある場合は喜んでお答えするつもりだ。上で述べたように、独自開発のアプリケーションやアプライアンスにNmapを統合するための代替ライセンスも提供している。このライセンス契約はすでに多くのセキュリティベンダに販売されており、その内容には通常、永久ライセンス、サポートやアップデートの優先提供、Nmap技術の開発継続のための資金援助などが含まれている。詳細については電子メールで<sales@insecure\.com>
GPL準拠でない著作物におけるNmapの使用に対する、GPLライセンスによる制約について質問がある場合は喜んでお答えするつもりだ。上で述べたように、独自開発のアプリケーションやアプライアンスにNmapを統合するための代替ライセンスも提供している。このライセンス契約はすでに多くのセキュリティベンダに販売されており、その内容には通常、永久ライセンス、サポートやアップデートの優先提供、Nmap技術の開発継続のための資金援助などが含まれている。詳細については電子メールでsales@insecure\&.com
に問い合わせていただきたい。
.PP
Insecure\.Com LLCは、GPLの取り決めに対する特例として、NmapのコードとOpenSSLライブラリとのリンクを認めており、この2つをリンクで組み合わせたものを配布している。OpenSSLライブラリは、同梱のCopying\.OpenSSLファイルにリストされたものと同一のライセンスのもとで配布されている。OpenSSL以外の使用されているすべてのコードに対しては、あらゆる点でGNU GPLに従わなければならない。このファイルの一部を変更する場合、そのファイルの自身のバージョンにこの例外を拡大して適用できるが、そのように行う義務を負うものではない。
Insecure\&.Com LLCは、GPLの取り決めに対する特例として、NmapのコードとOpenSSLライブラリとのリンクを認めており、この2つをリンクで組み合わせたものを配布している。OpenSSLライブラリは、同梱のCopying\&.OpenSSLファイルにリストされたものと同一のライセンスのもとで配布されている。OpenSSL以外の使用されているすべてのコードに対しては、あらゆる点でGNU GPLに従わなければならない。このファイルの一部を変更する場合、そのファイルの自身のバージョンにこの例外を拡大して適用できるが、そのように行う義務を負うものではない。
.PP
上記の条件以外の条件が記載されたライセンス契約書とともにこれらのファイルを入手した場合、そのライセンス契約書は、ここで述べた内容に優先する。
.SS "ソースコードの入手可能性とコミュニティへの寄与"
.PP
われわれは、ユーザーにこのプログラムのソースコードを提供している。その理由は、ユーザが実際にプログラムを実行する前に、そのプログラムがどんな動作を行うのかを正確に知る権利がある、と考えているからだ。また、ソフトウェアに対して脆弱性を見つけるための監査を行うこともできる(まだ1つも見つかったことはないが)。
.PP
ソースコードは、新しいプラットフォームへの移植、バグの修正、新しい機能の追加を可能にする。コードに何らかの変更を加えた場合は、主要ディストリビューションに組み込まれる可能性もあるため、その内容を<fyodor@insecure\.org>
までぜひお送りいただきたい。ただし、変更したコードをFyodorまたはInsecure\.orgの開発用メーリングリストの1つに送信することで、そのコードを無制限かつ非独占的に再利用、改変、再ライセンスする権利をFyodorおよびInsecure\.Com LLCに提供するものと見なす。Nmapは常にオープンソースで利用できるようにする予定だが、これが重要なのは、コードのライセンス再発行ができなかったことで、他のフリーソフトウェア・プロジェクトKDEやNSAMなどに壊滅的な問題が発生したことがあったためである。また上で述べた通り、サードパーティに対してコードの再ライセンスを行こともある。自分が寄与したコードに特別なライセンス条件を指定したい場合は、コードの送信時にその旨を伝えて欲しい。
ソースコードは、新しいプラットフォームへの移植、バグの修正、新しい機能の追加を可能にする。コードに何らかの変更を加えた場合は、主要ディストリビューションに組み込まれる可能性もあるため、その内容をfyodor@insecure\&.org
までぜひお送りいただきたい。ただし、変更したコードをFyodorまたはInsecure\&.orgの開発用メーリングリストの1つに送信することで、そのコードを無制限かつ非独占的に再利用、改変、再ライセンスする権利をFyodorおよびInsecure\&.Com LLCに提供するものと見なす。Nmapは常にオープンソースで利用できるようにする予定だが、これが重要なのは、コードのライセンス再発行ができなかったことで、他のフリーソフトウェア・プロジェクトKDEやNSAMなどに壊滅的な問題が発生したことがあったためである。また上で述べた通り、サードパーティに対してコードの再ライセンスを行こともある。自分が寄与したコードに特別なライセンス条件を指定したい場合は、コードの送信時にその旨を伝えて欲しい。
.SS "無保証"
.PP
このプログラムは、人々の役に立つことを期待して配布されているが、その保証は一切行わない。すなわち、商品適格性や特定目的への適合性の黙示保証は一切行わない。詳細については、GNU一般公有使用許諾契約書を参照のこと。GNU GPLは、
\fI\%http://www.gnu.org/copyleft/gpl.html\fRから、またはNmapに同梱のCOPYINGファイルで参照できる。
\m[blue]\fB\%http://www.gnu.org/copyleft/gpl.html\fR\m[]から、またはNmapに同梱のCOPYINGファイルで参照できる。
.PP
またNmapは、不完全なアプリケーション、TCP/IPスタック、OSなどをクラッシュさせることが確認されていることに注意すること。きわめてまれなこととはいえ、記憶に留めておく必要がある。ダウンタイムを受容する準備ができていない限り、\fINmapをミッションクリティカルなシステムに対して実行してはならない\fR
。Nmapがシステムやネットワークに障害を与える可能性がある点については認めたうえで、Nmapの使用により発生しうるいかなる損害や問題に対しても一切の責任を負わないものとする。
@@ -1001,15 +1052,15 @@ Insecure\.Com LLCは、GPLの取り決めに対する特例として、Nmapの
.SS "サードパーティ ソフトウェア"
.PP
Nmapには、
\fIApache Software Foundation\fR\&[8]
によって開発されたソフトウェアが含まれており、改訂版の\fILibpcap portable packet capture library\fR\&[9]
が、Nmapとともに配布されている。Windows版Nmapでは、libpcapより派生した\fIWinPcap ライブラリ\fR\&[10]が用いられる。正規表現のサポートは、Philip Hazel氏作成のオープンソースのソフトウェアである
\fIPCRE ライブラリ\fR\&[11]パッケージで提供されている。特定のRAWネットワーク機能では、Dug Song氏作の\fILibdnet\fR\&[12]ネットワークライブラリが使用される。修正バージョンが、Nmapとともに配布されている。Nmapはオプションで、SSLバージョン検出をサポートするために、
\fIOpenSSL 暗号化ツールキット\fR\&[13]
\m[blue]\fBApache Software Foundation\fR\m[]\&\s-2\u[8]\d\s+2
によって開発されたソフトウェアが含まれており、改訂版の\m[blue]\fBLibpcap portable packet capture library\fR\m[]\&\s-2\u[9]\d\s+2
が、Nmapとともに配布されている。Windows版Nmapでは、libpcapより派生した\m[blue]\fBWinPcap ライブラリ\fR\m[]\&\s-2\u[10]\d\s+2が用いられる。正規表現のサポートは、Philip Hazel氏作成のオープンソースのソフトウェアである
\m[blue]\fBPCRE ライブラリ\fR\m[]\&\s-2\u[11]\d\s+2パッケージで提供されている。特定のRAWネットワーク機能では、Dug Song氏作の\m[blue]\fBLibdnet\fR\m[]\&\s-2\u[12]\d\s+2ネットワークライブラリが使用される。修正バージョンが、Nmapとともに配布されている。Nmapはオプションで、SSLバージョン検出をサポートするために、
\m[blue]\fBOpenSSL 暗号化ツールキット\fR\m[]\&\s-2\u[13]\d\s+2
とリンクできる。ここで述べたすべてのサードパーティ・ソフトウェアは、BSD方式のソフトウェアライセンスのもとで、自由に再配布できる。
.SS "米国輸出管理分類"
.PP
米国輸出管理Insecure\.Com LLCでは、NmapはUS ECCN輸出管理分類番号5D992に該当すると考えている。5D992に分類されるものは、\(lq5D002で規制されない情報セキュリティソフトウェア\(rqとなっており、この分類に唯一適用される規制は、ATテロ防止規制である。ATは、ほぼすべての物品に適用され、イランや北朝鮮などの少数の無法国家への輸出を禁止する規制である。このため、Nmapの輸出には、特別なライセンスや許可、あるいは政府の承認を一切必要としない。
米国輸出管理Insecure\&.Com LLCでは、NmapはUS ECCN輸出管理分類番号5D992に該当すると考えている。5D992に分類されるものは、\(lq5D002で規制されない情報セキュリティソフトウェア\(rqとなっており、この分類に唯一適用される規制は、ATテロ防止規制である。ATは、ほぼすべての物品に適用され、イランや北朝鮮などの少数の無法国家への輸出を禁止する規制である。このため、Nmapの輸出には、特別なライセンスや許可、あるいは政府の承認を一切必要としない。
.SH "NOTES"
.IP " 1." 4
RFC1122

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -1,19 +1,27 @@
'\" t
.\" Title: nmap
.\" Author:
.\" Generator: DocBook XSL Stylesheets v1.73.2 <http://docbook.sf.net/>
.\" Date: 06/15/2008
.\" Manual:
.\" Source:
.\" Author: [FIXME: author] [see http://docbook.sf.net/el/author]
.\" Generator: DocBook XSL Stylesheets v1.74.3 <http://docbook.sf.net/>
.\" Date: 11/21/2009
.\" Manual: [FIXME: manual]
.\" Source: [FIXME: source]
.\" Language: English
.\"
.TH "NMAP" "1" "06/15/2008" "" ""
.TH "NMAP" "1" "11/21/2009" "[FIXME: source]" "[FIXME: manual]"
.\" -----------------------------------------------------------------
.\" * set default formatting
.\" -----------------------------------------------------------------
.\" disable hyphenation
.nh
.\" disable justification (adjust text to left margin only)
.ad l
.\" -----------------------------------------------------------------
.\" * MAIN CONTENT STARTS HERE *
.\" -----------------------------------------------------------------
.SH "NAME"
nmap - 网络探测工具和安全/端口扫描器
nmap \- 网络探测工具和安全/端口扫描器
.SH "SYNOPSIS"
.HP 5
.HP \w'\fBnmap\fR\ 'u
\fBnmap\fR [\fI扫描类型\fR...] [\fI选项\fR] {\fI扫描目标说明\fR}
.SH "描述"
.PP
@@ -34,30 +42,32 @@ closed|filtered时那说明Nmap无法确定该端口处于两个状态中的
.PP
除了所感兴趣的端口表Nmap还能提供关于目标机的进一步信息包括反向域名操作系统猜测设备类型和MAC地址。
.PP
一个典型的Nmap扫描如Example\ 1, \(lq一个典型的Nmap扫描\(rq所示。在这个例子中,唯一的选项是\fB\-A\fR 用来进行操作系统及其版本的探测,\fB\-T4\fR
一个典型的Nmap扫描如Example\ \&1, \(lq一个典型的Nmap扫描\(rq所示。在这个例子中,唯一的选项是\fB\-A\fR 用来进行操作系统及其版本的探测,\fB\-T4\fR
可以加快执行速度,接着是两个目标主机名。
.PP
\fBExample\ 1.\ 一个典型的Nmap扫描\fR
\fBExample\ \&1.\ \&一个典型的Nmap扫描\fR
.sp
.if n \{\
.RS 4
.\}
.nf
# nmap \-A \-T4 scanme\.nmap\.org playground
# nmap \-A \-T4 scanme\&.nmap\&.org playground
Starting nmap ( http://www\.insecure\.org/nmap/ )
Interesting ports on scanme\.nmap\.org (205\.217\.153\.62):
Starting nmap ( http://www\&.insecure\&.org/nmap/ )
Interesting ports on scanme\&.nmap\&.org (205\&.217\&.153\&.62):
(The 1663 ports scanned but not shown below are in state: filtered)
port STATE SERVICE VERSION
22/tcp open ssh OpenSSH 3\.9p1 (protocol 1\.99)
22/tcp open ssh OpenSSH 3\&.9p1 (protocol 1\&.99)
53/tcp open domain
70/tcp closed gopher
80/tcp open http Apache httpd 2\.0\.52 ((Fedora))
80/tcp open http Apache httpd 2\&.0\&.52 ((Fedora))
113/tcp closed auth
Device type: general purpose
Running: Linux 2\.4\.X|2\.5\.X|2\.6\.X
OS details: Linux 2\.4\.7 \- 2\.6\.11Linux 2\.6\.0 \- 2\.6\.11
Running: Linux 2\&.4\&.X|2\&.5\&.X|2\&.6\&.X
OS details: Linux 2\&.4\&.7 \- 2\&.6\&.11Linux 2\&.6\&.0 \- 2\&.6\&.11
Uptime 33。908 days (since Thu Jul 21 03:38:03 2005)
Interesting ports on playground。nmap。或者g (192\.168\.0\.40):
Interesting ports on playground。nmap。或者g (192\&.168\&.0\&.40):
(The 1659 ports scanned but not shown below are in state: closed)
port STATE SERVICE VERSION
135/tcp open msrpc Microsoft Windows RPC
@@ -66,39 +76,43 @@ port STATE SERVICE VERSION
445/tcp open microsoft\-ds Microsoft Windows XP microsoft\-ds
1002/tcp open windows\-icfw?
1025/tcp open msrpc Microsoft Windows RPC
1720/tcp open H\.323/Q\.931 CompTek AquaGateKeeper
5800/tcp open vnc\-http RealVNC 4\.0 (Resolution 400x250; VNC TCP port: 5900)
5900/tcp open vnc VNC (protocol 3\.8)
1720/tcp open H\&.323/Q\&.931 CompTek AquaGateKeeper
5800/tcp open vnc\-http RealVNC 4\&.0 (Resolution 400x250; VNC TCP port: 5900)
5900/tcp open vnc VNC (protocol 3\&.8)
MAC Address: 00:A0:CC:63:85:4B (Lite\-on Communications)
Device type: general purpose
Running: Microsoft Windows NT/2K/XP
OS details: Microsoft Windows XP Pro RC1+ through final release
Service Info: OSs: WindowsWindows XP
Nmap finished: 2 IP addresses (2 hosts up) scanned in 88\.392 seconds
Nmap finished: 2 IP addresses (2 hosts up) scanned in 88\&.392 seconds
.fi
.if n \{\
.RE
.\}
.SH "译注"
.PP
该Nmap参考指南中文版由Fei Yang
<fyang1024@gmail\.com>和Lei Li<lilei_721@6611\.org>
\fI英文版本\fR\&[1]翻译而来。 我们希望这将使全世界使用中文的人们更了解Nmap但我们不能保证该译本和官方的 英文版本一样完整,也不能保证同步更新。 它可以在\fICreative Commons Attribution License\fR\&[2]下被修改并重新发布。
fyang1024@gmail\&.com和Lei Lililei_721@6611\&.org
\m[blue]\fB英文版本\fR\m[]\&\s-2\u[1]\d\s+2翻译而来。 我们希望这将使全世界使用中文的人们更了解Nmap但我们不能保证该译本和官方的 英文版本一样完整,也不能保证同步更新。 它可以在\m[blue]\fBCreative Commons Attribution License\fR\m[]\&\s-2\u[2]\d\s+2下被修改并重新发布。
.SH "选项概要"
.PP
当Nmap不带选项运行时该选项概要会被输出最新的版本在这里
\fI\%http://www.insecure.org/nmap/data/nmap.usage.txt\fR。 它帮助人们记住最常用的选项,但不能替代本手册其余深入的文档,一些晦涩的选项甚至不在这里。
\m[blue]\fB\%http://www.insecure.org/nmap/data/nmap.usage.txt\fR\m[]。 它帮助人们记住最常用的选项,但不能替代本手册其余深入的文档,一些晦涩的选项甚至不在这里。
.PP
.sp
.if n \{\
.RS 4
.\}
.nf
Usage: nmap [Scan Type(s)] [Options] {target specification}
TARGET SPECIFICATION:
Can pass hostnames, IP addresses, networks, etc\.
Ex: scanme\.nmap\.org, microsoft\.com/24, 192\.168\.0\.1; 10\.0\-255\.0\-255\.1\-254
Can pass hostnames, IP addresses, networks, etc\&.
Ex: scanme\&.nmap\&.org, microsoft\&.com/24, 192\&.168\&.0\&.1; 10\&.0\-255\&.0\-255\&.1\-254
\-iL <inputfilename>: Input from list of hosts/networks
\-iR <num hosts>: Choose random targets
\-\-exclude <host1[,host2][,host3],\.\.\.>: Exclude hosts/networks
\-\-exclude <host1[,host2][,host3],\&.\&.\&.>: Exclude hosts/networks
\-\-excludefile <exclude_file>: Exclude list from file
HOST DISCOVERY:
\-sL: List Scan \- simply list targets to scan
@@ -133,12 +147,12 @@ TIMING AND PERFORMANCE:
\-\-min\-hostgroup/max\-hostgroup <msec>: Parallel host scan group sizes
\-\-min\-parallelism/max\-parallelism <msec>: Probe parallelization
\-\-min_rtt_timeout/max\-rtt\-timeout/initial\-rtt\-timeout <msec>: Specifies
probe round trip time\.
probe round trip time\&.
\-\-host\-timeout <msec>: Give up on target after this long
\-\-scan\-delay/\-\-max_scan\-delay <msec>: Adjust delay between probes
FIREWALL/IDS EVASION AND SPOOFING:
\-f; \-\-mtu <val>: fragment packets (optionally w/given MTU)
\-D <decoy1,decoy2[,ME],\.\.\.>: Cloak a scan with decoys
\-D <decoy1,decoy2[,ME],\&.\&.\&.>: Cloak a scan with decoys
\-S <IP_Address>: Spoof source address
\-e <iface>: Use specified interface
\-g/\-\-source\-port <portnum>: Use given port number
@@ -147,7 +161,7 @@ FIREWALL/IDS EVASION AND SPOOFING:
\-\-spoof\-mac <mac address, prefix, or vendor name>: Spoof your MAC address
OUTPUT:
\-oN/\-oX/\-oS/\-oG <file>: Output scan results in normal, XML, s|<rIpt kIddi3,
and Grepable format, respectively, to the given filename\.
and Grepable format, respectively, to the given filename\&.
\-oA <basename>: Output in the three major formats at once
\-v: Increase verbosity level (use twice for more effect)
\-d[level]: Set or increase debugging level (Up to 9 is meaningful)
@@ -164,28 +178,30 @@ MISC:
\-\-send\-eth/\-\-send\-ip: Send packets using raw ethernet frames or IP packets
\-\-privileged: Assume that the user is fully privileged
\-V: Print version number
\-h: Print this help summary page\.
\-h: Print this help summary page\&.
EXAMPLES:
nmap \-v \-A scanme\.nmap\.org
nmap \-v \-sP 192\.168\.0\.0/16 10\.0\.0\.0/8
nmap \-v \-A scanme\&.nmap\&.org
nmap \-v \-sP 192\&.168\&.0\&.0/16 10\&.0\&.0\&.0/8
nmap \-v \-iR 10000 \-P0 \-p 80
.fi
.if n \{\
.RE
.\}
.sp
.SH "目标说明"
.PP
除了选项所有出现在Nmap命令行上的都被视为对目标主机的说明。 最简单的情况是指定一个目标IP地址或主机名。
.PP
有时候您希望扫描整个网络的相邻主机。为此Nmap支持CIDR风格的地址。您可以附加 一个/\fInumbit\fR在一个IP地址或主机名后面 Nmap将会扫描所有和该参考IP地址具有
\fInumbit\fR相同比特的所有IP地址或主机。 例如192\.168\.10\.0/24将会扫描192\.168\.10\.0 (二进制格式:
11000000 10101000 00001010 00000000)和192\.168\.10\.255 (二进制格式:
11000000 10101000 00001010 11111111)之间的256台主机。 192\.168\.10\.40/24 将会做同样的事情。假设主机 scanme\.nmap\.org的IP地址是205\.217\.153\.62 scanme\.nmap\.org/16 将扫描205\.217\.0\.0和205\.217\.255\.255之间的65,536 个IP地址。 所允许的最小值是/1 这将会扫描半个互联网。最大值是/32这将会扫描该主机或IP地址 因为所有的比特都固定了。
\fInumbit\fR相同比特的所有IP地址或主机。 例如192\&.168\&.10\&.0/24将会扫描192\&.168\&.10\&.0 (二进制格式:
11000000 10101000 00001010 00000000)和192\&.168\&.10\&.255 (二进制格式:
11000000 10101000 00001010 11111111)之间的256台主机。 192\&.168\&.10\&.40/24 将会做同样的事情。假设主机 scanme\&.nmap\&.org的IP地址是205\&.217\&.153\&.62 scanme\&.nmap\&.org/16 将扫描205\&.217\&.0\&.0和205\&.217\&.255\&.255之间的65,536 个IP地址。 所允许的最小值是/1 这将会扫描半个互联网。最大值是/32这将会扫描该主机或IP地址 因为所有的比特都固定了。
.PP
CIDR标志位很简洁但有时候不够灵活。例如您也许想要扫描 192\.168\.0\.0/16但略过任何以\.0或者\.255 结束的IP地址因为它们通常是广播地址。 Nmap通过八位字节地址范围支持这样的扫描 您可以用逗号分开的数字或范围列表为IP地址的每个八位字节指定它的范围。 例如192\.168\.0\-255\.1\-254 将略过在该范围内以\.0和\.255结束的地址。 范围不必限于最后的8位0\-255\.0\-255\.13\.37 将在整个互联网范围内扫描所有以13\.37结束的地址。 这种大范围的扫描对互联网调查研究也许有用。
CIDR标志位很简洁但有时候不够灵活。例如您也许想要扫描 192\&.168\&.0\&.0/16但略过任何以\&.0或者\&.255 结束的IP地址因为它们通常是广播地址。 Nmap通过八位字节地址范围支持这样的扫描 您可以用逗号分开的数字或范围列表为IP地址的每个八位字节指定它的范围。 例如192\&.168\&.0\-255\&.1\-254 将略过在该范围内以\&.0和\&.255结束的地址。 范围不必限于最后的8位0\-255\&.0\-255\&.13\&.37 将在整个互联网范围内扫描所有以13\&.37结束的地址。 这种大范围的扫描对互联网调查研究也许有用。
.PP
IPv6地址只能用规范的IPv6地址或主机名指定。 CIDR 和八位字节范围不支持IPv6因为它们对于IPv6几乎没什么用。
.PP
Nmap命令行接受多个主机说明它们不必是相同类型。命令\fBnmap scanme\.nmap\.org 192\.168\.0\.0/8 10\.0\.013\-7\.0\-255\fR将和您预期的一样执行。
Nmap命令行接受多个主机说明它们不必是相同类型。命令\fBnmap scanme\&.nmap\&.org 192\&.168\&.0\&.0/8 10\&.0\&.013\-7\&.0\-255\fR将和您预期的一样执行。
.PP
虽然目标通常在命令行指定,下列选项也可用来控制目标的选择:
.PP
@@ -205,7 +221,7 @@ Nmap命令行接受多个主机说明它们不必是相同类型。命令\fBn
意味着永无休止的扫描。记住,一些网管对于未授权的扫描可能会很感冒并加以抱怨。 使用该选项的后果自负! 如果在某个雨天的下午,您觉得实在无聊, 试试这个命令\fBnmap \-sS \-PS80 \-iR 0 \-p 80\fR随机地找一些网站浏览。
.RE
.PP
\fB\-\-exclude <host1[host2][host3]\.\.\.>\fR (排除主机/网络)
\fB\-\-exclude <host1[host2][host3]\&.\&.\&.>\fR (排除主机/网络)
.RS 4
如果在您指定的扫描范围有一些主机或网络不是您的目标, 那就用该选项加上以逗号分隔的列表排除它们。该列表用正常的Nmap语法 因此它可以包括主机名CIDR八位字节范围等等。 当您希望扫描的网络包含执行关键任务的服务器,已知的对端口扫描反应强烈的 系统或者被其它人看管的子网时,这也许有用。
.RE
@@ -220,7 +236,7 @@ Nmap命令行接受多个主机说明它们不必是相同类型。命令\fBn
.PP
任何网络探测任务的最初几个步骤之一就是把一组IP范围(有时该范围是巨大的)缩小为 一列活动的或者您感兴趣的主机。扫描每个IP的每个端口很慢通常也没必要。 当然,什么样的主机令您感兴趣主要依赖于扫描的目的。网管也许只对运行特定服务的 主机感兴趣而从事安全的人士则可能对一个马桶都感兴趣只要它有IP地址:\-)。一个系统管理员 也许仅仅使用Ping来定位内网上的主机而一个外部入侵测试人员则可能绞尽脑汁用各种方法试图 突破防火墙的封锁。
.PP
由于主机发现的需求五花八门Nmap提供了一箩筐的选项来定制您的需求。 主机发现有时候也叫做ping扫描但它远远超越用世人皆知的ping工具 发送简单的ICMP回声请求报文。用户完全可以通过使用列表扫描(\fB\-sL\fR)或者 通过关闭ping (\fB\-P0\fR)跳过ping的步骤也可以使用多个端口把TPC SYN/ACKUDP和ICMP 任意组合起来玩一玩。这些探测的目的是获得响应以显示某个IP地址是否是活动的(正在被某 主机或者网络设备使用)。 在许多网络上在给定的时间往往只有小部分的IP地址是活动的。 这种情况在基于RFC1918的私有地址空间如10\.0\.0\.0/8尤其普遍。 那个网络有16,000,000个IP但我见过一些使用它的公司连1000台机器都没有。 主机发现能够找到零星分布于IP地址海洋上的那些机器。
由于主机发现的需求五花八门Nmap提供了一箩筐的选项来定制您的需求。 主机发现有时候也叫做ping扫描但它远远超越用世人皆知的ping工具 发送简单的ICMP回声请求报文。用户完全可以通过使用列表扫描(\fB\-sL\fR)或者 通过关闭ping (\fB\-P0\fR)跳过ping的步骤也可以使用多个端口把TPC SYN/ACKUDP和ICMP 任意组合起来玩一玩。这些探测的目的是获得响应以显示某个IP地址是否是活动的(正在被某 主机或者网络设备使用)。 在许多网络上在给定的时间往往只有小部分的IP地址是活动的。 这种情况在基于RFC1918的私有地址空间如10\&.0\&.0\&.0/8尤其普遍。 那个网络有16,000,000个IP但我见过一些使用它的公司连1000台机器都没有。 主机发现能够找到零星分布于IP地址海洋上的那些机器。
.PP
如果没有给出主机发现的选项Nmap 就发送一个TCP ACK报文到80端口和一个ICMP回声请求到每台目标机器。 一个例外是ARP扫描用于局域网上的任何目标机器。对于非特权UNIX shell用户使用\fBconnect()\fR系统调用会发送一个SYN报文而不是ACK 这些默认行为和使用\fB\-PA \-PE\fR选项的效果相同。 扫描局域网时,这种主机发现一般够用了,但是对于安全审核,建议进行 更加全面的探测。
.PP
@@ -232,7 +248,7 @@ Nmap命令行接受多个主机说明它们不必是相同类型。命令\fBn
\fB\-sL\fR (列表扫描)
.RS 4
列表扫描是主机发现的退化形式,它仅仅列出指定网络上的每台主机, 不发送任何报文到目标主机。默认情况下Nmap仍然对主机进行反向域名解析以获取 它们的名字。简单的主机名能给出的有用信息常常令人惊讶。例如,
fw\.chi\.playboy\.com是花花公子芝加哥办公室的 防火墙。Nmap最后还会报告IP地址的总数。列表扫描可以很好的确保您拥有正确的目标IP。 如果主机的域名出乎您的意料,那么就值得进一步检查以防错误地扫描其它组织的网络。
fw\&.chi\&.playboy\&.com是花花公子芝加哥办公室的 防火墙。Nmap最后还会报告IP地址的总数。列表扫描可以很好的确保您拥有正确的目标IP。 如果主机的域名出乎您的意料,那么就值得进一步检查以防错误地扫描其它组织的网络。
.sp
既然只是打印目标主机的列表像其它一些高级功能如端口扫描操作系统探测或者Ping扫描 的选项就没有了。如果您希望关闭ping扫描而仍然执行这样的高级功能请继续阅读关于
\fB\-P0\fR选项的介绍。
@@ -258,7 +274,7 @@ fw\.chi\.playboy\.com是花花公子芝加哥办公室的 防火墙。Nmap最后
.PP
\fB\-PS [portlist]\fR (TCP SYN Ping)
.RS 4
该选项发送一个设置了SYN标志位的空TCP报文。 默认目的端口为80 (可以通过改变\fInmap\.h\fR) 文件中的DEFAULT_TCP_PROBE_PORT值进行配置但不同的端口也可以作为选项指定。 甚至可以指定一个以逗号分隔的端口列表(如
该选项发送一个设置了SYN标志位的空TCP报文。 默认目的端口为80 (可以通过改变nmap\&.h) 文件中的DEFAULT_TCP_PROBE_PORT值进行配置但不同的端口也可以作为选项指定。 甚至可以指定一个以逗号分隔的端口列表(如
\fB\-PS22232580113105035000\fR) 在这种情况下,每个端口会被并发地扫描。
.sp
SYN标志位告诉对方您正试图建立一个连接。 通常目标端口是关闭的一个RST (复位) 包会发回来。 如果碰巧端口是开放的目标会进行TCP三步握手的第二步回应 一个SYN/ACK TCP报文。然后运行Nmap的机器则会扼杀这个正在建立的连接 发送一个RST而非ACK报文否则一个完全的连接将会建立。 RST报文是运行Nmap的机器而不是Nmap本身响应的因为它对收到 的SYN/ACK感到很意外。
@@ -287,7 +303,7 @@ TCP ACK ping和刚才讨论的SYN ping相当类似。 也许您已经猜到了
\fB\-PU [portlist]\fR (UDP Ping)
.RS 4
还有一个主机发现的选项是UDP ping它发送一个空的(除非指定了\fB\-\-data\-length\fR
UDP报文到给定的端口。端口列表的格式和前面讨论过的\fB\-PS\fR\fB\-PA\fR选项还是一样。 如果不指定端口默认是31338。该默认值可以通过在编译时改变\fInmap\.h\fR文件中的 DEFAULT_UDP_PROBE_PORT值进行配置。默认使用这样一个奇怪的端口是因为对开放端口 进行这种扫描一般都不受欢迎。
UDP报文到给定的端口。端口列表的格式和前面讨论过的\fB\-PS\fR\fB\-PA\fR选项还是一样。 如果不指定端口默认是31338。该默认值可以通过在编译时改变nmap\&.h文件中的 DEFAULT_UDP_PROBE_PORT值进行配置。默认使用这样一个奇怪的端口是因为对开放端口 进行这种扫描一般都不受欢迎。
.sp
如果目标机器的端口是关闭的UDP探测应该马上得到一个ICMP端口无法到达的回应报文。 这对于Nmap意味着该机器正在运行。 许多其它类型的ICMP错误像主机/网络无法到达或者TTL超时则表示down掉的或者不可到达的主机。 没有回应也被这样解释。如果到达一个开放的端口,大部分服务仅仅忽略这个 空报文而不做任何回应。这就是为什么默认探测端口是31338这样一个 极不可能被使用的端口。少数服务如chargen会响应一个空的UDP报文 从而向Nmap表明该机器正在运行。
.sp
@@ -297,9 +313,9 @@ UDP报文到给定的端口。端口列表的格式和前面讨论过的\fB\-PS\
\fB\-PE\fR; \fB\-PP\fR; \fB\-PM\fR (ICMP Ping Types)
.RS 4
除了前面讨论的这些不常见的TCP和UDP主机发现类型 Nmap也能发送世人皆知的ping
程序所发送的报文。Nmap发送一个ICMP type 8 (回声请求)报文到目标IP地址 期待从运行的主机得到一个type 0 (回声响应)报文。 对于网络探索者而言,不幸的是,许多主机和 防火墙现在封锁这些报文,而不是按期望的那样响应, 参见\fIRFC 1122\fR\&[3]。因此仅仅ICMP扫描对于互联网上的目标通常是不够的。 但对于系统管理员监视一个内部网络,它们可能是实际有效的途径。 使用\fB\-PE\fR选项打开该回声请求功能。
程序所发送的报文。Nmap发送一个ICMP type 8 (回声请求)报文到目标IP地址 期待从运行的主机得到一个type 0 (回声响应)报文。 对于网络探索者而言,不幸的是,许多主机和 防火墙现在封锁这些报文,而不是按期望的那样响应, 参见\m[blue]\fBRFC 1122\fR\m[]\&\s-2\u[3]\d\s+2。因此仅仅ICMP扫描对于互联网上的目标通常是不够的。 但对于系统管理员监视一个内部网络,它们可能是实际有效的途径。 使用\fB\-PE\fR选项打开该回声请求功能。
.sp
虽然回声请求是标准的ICMP ping查询 Nmap并不止于此。ICMP标准 (\fIRFC 792\fR\&[4])还规范了时间戳请求,信息请求 request和地址掩码请求它们的代码分别是1315和17。 虽然这些查询的表面目的是获取信息如地址掩码和当前时间, 它们也可以很容易地用于主机发现。 很简单回应的系统就是在运行的系统。Nmap目前没有实现信息请求报文 因为它们还没有被广泛支持。RFC 1122 坚持
虽然回声请求是标准的ICMP ping查询 Nmap并不止于此。ICMP标准 (\m[blue]\fBRFC 792\fR\m[]\&\s-2\u[4]\d\s+2)还规范了时间戳请求,信息请求 request和地址掩码请求它们的代码分别是1315和17。 虽然这些查询的表面目的是获取信息如地址掩码和当前时间, 它们也可以很容易地用于主机发现。 很简单回应的系统就是在运行的系统。Nmap目前没有实现信息请求报文 因为它们还没有被广泛支持。RFC 1122 坚持
\(lq主机不应该实现这些消息\(rq。 时间戳和地址掩码查询可以分别用\fB\-PP\fR\fB\-PM\fR选项发送。 时间戳响应(ICMP代码14)或者地址掩码响应(代码18)表示主机在运行。 当管理员特别封锁了回声请求报文而忘了其它ICMP查询可能用于 相同目的时,这两个查询可能很有价值。
.RE
.PP
@@ -404,14 +420,14 @@ connect()调用比对原始报文控制更少, 所以前者效率较低。 该
.PP
\fB\-sU\fR (UDP扫描)
.RS 4
虽然互联网上很多流行的服务运行在TCP 协议上,\fIUDP\fR\&[5]服务也不少。 DNSSNMP和DHCP (注册的端口是53161/162和67/68)是最常见的三个。 因为UDP扫描一般较慢比TCP更困难一些安全审核人员忽略这些端口。 这是一个错误因为可探测的UDP服务相当普遍攻击者当然不会忽略整个协议。 所幸Nmap可以帮助记录并报告UDP端口。
虽然互联网上很多流行的服务运行在TCP 协议上,\m[blue]\fBUDP\fR\m[]\&\s-2\u[5]\d\s+2服务也不少。 DNSSNMP和DHCP (注册的端口是53161/162和67/68)是最常见的三个。 因为UDP扫描一般较慢比TCP更困难一些安全审核人员忽略这些端口。 这是一个错误因为可探测的UDP服务相当普遍攻击者当然不会忽略整个协议。 所幸Nmap可以帮助记录并报告UDP端口。
.sp
UDP扫描用\fB\-sU\fR选项激活。它可以和TCP扫描如 SYN扫描 (\fB\-sS\fR)结合使用来同时检查两种协议。
.sp
UDP扫描发送空的(没有数据)UDP报头到每个目标端口。 如果返回ICMP端口不可到达错误(类型3代码3) 该端口是closed(关闭的)。 其它ICMP不可到达错误(类型3 代码12910或者13)表明该端口是filtered(被过滤的)。 偶尔地某服务会响应一个UDP报文证明该端口是open(开放的)。 如果几次重试后还没有响应,该端口就被认为是
open|filtered(开放|被过滤的)。 这意味着该端口可能是开放的,也可能包过滤器正在封锁通信。 可以用版本扫描(\fB\-sV\fR)帮助区分真正的开放端口和被过滤的端口。
.sp
UDP扫描的巨大挑战是怎样使它更快速。 开放的和被过滤的端口很少响应让Nmap超时然后再探测以防探测帧或者 响应丢失。关闭的端口常常是更大的问题。 它们一般发回一个ICMP端口无法到达错误。但是不像关闭的TCP端口响应SYN或者Connect 扫描所发送的RST报文许多主机在默认情况下限制ICMP端口不可到达消息。 Linux和Solaris对此特别严格。例如 Linux 2\.4\.20内核限制一秒钟只发送一条目标不可到达消息 (见\fInet/ipv4/icmp。c\fR)。
UDP扫描的巨大挑战是怎样使它更快速。 开放的和被过滤的端口很少响应让Nmap超时然后再探测以防探测帧或者 响应丢失。关闭的端口常常是更大的问题。 它们一般发回一个ICMP端口无法到达错误。但是不像关闭的TCP端口响应SYN或者Connect 扫描所发送的RST报文许多主机在默认情况下限制ICMP端口不可到达消息。 Linux和Solaris对此特别严格。例如 Linux 2\&.4\&.20内核限制一秒钟只发送一条目标不可到达消息 (见net/ipv4/icmp。c)。
.sp
Nmap探测速率限制并相应地减慢来避免用那些目标机会丢弃的无用报文来阻塞 网络。不幸的是Linux式的一秒钟一个报文的限制使65,536个端口的扫描要花 18小时以上。加速UDP扫描的方法包括并发扫描更多的主机先只对主要端口进行快速 扫描,从防火墙后面扫描,使用\fB\-\-host\-timeout\fR跳过慢速的 主机。
.RE
@@ -420,9 +436,9 @@ Nmap探测速率限制并相应地减慢来避免用那些目标机会丢弃的
.RS 4
这三种扫描类型 (甚至用下一节描述的
\fB\-\-scanflags\fR
选项的更多类型) 在\fITCP RFC\fR\&[6]
选项的更多类型) 在\m[blue]\fBTCP RFC\fR\m[]\&\s-2\u[6]\d\s+2
中发掘了一个微妙的方法来区分open(开放的)和
closed(关闭的)端口。第65页说\(lq如果 [目标]端口状态是关闭的\.\.\.\. 进入的不含RST的报文导致一个RST响应。\(rq
closed(关闭的)端口。第65页说\(lq如果 [目标]端口状态是关闭的\&.\&.\&.\&. 进入的不含RST的报文导致一个RST响应。\(rq
接下来的一页 讨论不设置SYNRST或者ACK位的报文发送到开放端口:
\(lq理论上,这不应该发生,如果您确实收到了,丢弃该报文,返回。 \(rq
.sp
@@ -498,7 +514,7 @@ open|filtered。 除了使用您指定的TCP标记位Nmap会和基本扫描
.PP
\fB\-sI <zombie host[:probeport]>\fR (Idlescan)
.RS 4
这种高级的扫描方法允许对目标进行真正的TCP端口盲扫描 (意味着没有报文从您的真实IP地址发送到目标)。相反side\-channel攻击 利用zombie主机上已知的IP分段ID序列生成算法来窥探目标上开放端口的信息。 IDS系统将显示扫描来自您指定的zombie机(必须运行并且符合一定的标准)。 这种奇妙的扫描类型太复杂了,不能在此完全描述,所以我写一篇非正式的论文, 发布在\fI\%http://nmap.org/book/idlescan。html\fR
这种高级的扫描方法允许对目标进行真正的TCP端口盲扫描 (意味着没有报文从您的真实IP地址发送到目标)。相反side\-channel攻击 利用zombie主机上已知的IP分段ID序列生成算法来窥探目标上开放端口的信息。 IDS系统将显示扫描来自您指定的zombie机(必须运行并且符合一定的标准)。 这种奇妙的扫描类型太复杂了,不能在此完全描述,所以我写一篇非正式的论文, 发布在\m[blue]\fB\%http://nmap.org/book/idlescan。html\fR\m[]
.sp
除了极端隐蔽(由于它不从真实IP地址发送任何报文) 该扫描类型可以建立机器间的基于IP的信任关系。 端口列表\fI从zombie 主机的角度。\fR显示开放的端口。 因此您可以尝试用您认为(通过路由器/包过滤规则)可能被信任的 zombies扫描目标。
.sp
@@ -523,7 +539,7 @@ open
.PP
\fB\-b <ftp relay host>\fR (FTP弹跳扫描)
.RS 4
FTP协议的一个有趣特征(\fIRFC 959\fR\&[7]) 是支持所谓代理ftp连接。它允许用户连接到一台FTP服务器然后要求文件送到一台第三方服务器。 这个特性在很多层次上被滥用所以许多服务器已经停止支持它了。其中一种就是导致FTP服务器对其它主机端口扫描。 只要请求FTP服务器轮流发送一个文件到目标主机上的所感兴趣的端口。 错误消息会描述端口是开放还是关闭的。 这是绕过防火墙的好方法因为FTP服务器常常被置于可以访问比Web主机更多其它内部主机的位置。 Nmap用\fB\-b\fR选项支持ftp弹跳扫描。参数格式是
FTP协议的一个有趣特征(\m[blue]\fBRFC 959\fR\m[]\&\s-2\u[7]\d\s+2) 是支持所谓代理ftp连接。它允许用户连接到一台FTP服务器然后要求文件送到一台第三方服务器。 这个特性在很多层次上被滥用所以许多服务器已经停止支持它了。其中一种就是导致FTP服务器对其它主机端口扫描。 只要请求FTP服务器轮流发送一个文件到目标主机上的所感兴趣的端口。 错误消息会描述端口是开放还是关闭的。 这是绕过防火墙的好方法因为FTP服务器常常被置于可以访问比Web主机更多其它内部主机的位置。 Nmap用\fB\-b\fR选项支持ftp弹跳扫描。参数格式是
\fIusername\fR:\fIpassword\fR@\fIserver\fR:\fIport\fR
\fIServer\fR
是某个脆弱的FTP服务器的名字或者IP地址。 您也许可以省略\fIusername\fR:\fIpassword\fR 如果服务器上开放了匿名用户(user:anonymous
@@ -533,7 +549,7 @@ password:\-wwwuser@)。 端口号(以及前面的冒号) 也可以省略,如
.RE
.SH "端口说明和扫描顺序"
.PP
除了所有前面讨论的扫描方法, Nmap提供选项说明那些端口被扫描以及扫描是随机还是顺序进行。 默认情况下Nmap用指定的协议对端口1到1024以及\fInmap\-services\fR
除了所有前面讨论的扫描方法, Nmap提供选项说明那些端口被扫描以及扫描是随机还是顺序进行。 默认情况下Nmap用指定的协议对端口1到1024以及nmap\-services
文件中列出的更高的端口在扫描。
.PP
\fB\-p <port ranges>\fR (只扫描指定的端口)
@@ -553,8 +569,8 @@ password:\-wwwuser@)。 端口号(以及前面的冒号) 也可以省略,如
.PP
\fB\-F\fR (快速 (有限的端口) 扫描)
.RS 4
在nmap的\fInmap\-services\fR
文件中(对于\fB\-sO\fR,是协议文件)指定您想要扫描的端口。 这比扫描所有65535个端口快得多。 因为该列表包含如此多的TCP端口(1200多)这和默认的TCP扫描 scan (大约1600个端口)速度差别不是很大。如果您用\fB\-\-datadir\fR选项指定您自己的 小小的\fInmap\-services\fR文件 ,差别会很惊人。
在nmap的nmap\-services
文件中(对于\fB\-sO\fR,是协议文件)指定您想要扫描的端口。 这比扫描所有65535个端口快得多。 因为该列表包含如此多的TCP端口(1200多)这和默认的TCP扫描 scan (大约1600个端口)速度差别不是很大。如果您用\fB\-\-datadir\fR选项指定您自己的 小小的nmap\-services文件 ,差别会很惊人。
.RE
.PP
\fB\-r\fR (不要按随机顺序扫描端口)
@@ -564,17 +580,17 @@ password:\-wwwuser@)。 端口号(以及前面的冒号) 也可以省略,如
.SH "服务和版本探测"
.PP
把Nmap指向一个远程机器它可能告诉您 端口25/tcp80/tcp和53/udp是开放的。使用包含大约2,200个著名的服务的
\fInmap\-services\fR数据库, Nmap可以报告那些端口可能分别对应于一个邮件服务器 (SMTP)web服务器(HTTP),和域名服务器(DNS)。 这种查询通常是正确的 \-\- 事实上绝大多数在TCP端口25监听的守护进程是邮件 服务器。然而,您不应该把赌注押在这上面! 人们完全可以在一些奇怪的端口上运行服务。
nmap\-services数据库 Nmap可以报告那些端口可能分别对应于一个邮件服务器 (SMTP)web服务器(HTTP),和域名服务器(DNS)。 这种查询通常是正确的 \-\- 事实上绝大多数在TCP端口25监听的守护进程是邮件 服务器。然而,您不应该把赌注押在这上面! 人们完全可以在一些奇怪的端口上运行服务。
.PP
即使Nmap是对的假设运行服务的确实是 SMTPHTTP和DNS那也不是特别多的信息。 当为您的公司或者客户作安全评估(或者甚至简单的网络明细清单)时, 您确实想知道正在运行什么邮件和域名服务器以及它们的版本。 有一个精确的版本号对了解服务器有什么漏洞有巨大帮助。 版本探测可以帮您获得该信息。
.PP
在用某种其它类型的扫描方法发现TCP 和/或者UDP端口后 版本探测会询问这些端口,确定到底什么服务正在运行。
\fInmap\-service\-probes\fR
nmap\-service\-probes
数据库包含查询不同服务的探测报文 和解析识别响应的匹配表达式。 Nmap试图确定服务协议 (如 ftpsshtelnethttp),应用程序名(如ISC BindApache httpdSolaris telnetd),版本号, 主机名,设备类型(如 打印机,路由器),操作系统家族 (如WindowsLinux)以及其它的细节,如 如是否可以连接X serverSSH协议版本 或者KaZaA用户名)。当然,并非所有服务都提供所有这些信息。 如果Nmap被编译成支持OpenSSL 它将连接到SSL服务器推测什么服务在加密层后面监听。 当发现RPC服务时 Nmap RPC grinder (\fB\-sR\fR)会自动被用于确定RPC程序和它的版本号。 如果在扫描某个UDP端口后仍然无法确定该端口是开放的还是被过滤的那么该端口状态就 被标记为open|filtered。 版本探测将试图从这些端口引发一个响应(就像它对开放端口做的一样) 如果成功,就把状态改为开放。
open|filtered
TCP端口用同样的方法对待。 注意Nmap
\fB\-A\fR选项在其它情况下打开版本探测。 有一篇关于版本探测的原理,使用和定制的文章在
\fI\%http://www.insecure.org/nmap/vscan/\fR
\m[blue]\fB\%http://www.insecure.org/nmap/vscan/\fR\m[]
.PP
当Nmap从某个服务收到响应但不能在数据库中找到匹配时 它就打印一个特殊的fingerprint和一个URL给您提交如果您确实知道什么服务运行在端口。 请花两分钟提交您的发现,让每个人受益。由于这些提交, Nmap有350种以上协议如smtpftphttp等的大约3000条模式匹配。
.PP
@@ -587,13 +603,13 @@ TCP端口用同样的方法对待。 注意Nmap
.PP
\fB\-\-allports\fR (不为版本探测排除任何端口)
.RS 4
默认情况下Nmap版本探测会跳过9100 TCP端口因为一些打印机简单地打印送到该端口的 任何数据这回导致数十页HTTP get请求二进制 SSL会话请求等等被打印出来。这一行为可以通过修改或删除\fInmap\-service\-probes\fR
默认情况下Nmap版本探测会跳过9100 TCP端口因为一些打印机简单地打印送到该端口的 任何数据这回导致数十页HTTP get请求二进制 SSL会话请求等等被打印出来。这一行为可以通过修改或删除nmap\-service\-probes
中的Exclude指示符改变 您也可以不理会任何Exclude指示符指定\fB\-\-allports\fR扫描所有端口
.RE
.PP
\fB\-\-version\-intensity <intensity>\fR (设置 版本扫描强度)
.RS 4
当进行版本扫描(\fB\-sV\fR)时nmap发送一系列探测报文 每个报文都被赋予一个1到9之间的值。 被赋予较低值的探测报文对大范围的常见服务有效,而被赋予较高值的报文 一般没什么用。强度水平说明了应该使用哪些探测报文。数值越高, 服务越有可能被正确识别。 然而高强度扫描花更多时间。强度值必须在0和9之间。 默认是7。当探测报文通过\fInmap\-service\-probes\fR
当进行版本扫描(\fB\-sV\fR)时nmap发送一系列探测报文 每个报文都被赋予一个1到9之间的值。 被赋予较低值的探测报文对大范围的常见服务有效,而被赋予较高值的报文 一般没什么用。强度水平说明了应该使用哪些探测报文。数值越高, 服务越有可能被正确识别。 然而高强度扫描花更多时间。强度值必须在0和9之间。 默认是7。当探测报文通过nmap\-service\-probes
ports指示符 注册到目标端口时无论什么强度水平探测报文都会被尝试。这保证了DNS 探测将永远在任何开放的53端口尝试 SSL探测将在443端口尝试等等。
.RE
.PP
@@ -619,14 +635,14 @@ ports指示符 注册到目标端口时,无论什么强度水平,探测报
.RE
.SH "操作系统探测"
.PP
Nmap最著名的功能之一是用TCP/IP协议栈fingerprinting进行远程操作系统探测。 Nmap发送一系列TCP和UDP报文到远程主机检查响应中的每一个比特。 在进行一打测试如TCP ISN采样TCP选项支持和排序IPID采样和初始窗口大小检查之后 Nmap把结果和数据库\fInmap\-os\-fingerprints\fR中超过 1500个已知的操作系统的fingerprints进行比较如果有匹配就打印出操作系统的详细信息。 每个fingerprint包括一个自由格式的关于OS的描述文本 和一个分类信息,它提供供应商名称(如Sun),下面的操作系统(如Solaris)OS版本(如10) 和设备类型(通用设备路由器switch游戏控制台 等)。
Nmap最著名的功能之一是用TCP/IP协议栈fingerprinting进行远程操作系统探测。 Nmap发送一系列TCP和UDP报文到远程主机检查响应中的每一个比特。 在进行一打测试如TCP ISN采样TCP选项支持和排序IPID采样和初始窗口大小检查之后 Nmap把结果和数据库nmap\-os\-fingerprints中超过 1500个已知的操作系统的fingerprints进行比较如果有匹配就打印出操作系统的详细信息。 每个fingerprint包括一个自由格式的关于OS的描述文本 和一个分类信息,它提供供应商名称(如Sun),下面的操作系统(如Solaris)OS版本(如10) 和设备类型(通用设备路由器switch游戏控制台 等)。
.PP
如果Nmap不能猜出操作系统并且有些好的已知条件(如 至少发现了一个开放端口和一个关闭端口)Nmap会提供一个 URL如果您确知运行的操作系统您可以把fingerprint提交到那个URL。 这样您就扩大了Nmap的操作系统知识库从而让每个Nmap用户都受益。
.PP
操作系统检测可以进行其它一些测试,这些测试可以利用处理 过程中收集到的信息。例如运行时间检测使用TCP时间戳选项(RFC 1323) 来估计主机上次重启的时间,这仅适用于提供这类信息的主机。另一种 是TCP序列号预测分类用于测试针对远程主机建立一个伪造的TCP连接 的可能难度。这对于利用基于源IP地址的可信关系(rlogin防火墙过滤等) 或者隐含源地址的攻击非常重要。这一类哄骗攻击现在很少见,但一些 主机仍然存在这方面的漏洞。实际的难度值基于统计采样,因此可能会有 一些波动。通常采用英国的分类较好,如\(lqworthy challenge\(rq或者
\(lqtrivial joke\(rq。在详细模式(\fB\-v\fR)下只以 普通的方式输出,如果同时使用\fB\-O\fR还报告IPID序列产生号。 很多主机的序列号是\(lq增加\(rq类别即在每个发送包的IP头中 增加ID域值 这对一些先进的信息收集和哄骗攻击来说是个漏洞。
.PP
\fI\%http://www.insecure.org/nmap/osdetect/\fR
\m[blue]\fB\%http://www.insecure.org/nmap/osdetect/\fR\m[]
文档使用多种语言描述了版本检测的方式、使用和定制。
.PP
采用下列选项启用和控制操作系统检测:
@@ -714,7 +730,7 @@ Nmap使用一个运行超时值来确定等待探测报文响应的时间
.sp
虽然\fB\-T0\fR\fB\-T1\fR选项可能有助于避免IDS告警但 在进行上千个主机或端口扫描时,会显著增加时间。对于这种长时间的扫描,宁可设定确切的时间 值,而不要去依赖封装的\fB\-T0\fR\fB\-T1\fR选项。
.sp
\fBT0\fR选项的主要影响是对于连续扫描,在一个时间只能扫描一个端口, 每个探测报文的发送间隔为5分钟。\fBT1\fR\fBT2\fR选项比较类似, 探测报文间隔分别为15秒和0\.4秒。\fBT3\fR是Nmap的默认选项包含了并行扫描。
\fBT0\fR选项的主要影响是对于连续扫描,在一个时间只能扫描一个端口, 每个探测报文的发送间隔为5分钟。\fBT1\fR\fBT2\fR选项比较类似, 探测报文间隔分别为15秒和0\&.4秒。\fBT3\fR是Nmap的默认选项包含了并行扫描。
\fBT4\fR选项与
\fB\-\-max\-rtt\-timeout 1250 \-\-initial\-rtt\-timeout 500\fR
等价最大TCP扫描延迟为10ms。\fBT5\fR等价于
@@ -737,7 +753,7 @@ Nmap不提供检测和破坏防火墙及IDS系统的魔弹(或Nmap选项),它
\fB\-f\fR选项要求扫描时(包挺ping扫描)使用 小的IP包分段。其思路是将TCP头分段在几个包中使得包过滤器、 IDS以及其它工具的检测更加困难。必须小心使用这个选项有些系 统在处理这些小包时存在问题例如旧的网络嗅探器Sniffit在接收 到第一个分段时会立刻出现分段错误。该选项使用一次Nmap在IP 头后将包分成8个字节或更小。因此一个20字节的TCP头会被分成3个 包其中2个包分别有TCP头的8个字节另1个包有TCP头的剩下4个字 节。当然每个包都有一个IP头。再次使用\fB\-f\fR可使用 16字节的分段(减少分段数量)。使用\fB\-\-mtu\fR选项可 以自定义偏移的大小,使用时不需要\fB\-f\fR,偏移量必须 是8的倍数。包过滤器和防火墙对所有的IP分段排队如Linux核心中的 CONFIG_IP_ALWAYS_DEFRAG配置项分段包不会直接使用。一些网络无法 承受这样所带来的性能冲击,会将这个配置禁止。其它禁止的原因有分段 包会通过不同的路由进入网络。一些源系统在内核中对发送的报文进行 分段使用iptables连接跟踪模块的Linux就是一个例子。当使用类似Ethereal 的嗅探器时,扫描必须保证发送的报文要分段。如果主机操作系统会产 生问题,尝试使用\fB\-\-send\-eth\fR选项以避开IP层而直接 发送原始的以太网帧。
.RE
.PP
\fB\-D <decoy1 [decoy2][ME]\.\.\.>\fR (使用诱饵隐蔽扫描)
\fB\-D <decoy1 [decoy2][ME]\&.\&.\&.>\fR (使用诱饵隐蔽扫描)
.RS 4
为使诱饵扫描起作用,需要使远程主机认为是诱饵在扫描目标网络。 IDS可能会报个某个IP的5\-10个端口扫描但并不知道哪个IP在扫描以及 哪些不是诱饵。但这种方式可以通过路由跟踪、响应丢弃以及其它主动 机制在解决。这是一种常用的隐藏自身IP地址的有效技术。
.sp
@@ -770,7 +786,7 @@ ME选项说明。如果在第6个位置或 更后的位置使用ME选项
.sp
对这些问题有安全解决方案,通常是应用级代理或协议分析防火墙模块。 但也存在一些不安全的方案。注意到DNS响应来自于53端口FTP连接 来自于20端口很多管理员会掉入一个陷阱即允许来自于这些端口的数据进入 网络。他们认为这些端口里不会有值得注意的攻击和漏洞利用。此外,管理员 或许认为这是一个短期的措施,直至他们采取更安全的方案。但他们忽视了安全的 升级。
.sp
不仅仅是工作量过多的网络管理员掉入这种陷阱,很多产品本身也会有这类 不安全的隐患甚至是微软的产品。Windows 2000和Windows XP中包含的IPsec过滤 器也包含了一些隐含规则允许所有来自88端口(Kerberos)的TCP和UDP数据流。另 一个常见的例子是Zone Alarm个人防火墙到2\.1\.25版本仍然允许源端口53(DNS)或 67(DHCP)的UDP包进入。
不仅仅是工作量过多的网络管理员掉入这种陷阱,很多产品本身也会有这类 不安全的隐患甚至是微软的产品。Windows 2000和Windows XP中包含的IPsec过滤 器也包含了一些隐含规则允许所有来自88端口(Kerberos)的TCP和UDP数据流。另 一个常见的例子是Zone Alarm个人防火墙到2\&.1\&.25版本仍然允许源端口53(DNS)或 67(DHCP)的UDP包进入。
.sp
Nmap提供了\fB\-g\fR\fB\-\-source\-port\fR选项(它们是 等价的)用于利用上述弱点。只需要提供一个端口号Nmap就可以从这些 端口发送数据。为使特定的操作系统正常工作Nmap必须使用不同的端口号。 DNS请求会忽略\fB\-\-source\-port\fR选项这是因为Nmap依靠系 统库来处理。大部分TCP扫描包括SYN扫描可以完全支持这些选项UDP扫 描同样如此。
.RE
@@ -787,16 +803,16 @@ Nmap提供了\fB\-g\fR和\fB\-\-source\-port\fR选项(它们是 等价的),用
.PP
\fB\-\-randomize\-hosts\fR (对目标主机的顺序随机排列)
.RS 4
告诉Nmap在扫描主机前对每个组中的主机随机排列最多可达 8096个主机。这会使得扫描针对不同的网络监控系统来说变得不是很 明显,特别是配合值较小的时间选项时更有效。如果需要对一个较大 的组进行随机排列,需要增大\fInmap\.h\fR文件中 PING_GROUP_SZ的值并重新编译。另一种方法是使用列表扫描 (\fB\-sL \-n \-oN \fR\fB\fIfilename\fR\fR)产生目标IP的列表 使用Perl脚本进行随机化然后使用\fB\-iL\fR提供给Nmap。
告诉Nmap在扫描主机前对每个组中的主机随机排列最多可达 8096个主机。这会使得扫描针对不同的网络监控系统来说变得不是很 明显,特别是配合值较小的时间选项时更有效。如果需要对一个较大 的组进行随机排列需要增大nmap\&.h文件中 PING_GROUP_SZ的值并重新编译。另一种方法是使用列表扫描 (\fB\-sL \-n \-oN \fR\fB\fIfilename\fR\fR)产生目标IP的列表 使用Perl脚本进行随机化然后使用\fB\-iL\fR提供给Nmap。
.RE
.PP
\fB\-\-spoof\-mac <mac addressprefixor vendor name>\fR (MAC地址哄骗)
.RS 4
要求Nmap在发送原以太网帧时使用指定的MAC地址这个选项隐含了
\fB\-\-send\-eth\fR选项以保证Nmap真正发送以太网包。MAC地址有几 种格式。如果简单地使用字符串\(lq0\(rqNmap选择一个完全随机的MAC 地址。如果给定的字符品是一个16进制偶数(使用:分隔)Nmap将使用这个MAC地址。 如果是小于12的16进制数字Nmap会随机填充剩下的6个字节。如果参数不是0或16进 制字符串Nmap将通过\fInmap\-mac\-prefixes\fR查找 厂商的名称(大小写区分)如果找到匹配Nmap将使用厂商的OUI(3字节前缀),然后 随机填充剩余的3个节字。正确的\fB\-\-spoof\-mac\fR参数有,
\fB\-\-send\-eth\fR选项以保证Nmap真正发送以太网包。MAC地址有几 种格式。如果简单地使用字符串\(lq0\(rqNmap选择一个完全随机的MAC 地址。如果给定的字符品是一个16进制偶数(使用:分隔)Nmap将使用这个MAC地址。 如果是小于12的16进制数字Nmap会随机填充剩下的6个字节。如果参数不是0或16进 制字符串Nmap将通过nmap\-mac\-prefixes查找 厂商的名称(大小写区分)如果找到匹配Nmap将使用厂商的OUI(3字节前缀),然后 随机填充剩余的3个节字。正确的\fB\-\-spoof\-mac\fR参数有,
Apple
001:02:03:04:05:06
deadbeefcafe0020F2 和Cisco\.
deadbeefcafe0020F2 和Cisco\&.
.RE
.SH "输出"
.PP
@@ -812,14 +828,14 @@ XML输出是最重要的输出类型可被转换成HTML对于程序处理
另两种输出类型比较简单grepable output格式在一行中包含目标主机最多的信息sCRiPt KiDDi3 0utPUt
格式,用于考虑自己的用户 |<\-r4d。
.PP
交互式输出是默认方式,没有相应的命令行选项,其它四种格式选项 使用相同的语法,采用一个参数,即存放结果的文件名。多种格式可同时 使用,但一种格式只能使用一次。例如,在标准输出用于查看的同时,可将结 果保存到XML文件用于程序分析这时可以使用选项\fB\-oX myscan\.xml \-oN myscan\.nmap\fR。 为便于描述的简化本章使用类似于myscan\.xml的简单文件名 建议采用更具有描述性的文件名。文件名的选择与个人喜好有关,建议增加 扫描日期以及一到两个单词来描述,并放置于一个目录中。
交互式输出是默认方式,没有相应的命令行选项,其它四种格式选项 使用相同的语法,采用一个参数,即存放结果的文件名。多种格式可同时 使用,但一种格式只能使用一次。例如,在标准输出用于查看的同时,可将结 果保存到XML文件用于程序分析这时可以使用选项\fB\-oX myscan\&.xml \-oN myscan\&.nmap\fR。 为便于描述的简化本章使用类似于myscan\&.xml的简单文件名 建议采用更具有描述性的文件名。文件名的选择与个人喜好有关,建议增加 扫描日期以及一到两个单词来描述,并放置于一个目录中。
.PP
在将结果输出到文件的同时Nmap仍将结果发送给标准输出。例如 命令\fBnmap \-oX myscan\.xml target\fR将 输出XML至\fImyscan\.xml\fR并在stdout 上打印相同的交互式结果,而此时\fB\-oX\fR选项没有采用。可以 使用连字符作为选项来改变这使得Nmap禁止交互式输出而是将结果打印到 所指定的标准输出流中。因此,命令\fBnmap \-oX \- target\fR只 输出XML至标准输出stdout。严重错误仍然是输出到标准错误流stderr中。
在将结果输出到文件的同时Nmap仍将结果发送给标准输出。例如 命令\fBnmap \-oX myscan\&.xml target\fR将 输出XML至myscan\&.xml并在stdout 上打印相同的交互式结果,而此时\fB\-oX\fR选项没有采用。可以 使用连字符作为选项来改变这使得Nmap禁止交互式输出而是将结果打印到 所指定的标准输出流中。因此,命令\fBnmap \-oX \- target\fR只 输出XML至标准输出stdout。严重错误仍然是输出到标准错误流stderr中。
.PP
与其它Nmap参数不同日志文件选项的空格(如\fB\-oX\fR)和 文件名或连字符是必需的。如果省略了标记,例如\fB\-oG\-\fR
\fB\-oXscan\.xml\fRNmap的向后兼容特点将建立
\fI标准格式\fR的输出文件,相应的文件名为\fIG\-\fR
\fIXscan\.xml\fR
\fB\-oXscan\&.xml\fRNmap的向后兼容特点将建立
\fI标准格式\fR的输出文件,相应的文件名为G\-
Xscan\&.xml
.PP
Nmap还提供了控制扫描细节以及输出文件的添加或覆盖的选项这些选项 如下所述。
.PP
@@ -834,12 +850,12 @@ Nmap还提供了控制扫描细节以及输出文件的添加或覆盖的选项
\fB\-oX <filespec>\fR (XML输出)
.RS 4
要求XML输出直接写入指定 的文件。Nmap包含了一个文档类型定义(DTD)使XML解析器有效地 进行XML输出。这主要是为了程序应用同时也可以协助人工解释 Nmap的XML输出。DTD定义了合法的格式元素列举可使用的属性和 值。最新的版本可在
\fI\%http://www.insecure.org/nmap/data/nmap.dtd\fR获取。
\m[blue]\fB\%http://www.insecure.org/nmap/data/nmap.dtd\fR\m[]获取。
.sp
XML提供了可供软件解析的稳定格式输出主要的计算机 语言都提供了免费的XML解析器如C/C++PerlPython和Java。 针对这些语言有一些捆绑代码用于处理Nmap的输出和特定的执行程序。 例如perl CPAN中的\fINmap::Scanner\fR\&[8]
\fINmap::Parser\fR\&[9]。 对几乎所有与Nmap有接口的主要应用来说XML是首选的格式。
XML提供了可供软件解析的稳定格式输出主要的计算机 语言都提供了免费的XML解析器如C/C++PerlPython和Java。 针对这些语言有一些捆绑代码用于处理Nmap的输出和特定的执行程序。 例如perl CPAN中的\m[blue]\fBNmap::Scanner\fR\m[]\&\s-2\u[8]\d\s+2
\m[blue]\fBNmap::Parser\fR\m[]\&\s-2\u[9]\d\s+2。 对几乎所有与Nmap有接口的主要应用来说XML是首选的格式。
.sp
XML输出引用了一个XSL样式表用于格式化输出结果类似于 HTML。最方便的方法是将XML输出加载到一个Web浏览器如Firefox 或IE。由于\fInmap\.xsl\fR文件的绝对 路径因此通常只能在运行了Nmap的机器上工作(或类似配置的机器)。 类似于任何支持Web机器的HTML文件\fB\-\-stylesheet\fR
XML输出引用了一个XSL样式表用于格式化输出结果类似于 HTML。最方便的方法是将XML输出加载到一个Web浏览器如Firefox 或IE。由于nmap\&.xsl文件的绝对 路径因此通常只能在运行了Nmap的机器上工作(或类似配置的机器)。 类似于任何支持Web机器的HTML文件\fB\-\-stylesheet\fR
选项可用于建立可移植的XML文件。
.RE
.PP
@@ -865,14 +881,14 @@ IPID和状态。
拥有者,服务,
SunRPCinfo和版本信息。
.sp
对于XML输出本手册无法列举所有的格式有关Nmap Grep输出的更详细信息可 查阅\fI\%http://www.unspecific.com/nmap-oG-output\fR
对于XML输出本手册无法列举所有的格式有关Nmap Grep输出的更详细信息可 查阅\m[blue]\fB\%http://www.unspecific.com/nmap-oG-output\fR\m[]
.RE
.PP
\fB\-oA <basename>\fR (输出至所有格式)
.RS 4
为使用方便,利用\fB\-oA\fR\fB\fIbasename\fR\fR选项 可将扫描结果以标准格式、XML格式和Grep格式一次性输出。分别存放在
\fIbasename\fR\.nmap\fIbasename\fR\.xml和
\fIbasename\fR\.gnmap文件中。也可以在文件名前 指定目录名如在UNIX中使用\fI~/nmaplogs/foocorp/\fR 在Window中使用\fIc:\ehacking\esco\fR
\fIbasename\fR\&.nmap\fIbasename\fR\&.xml和
\fIbasename\fR\&.gnmap文件中。也可以在文件名前 指定目录名如在UNIX中使用~/nmaplogs/foocorp/ 在Window中使用c:\ehacking\esco
on Windows。
.RE
.PP
@@ -919,8 +935,8 @@ on Windows。
.PP
\fB\-\-stylesheet <path or URL>\fR (设置XSL样式表转换XML输出)
.RS 4
Nmap提从了XSL样式表\fInmap\.xsl\fR,用于查看 或转换XML输出至HTML。XML输出包含了一个xml\-stylesheet 直接指向\fInmap\.xml\fR文件, 该文件由Nmap安装(或位于Windows当前工作目录)。在Web浏览器 中打开Nmap的XML输出时将会在文件系统中寻找\fInmap\.xsl\fR文件, 并使用它输出结果。如果希望使用不同的样式表,将它作为
\fB\-\-stylesheet\fR的参数,必段指明完整的路 径或URL常见的调用方式是\fB\-\-stylesheet http://www\.insecure\.org/nmap/data/nmap\.xsl\fR。 这告诉浏览器从Insecire\.Org中加载最新的样式表。这使得 没安装Nmap(和\fInmap\.xsl\fR) 的机器中可以方便地查看结果。因此URL更方便使用本地文件系统 的nmap\.xsl用于默认方式。
Nmap提从了XSL样式表nmap\&.xsl,用于查看 或转换XML输出至HTML。XML输出包含了一个xml\-stylesheet 直接指向nmap\&.xml文件, 该文件由Nmap安装(或位于Windows当前工作目录)。在Web浏览器 中打开Nmap的XML输出时将会在文件系统中寻找nmap\&.xsl文件, 并使用它输出结果。如果希望使用不同的样式表,将它作为
\fB\-\-stylesheet\fR的参数,必段指明完整的路 径或URL常见的调用方式是\fB\-\-stylesheet http://www\&.insecure\&.org/nmap/data/nmap\&.xsl\fR。 这告诉浏览器从Insecire\&.Org中加载最新的样式表。这使得 没安装Nmap(和nmap\&.xsl) 的机器中可以方便地查看结果。因此URL更方便使用本地文件系统 的nmap\&.xsl用于默认方式。
.RE
.PP
\fB\-\-no_stylesheet\fR (忽略XML声明的XSL样式表)
@@ -937,7 +953,7 @@ xml\-stylesheet指示被忽略。
从2002年起Nmap提供对IPv6的一些主要特征的支持。ping扫描(TCP\-only)、 连接扫描以及版本检测都支持IPv6。除增加\fB\-6\fR选项外, 其它命令语法相同。当然必须使用IPv6地址来替换主机名
3ffe:7501:4819:2000:210:f3ff:fe03:14d0。 除\(lq所关注的端口\(rq行的地址部分为IPv6地址。
.sp
IPv6目前未在全球广泛采用目前在一些国家(亚洲)应用较多, 一些高级操作系统支持IPv6。使用Nmap的IPv6功能扫描的源和目 的都需要配置IPv6。如果ISP(大部分)不分配IPv6地址Nmap可以采用 免费的隧道代理。一种较好的选择是BT Exact位于\fI\%https://tb.ipv6.btexact.com/\fR。 此外还有Hurricane Electric位于\fI\%http://ipv6tb.he.net/\fR。6to4隧道是 另一种常用的免费方法。
IPv6目前未在全球广泛采用目前在一些国家(亚洲)应用较多, 一些高级操作系统支持IPv6。使用Nmap的IPv6功能扫描的源和目 的都需要配置IPv6。如果ISP(大部分)不分配IPv6地址Nmap可以采用 免费的隧道代理。一种较好的选择是BT Exact位于\m[blue]\fB\%https://tb.ipv6.btexact.com/\fR\m[]。 此外还有Hurricane Electric位于\m[blue]\fB\%http://ipv6tb.he.net/\fR\m[]。6to4隧道是 另一种常用的免费方法。
.RE
.PP
\fB\-A\fR (激烈扫描模式选项)
@@ -948,14 +964,14 @@ IPv6目前未在全球广泛采用目前在一些国家(亚洲)应用较多
\fB\-\-datadir <directoryname>\fR (说明用户Nmap数据文件位置)
.RS 4
Nmap在运行时从文件中获得特殊的数据这些文件有
\fInmap\-service\-probes\fR
\fInmap\-services\fR
\fInmap\-protocols\fR
\fInmap\-rpc\fR
\fInmap\-mac\-prefixes\fR
\fInmap\-os\-fingerprints\fR。Nmap首先 在\fB\-\-datadir\fR选项说明的目录中查找这些文件。 未找到的文件将在BMAPDIR环境变量说明的目录中查找。 接下来是用于真正和有效UID的\fI~/\.nmap\fR
或Nmap可执行代码的位置(仅Win32);然后是是编译位置, 如\fI/usr/local/share/nmap\fR
\fI/usr/share/nmap\fR。 Nmap查找的最后一个位置是当前目录。
nmap\-service\-probes
nmap\-services
nmap\-protocols
nmap\-rpc
nmap\-mac\-prefixes和
nmap\-os\-fingerprints。Nmap首先 在\fB\-\-datadir\fR选项说明的目录中查找这些文件。 未找到的文件将在BMAPDIR环境变量说明的目录中查找。 接下来是用于真正和有效UID的~/\&.nmap
或Nmap可执行代码的位置(仅Win32);然后是是编译位置, 如/usr/local/share/nmap
或/usr/share/nmap。 Nmap查找的最后一个位置是当前目录。
.RE
.PP
\fB\-\-send\-eth\fR (使用原以太网帧发送)
@@ -991,7 +1007,7 @@ Nmap在运行时从文件中获得特殊的数据这些文件有
.RE
.SH "运行时的交互"
.PP
Nmap目前还不具有这个功能本节内容可能会增加或删除。
.\" Nmap目前还不具有这个功能本节内容可能会增加或删除。
.PP
在执行Nmap时所有的键盘敲击都被记录。这使得用户可以与 程序交互而不需要终止或重启。特定的键可改变选项,其它键会输出 一个有关扫描的状态消息。约定如下,\fI小写字母增加\fR
打印量,\fI大写字母减少\fR打印量。
@@ -1017,31 +1033,31 @@ Nmap目前还不具有这个功能本节内容可能会增加或删除。
.sp
Stats: 0:00:08 elapsed; 111 hosts completed (5 up) 5 undergoing Service Scan
.sp
Service scan Timing: About 28\.00% done; ETC: 16:18 (0:00:15 remaining)
Service scan Timing: About 28\&.00% done; ETC: 16:18 (0:00:15 remaining)
.RE
.SH "实例"
.PP
下面给出一些实例,简单的、复杂的到深奥的。为更具体,一 些例子使用了实际的IP地址和域名。在这些位置可以使用\fI你自己网络\fR
的地址/域名替换。注意,扫描其它网络不一定合法,一些网络管理员不愿看到 未申请过的扫描,会产生报怨。因此,先获得允许是最好的办法。
.PP
如果是为了测试scanme\.nmap\.org
允许被扫描。但仅允许使用Nmap扫描并禁止测试漏洞或进行DoS攻击。为 保证带宽对该主机的扫描每天不要超过12次。如果这个免费扫描服务被 滥用系统将崩溃而且Nmap将报告解析 指定的主机名/IP地址失败scanme\.nmap\.org。这些免 费扫描要求也适用于scanme2\.nmap\.org、
scanme3\.nmap\.org等等虽然这些 主机目前还不存在。
如果是为了测试scanme\&.nmap\&.org
允许被扫描。但仅允许使用Nmap扫描并禁止测试漏洞或进行DoS攻击。为 保证带宽对该主机的扫描每天不要超过12次。如果这个免费扫描服务被 滥用系统将崩溃而且Nmap将报告解析 指定的主机名/IP地址失败scanme\&.nmap\&.org。这些免 费扫描要求也适用于scanme2\&.nmap\&.org、
scanme3\&.nmap\&.org等等虽然这些 主机目前还不存在。
.PP
\fBnmap \-v scanme\.nmap\.org\fR
\fBnmap \-v scanme\&.nmap\&.org\fR
.PP
这个选项扫描主机scanme\.nmap\.org中 所有的保留TCP端口。选项\fB\-v\fR启用细节模式。
这个选项扫描主机scanme\&.nmap\&.org中 所有的保留TCP端口。选项\fB\-v\fR启用细节模式。
.PP
\fBnmap \-sS \-O scanme\.nmap\.org/24\fR
\fBnmap \-sS \-O scanme\&.nmap\&.org/24\fR
.PP
进行秘密SYN扫描对象为主机Saznme所在的\(lqC类\(rq网段 的255台主机。同时尝试确定每台工作主机的操作系统类型。因为进行SYN扫描 和操作系统检测,这个扫描需要有根权限。
.PP
\fBnmap \-sV \-p 22531101434564 198\.116\.0\-255\.1\-127\fR
\fBnmap \-sV \-p 22531101434564 198\&.116\&.0\-255\&.1\-127\fR
.PP
进行主机列举和TCP扫描对象为B类188\.116网段中255个8位子网。这 个测试用于确定系统是否运行了sshd、DNS、imapd或4564端口。如果这些端口 打开,将使用版本检测来确定哪种应用在运行。
进行主机列举和TCP扫描对象为B类188\&.116网段中255个8位子网。这 个测试用于确定系统是否运行了sshd、DNS、imapd或4564端口。如果这些端口 打开,将使用版本检测来确定哪种应用在运行。
.PP
\fBnmap \-v \-iR 100000 \-P0 \-p 80\fR
@@ -1049,88 +1065,123 @@ scanme3\.nmap\.org等等虽然这些 主机目前还不存在。
随机选择100000台主机扫描是否运行Web服务器(80端口)。由起始阶段 发送探测报文来确定主机是否工作非常浪费时间,而且只需探测主机的一个端口,因 此使用\fB\-P0\fR禁止对主机列表。
.PP
\fBnmap \-P0 \-p80 \-oX logs/pb\-port80scan\.xml \-oG logs/pb\-port80scan\.gnmap 216\.163\.128\.20/20\fR
\fBnmap \-P0 \-p80 \-oX logs/pb\-port80scan\&.xml \-oG logs/pb\-port80scan\&.gnmap 216\&.163\&.128\&.20/20\fR
.PP
扫描4096个IP地址查找Web服务器(不ping)将结果以Grep和XML格式保存。
.PP
\fBhost \-l company\.com | cut \-d \-f 4 | nmap \-v \-iL \-\fR
\fBhost \-l company\&.com | cut \-d \-f 4 | nmap \-v \-iL \-\fR
.PP
进行DNS区域传输以发现company\.com中的主机然后将IP地址提供给 Nmap。上述命令用于GNU/Linux \-\- 其它系统进行区域传输时有不同的命令。
进行DNS区域传输以发现company\&.com中的主机然后将IP地址提供给 Nmap。上述命令用于GNU/Linux \-\- 其它系统进行区域传输时有不同的命令。
.SH "BUGS"
.PP
和作者一样Nmap也不是完美的但可以通过发送Bug报告甚至编写 补丁使其更加完善。如果Nmap不能满足要求首先从\fI\%http://www.insecure.org/nmap/\fR
升级最新版本。如果总问题仍然存在,需要进行调查以确定问题是否 已经被解决。在\fI\%http://seclists.org/\fR尝试搜索出错消息或 浏览Nmap\-dev档案以及仔细阅读使用手册。如果问题还是不能解决发送 Bug报告至<nmap\-dev@insecure\.org>。在报告中包含所有 有关问题的信息以及所使用的Nmap版本、操作系统版本。问题报告以及 Nmap的使用问题发送给nmap\-dev@insecure\.org比直接发送给Gyodor能更好回答。
和作者一样Nmap也不是完美的但可以通过发送Bug报告甚至编写 补丁使其更加完善。如果Nmap不能满足要求首先从\m[blue]\fB\%http://www.insecure.org/nmap/\fR\m[]
升级最新版本。如果总问题仍然存在,需要进行调查以确定问题是否 已经被解决。在\m[blue]\fB\%http://seclists.org/\fR\m[]尝试搜索出错消息或 浏览Nmap\-dev档案以及仔细阅读使用手册。如果问题还是不能解决发送 Bug报告至nmap\-dev@insecure\&.org。在报告中包含所有 有关问题的信息以及所使用的Nmap版本、操作系统版本。问题报告以及 Nmap的使用问题发送给nmap\-dev@insecure\&.org比直接发送给Gyodor能更好回答。
.PP
解决Bug的代码补丁比Bug报告更受欢迎\fI\%http://www.insecure.org/nmap/data/HACKING\fR
解决Bug的代码补丁比Bug报告更受欢迎\m[blue]\fB\%http://www.insecure.org/nmap/data/HACKING\fR\m[]
可获得建立补丁文件的基本指令。补丁可发送给nmap\-dev(建议) 或直接发给Fyodor。
.SH "作者"
.PP
Fyodor
<fyodor@insecure\.org>
(\fI\%http://www.insecure.org\fR)
fyodor@insecure\&.org
(\m[blue]\fB\%http://www.insecure.org\fR\m[])
.PP
译者Fei Yang
<fyang1024@gmail\.com>, Lei Li
<lilei_721@6611\.org>
fyang1024@gmail\&.com, Lei Li
lilei_721@6611\&.org
.PP
近年来上百的人们为Nmap作出了极有价值的贡献详细信息参见 随Nmap一起发布的\fICHANGELOG\fR文件, 也可查看\fI\%http://www.insecure.org/nmap/nmap_changelog.html\fR
近年来上百的人们为Nmap作出了极有价值的贡献详细信息参见 随Nmap一起发布的CHANGELOG文件 也可查看\m[blue]\fB\%http://www.insecure.org/nmap/nmap_changelog.html\fR\m[]
.SH "法律事项(版权、许可证、担保(缺)、出口限制)"
.SS "Unofficial Translation Disclaimer / 非官方翻译声明"
.PP
This is an unnofficial translation of the
\fINmap license details\fR\&[10]
into [Finnish]\. It was not written by Insecure\.Com LLC, and does not legally state the distribution terms for Nmap \-\- only the original English text does that\. However, we hope that this translation helps [Finish] speakers understand the Nmap license better\.
\m[blue]\fBNmap license details\fR\m[]\&\s-2\u[10]\d\s+2
into [Finnish]\&. It was not written by Insecure\&.Com LLC, and does not legally state the distribution terms for Nmap \-\- only the original English text does that\&. However, we hope that this translation helps [Finish] speakers understand the Nmap license better\&.
.PP
这是\fINmap许可证明细 \fR\&[10]的非官方的中文译本。它并非由Insecure\.Com LLC编写不是有法律效力的Nmap发布条款 只有原英文版具有此法律效力。然而我们希望该译本帮助中文用户更好地理解Nmap许可证。
这是\m[blue]\fBNmap许可证明细 \fR\m[]\&\s-2\u[10]\d\s+2的非官方的中文译本。它并非由Insecure\&.Com LLC编写不是有法律效力的Nmap发布条款 只有原英文版具有此法律效力。然而我们希望该译本帮助中文用户更好地理解Nmap许可证。
.PP
\fI\%http://www.insecure.org/nmap/\fR可获得Nmap的最新版本。
\m[blue]\fB\%http://www.insecure.org/nmap/\fR\m[]可获得Nmap的最新版本。
.PP
Nmap安全扫描器(C) 1996\-2005是Insecure\.Com LLC的产品。 Nmap也是 Insecure\.Com LLC的注册商标。这是一个免费软件按照免费软件联盟V2\.0的 GNU普通公共许可证的规定可以重新发布和/或修改。这保证用户在一定的条件 下可以使用、修改和重新发布此软件。如果需要将Nmap嵌入专用软件我们 会销售相应的许可证(联系
<sales@insecure\.com>)。很多安全 扫描器厂商已经获得了Nmap技术的许可证如主机发现、端口扫描、OS系统 检测以及服务/版本检测等技术。
Nmap安全扫描器(C) 1996\-2005是Insecure\&.Com LLC的产品。 Nmap也是 Insecure\&.Com LLC的注册商标。这是一个免费软件按照免费软件联盟V2\&.0的 GNU普通公共许可证的规定可以重新发布和/或修改。这保证用户在一定的条件 下可以使用、修改和重新发布此软件。如果需要将Nmap嵌入专用软件我们 会销售相应的许可证(联系
sales@insecure\&.com)。很多安全 扫描器厂商已经获得了Nmap技术的许可证如主机发现、端口扫描、OS系统 检测以及服务/版本检测等技术。
.PP
注意GPL对\(lq衍生工作\(rq有重要的限制,但未给出有关的详细 描述。为避免误解,我们认为如果某个应用进行以下工作时被认为是该许可证的
\(lq衍生工作\(rq
.sp
.RS 4
\h'-04'\(bu\h'+03'集成Nmap的源代码
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
集成Nmap的源代码
.RE
.sp
.RS 4
\h'-04'\(bu\h'+03'读取或包含Nmap拷贝权的数据文件
\fInmap\-os\-fingerprints\fR
\fInmap\-service\-probes\fR\.
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
读取或包含Nmap拷贝权的数据文件
nmap\-os\-fingerprints或
nmap\-service\-probes\&.
.RE
.sp
.RS 4
\h'-04'\(bu\h'+03'执行Nmap并解析结果(与之相反的是shell执行或执行菜单 应用仅仅显示原始Nmap输出则不是衍生工作。)
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
执行Nmap并解析结果(与之相反的是shell执行或执行菜单 应用仅仅显示原始Nmap输出则不是衍生工作。)
.RE
.sp
.RS 4
\h'-04'\(bu\h'+03'将Nmap集成/包含/组合至一个专用的可执行安装程序,如由 InstallShield生成的安装程序。
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
将Nmap集成/包含/组合至一个专用的可执行安装程序,如由 InstallShield生成的安装程序。
.RE
.sp
.RS 4
\h'-04'\(bu\h'+03'将Namp链接到进行上述工作的库或程序中。
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
将Namp链接到进行上述工作的库或程序中。
.RE
.PP
名词\(lqNmap\(rq包含了Nmap的任何部分以及衍生工作因此不仅限于上述 内容。上述内容使用了一些常见的例子来说明衍生工作。这些限制仅适 用于真正重新发布Nmap时。例如不禁止开发和销售Nmap的前端可以任意发布 但必须说明从\fI\%http://www.insecure.org/nmap/\fR下载Nmap。
名词\(lqNmap\(rq包含了Nmap的任何部分以及衍生工作因此不仅限于上述 内容。上述内容使用了一些常见的例子来说明衍生工作。这些限制仅适 用于真正重新发布Nmap时。例如不禁止开发和销售Nmap的前端可以任意发布 但必须说明从\m[blue]\fB\%http://www.insecure.org/nmap/\fR\m[]下载Nmap。
.PP
这些条款并不是在GPL之上增加限制只是为了明确说明与Nmap(有GPL许可证) 产品有关的\(lq衍生工作\(rq。这类似于Linus Torvalds对Linux内核模 块\(lq衍生工作\(rq的解释。我们的解释仅适用于Nmap \- 不适合其它 GPL产品。
.PP
如果对有GPL许可证限制的Nmap应用于非GPL工作有任何问题我们将提供 相关的帮助。如上述条款所述我们提供了可选的许可证以集成Nmap到专用应用和设备 这些合同已被销售给多个安全厂商,通常都包含了永久的许可证以及提供优先支 持、更新并资助可持续的Nmap技术开发。请发送邮件至<sales@insecure\.com>
如果对有GPL许可证限制的Nmap应用于非GPL工作有任何问题我们将提供 相关的帮助。如上述条款所述我们提供了可选的许可证以集成Nmap到专用应用和设备 这些合同已被销售给多个安全厂商,通常都包含了永久的许可证以及提供优先支 持、更新并资助可持续的Nmap技术开发。请发送邮件至sales@insecure\&.com
以获得更多信息。
.PP
作为GPL的一个特殊例外Insecure\.Com LLC授权许可链接该程序的代码 至任何版本的OpenSSL库这个库的发布符合等同于Copying\.OpenSSL文件中包含 的许可证它的发布同时包含了两个内容。除OpenSSL外在任何方面都必须遵 守GNU GPL。如果改变这个文件就可能超出该文件的版本但并不对此负责。
作为GPL的一个特殊例外Insecure\&.Com LLC授权许可链接该程序的代码 至任何版本的OpenSSL库这个库的发布符合等同于Copying\&.OpenSSL文件中包含 的许可证它的发布同时包含了两个内容。除OpenSSL外在任何方面都必须遵 守GNU GPL。如果改变这个文件就可能超出该文件的版本但并不对此负责。
.PP
如果收到书面的许可证协定或合同文件,与上述条款不同时,该可选的 许可证协定具有优先权。
.PP
Nmap软件提供源代码这是因为我们认为用户有权在运行之前知道程序的工作 内容,同时也使用户可以检查软件的漏洞(目前还未发现)。
.PP
源代码还允许被移植到新的平台、修改Bug以及增加新功能。鼓励用户 向<fyodor@insecure\.org>
发送更新,以并入正式的发布中。 发送这些更新至Fyodor或Insecure\.Org开发列表表明允许Fyodor和Insecure\.Com LLC 具有无限止的、非独有的权限来使用、修改和重新定义这些代码的许可证。 Nmap将一直以开放代码的方式提供由于无法进行代码的许可证重新定义从而可能 导致了对其它开放软件项目的破坏问题(如KDEt NASM),这一点很重要。 偶尔我们会向第三方提供重新定义的代码许可证。如果希望为自己的贡献说明 一个特定的许可证条件,在发送时指明。
源代码还允许被移植到新的平台、修改Bug以及增加新功能。鼓励用户 向fyodor@insecure\&.org
发送更新,以并入正式的发布中。 发送这些更新至Fyodor或Insecure\&.Org开发列表表明允许Fyodor和Insecure\&.Com LLC 具有无限止的、非独有的权限来使用、修改和重新定义这些代码的许可证。 Nmap将一直以开放代码的方式提供由于无法进行代码的许可证重新定义从而可能 导致了对其它开放软件项目的破坏问题(如KDEt NASM),这一点很重要。 偶尔我们会向第三方提供重新定义的代码许可证。如果希望为自己的贡献说明 一个特定的许可证条件,在发送时指明。
.PP
本程序的发布只是为了应用,不提供任何担保,也不隐含任何有关 特定目的的商业或适用性担保。在\fI\%http://www.gnu.org/copyleft/gpl.html\fR
本程序的发布只是为了应用,不提供任何担保,也不隐含任何有关 特定目的的商业或适用性担保。在\m[blue]\fB\%http://www.gnu.org/copyleft/gpl.html\fR\m[]
的GNU通用公共许可证或Nmap中包含的COPYING文件中可查看更多细节。
.PP
还需要注意Nmap已经导致了一些编写拙劣的应用程序、TCP/IP 栈甚至操作系统的崩溃。\fBNmap不能用于破坏关键系统\fR 除非准备好系统受到崩溃的影响。Nmap可能会造成系统或网络的崩溃但 我们不对Nmap可能产生的破坏和问题负任何责任。
@@ -1139,13 +1190,13 @@ Nmap软件提供源代码这是因为我们认为用户有权在运行之前
.PP
为安全起见不要将Nmap安装在有特殊权限的环境(如suid root)。
.PP
这个产品包含了由\fIApache Software Foundation\fR\&[11]开发的 软件,发布时还包含了\fILibpcap\fR\&[12]
可移植包捕获器的改进版本。Windows版的Nmap使用了源于\fIWinPcap library\fR\&[13]
的libpcap。正常的描述支持由\fIPCRE library\fR\&[14]
提供这也是一个开放源码软件由Philip Hazel编写。特定的原网络功能使用 了\fILibdnet\fR\&[15]网络库, 由Dug Song编写Nmap发布时带有一个改进版本。Nmap可以与
\fIOpenSSL加密工具库\fR\&[16]链接用于SSL版本检测。 所有本段描述的第三方软件在遵守BSD风格软件许可证下均可以免费发布。
这个产品包含了由\m[blue]\fBApache Software Foundation\fR\m[]\&\s-2\u[11]\d\s+2开发的 软件,发布时还包含了\m[blue]\fBLibpcap\fR\m[]\&\s-2\u[12]\d\s+2
可移植包捕获器的改进版本。Windows版的Nmap使用了源于\m[blue]\fBWinPcap library\fR\m[]\&\s-2\u[13]\d\s+2
的libpcap。正常的描述支持由\m[blue]\fBPCRE library\fR\m[]\&\s-2\u[14]\d\s+2
提供这也是一个开放源码软件由Philip Hazel编写。特定的原网络功能使用 了\m[blue]\fBLibdnet\fR\m[]\&\s-2\u[15]\d\s+2网络库, 由Dug Song编写Nmap发布时带有一个改进版本。Nmap可以与
\m[blue]\fBOpenSSL加密工具库\fR\m[]\&\s-2\u[16]\d\s+2链接用于SSL版本检测。 所有本段描述的第三方软件在遵守BSD风格软件许可证下均可以免费发布。
.PP
美国出口控制Insecure\.Com LLC认为Nmap归入美国ECCN(出口控制分 类编码) 5D922。这个分类称为\(lq不受5D002控制的信息安全软件\(rq。 这个分类的唯一限制是AT(反恐怖主义),这个限制几乎适用于所有的产品,禁 止出口到一些国家如伊朗和朝鲜。因此出口Nmap不需要任何特殊的许可 证、允许或其它政府授权。
美国出口控制Insecure\&.Com LLC认为Nmap归入美国ECCN(出口控制分 类编码) 5D922。这个分类称为\(lq不受5D002控制的信息安全软件\(rq。 这个分类的唯一限制是AT(反恐怖主义),这个限制几乎适用于所有的产品,禁 止出口到一些国家如伊朗和朝鲜。因此出口Nmap不需要任何特殊的许可 证、允许或其它政府授权。
.SH "NOTES"
.IP " 1." 4
英文版本