Nmap option
Nmap option
自分用に、公式サイト見た方がいい
Options
Target Specification
-iL <inputfilename>
ファイルに記載されているホスト、ネットワークをターゲットとして指定する
-iR <num hosts>
指定された数だけランダムにピックアップしてスキャン
--exclude <host1[,host2][,host3],...>
除外するホスト、ネットワーク
--excludefile <exclude_file>
ファイルに記載されているホスト、ネットワークを除外する
Host Discovery
-sL
スキャンするホストをリストアップする、スキャンはまだしない
-sn
pingだけしてポートスキャンはしない
-Pn
pingをしないでスキャンを始める
-PS/PA/PU/PY[portlist]
それぞれTCP SYN, TCP ACK, UDP, SCTPでポートスキャンする
-PE/PP/PM
ICMP echo, timestamp, and netmask request discovery
上記のそれぞれのスキャンをする
-PO[protocol list]
tcp, udp, icmpが指定できる、それぞれのプロトコルでスキャン?
-n/-R
DNS解決をしない/するの指定、デフォルトはたまにするsometimesになってる?
--dns-servers <serv1[,serv2],...>
DNSサーバを指定
--system-dns
OSで指定されたDNSを使うように指定
--traceroute
ホストごとにtracerouteする
Scan Techniques
-sS/sT/sA/sW/sM
TCP SYN/Connect()/ACK/Window/Maimon でそれぞれスキャン
- TCP Connect scan
- 3wayハンドシェイクが成立するかどうかで判定するスキャン
- TCP SYN scan
- SYNだけ送ってSYN-ACKが返ってくるかどうかで判定するスキャン
- 最後にRSTを送る
- 高速
- TCP ACK scan
- openかどうかの判定はできないが、ステートフルかどうか、フィルターされてるかどうかを調べるために使う
- ACKだけを送る、正常ならopenでもcloseでもRSTが返ってくるはず
- Window scan
- ACK scanとほぼ同じ
- 特定の実装での挙動の違いを利用してopen/closeの判定をする
- 対象ホストがよく分からないときはあんまり信用しない
- Maimon scan
- このテクニックはNULL, FIN, Xmas scanと同じ
- FIN/ACKを使う
- BSD系のシステムの挙動を判定する
-sU
-sN/sF/sX
TCP Null, FIN, Xmas スキャン
フラグ以外の挙動は一緒でclosedはちゃんと判定できる、openかfilteredかは明確じゃない
- TCP Null scan
- フラグを何もセットしない
- FIN scan
- FINを送る
- Xmas scan
- FIN, PSH, URGをセットする
--scanflags <flags>
TCPスキャンのフラグを指定する
exp. nmap -sS --scanflags SYNFIN -T4 www.google.com
-sI <zombie host[:probeport]>
Idleスキャン
他のホストからのパケットを偽造して送信する
パケットに割り振られるIDの増加を見て直接スキャンせずに状態を判定する
-sY/sZ
SCTP INIT/COOKIE-ECHO スキャン
SCTPはTCPとUDPの特徴を持たせて新しい機能も追加されたプロトコル
INITはTCP SYN scanみたいな感じ
COOKIE-ECHO scanはdropとABORTを返す挙動の違いを使ったスキャン
-sO
IP protocolスキャン
プロトコルヘッダーを順に変えてスキャンする?
厳密にはポートスキャンではない
-b <FTP relay host>
FTP bounce scan
FTPのproxy機能のスキャン
1997年に流行ったものなのでいまはまずない
Port Specification and Scan Order
-p <port ranges>
スキャンするポートの指定
Ex: -p22; -p1-65535; -p U:53,111,137,T:21-25,80,139,8080,S:9
--exclude-ports <port ranges>
スキャンから除外するポート
-F
デフォルトよりも少ないポートをスキャンするファストモード
-r
順番にスキャンする、ランダム化しない
--top-ports <number>
よくある順に指定した数だけスキャン
--port-ratio <ratio>
よくある度で指定してスキャン、使いにくそう
Service/Version Detection
-sV
サービスとバージョンを調べる
--version-intensity <level>
0~9でどれぐらい調査するか指定できる、9は全ての調査をする
--version-light
level 2の調査をする
--version-all
全ての調査をする、level 9と同じ
--version-trace
スキャンで何をしたか表示する、Debug用
Script Scan
-sC
--script=default
と同じ
--script=<Lua scripts>
スキャンに使うLuaスクリプトを指定する
規定の位置にあるスクリプトファイルの名前や、ディレクトリ、カテゴリなど様々な方法で指定できる
--script-args=<n1=v1,[n2=v2,...]>
スクリプトに渡す引数
--script-args-file=filename
ファイル中の値を引数として渡す
--script-trace
送信データと受信データを表示
--script-updatedb
スクリプトデータベースを更新する
--script-help=<Lua scripts>
スクリプトのヘルプを表示する
OS Detection
-O
OS識別を有効にする
--osscan-limit
OS識別を制限する
--osscan-guess
強めにOSの推測をする
Timing and Performance
<time>
には時間を指定できる、末尾でms, s, m, hの指定ができる
-T<0-5>
タイミングのテンプレート、5が一番速い
--min-hostgroup/max-hostgroup <size>
並列スキャンするホストの分割サイズ
--min-parallelism/max-parallelism <numprobes>
調査の並列数
--min-rtt-timeout/max-rtt-timeout/initial-rtt-timeout <time>
調査のrount trip time
--max-retries <tries>
ポートスキャンの調査のリトライ数
--host-timeout <time>
ホストのタイムアウト検知時間
--scan-delay/--max-scan-delay <time>
調査ごとのインターバル
--max-rate/--min-rate <number>
パケット送信の最大/最低レート、一秒間に指定した数送信する
Firewall/IDS Evasion and Spoofing
-f; --mtu <val>
パケット分割数
-D <decoy1,decoy2[,ME],...>
デコイとなるホストを指定し、複数ホストからのスキャンとみせかけられる?
-S <IP_Address>
ソースアドレスの偽装
-e <iface>
インターフェースの指定
-g/--source-port <portnum>
指定したポートでスキャン
--proxies <url1,[url2],...>
HTTP/SOCKS4プロキシを指定して、そこを経由してスキャンする
--data <hex string>
データを指定しパケットに追加する
--data-string <string>
ASCII文字列としてパケットにデータを追加
--data-length <num>
指定された長さまでランダムなデータを追加
--ip-options <options>
IPオプションを指定
--ttl <val>
TTLの指定
--spoof-mac <mac address/prefix/vendor name>
MACアドレスを偽装
--badsum
checksumを不正なものにする
Output
-oN/-oX/-oS/-oG <file>
出力形式を指定してファイルに書き出す
通常、XML、leet、grepable
-oA <basename>
メインの3つのフォーマットで出力する
-v
逐次的に出力する、vの数でレベルが上がる
-d
デバッグ出力指定、dの数でレベルが上がる
--reason
ポート判定の理由を表示してくれる
--open
openなポートだけ表示する
--packet-trace
送信、受信のパケットを全て表示
--iflist
インターフェース、 ルートを表示、デバッグ用
--append-output
指定のファイルになんか出力する??
--resume <filename>
中止されたスキャンの情報を保存する?
--stylesheet <path/URL>
XMLをHTMLに変換するためのXLSファイルへのパス?
--webxml
Nmap.orgのxml変換のためのスタイルシート?
--no-stylesheet
XSLファイルを参照して変換しないように指定
Misc
-6
IPv6
-A
OS識別、バージョン識別, スクリプト, traceroute
--datadir <dirname>
Nmapのデータディレクトリを指定する
--send-eth/--send-ip
生のeth、ipのパケットフレームを使う
--privileged
ユーザに特権があることを保証する
--unprivileged
生ソケットを触れない権限であることを保証する
-V
バージョン情報
-h
ヘルプ