目次

Nmap

基本

$ nmap target(hostname or IP)

複数の場合

$ nmap target1(hostname or IP) target2 target3 ...

範囲指定

$ nmap 192.168.0.100-110

ネットワークアドレスを指定

$ nmap 192.168.0.100/24

TCP/UDPプロトコル

options

  -sS/sT/sA/sW/sM: TCP SYN/Connect()/ACK/Window/Maimon scans
  -sU: UDP Scan
  -sN/sF/sX: TCP Null, FIN, and Xmas scans
  -sO: IP protocol scan

ポート指定する場合

$ nmap -sT -p port# target(hostname or IP)

OSとバージョン

  -O: Enable OS detection
  -A: Enable OS detection, version detection, script scanning, and traceroute

ping送信をせずにスキャン

$ nmap -Pn target(hostname or IP)

Options

使用方法: nmap [スキャンタイプ] [オプション] {ターゲット指定}
ターゲット指定:ホスト名、IPアドレス、ネットワークなどを指定できます。
  例: scanme.nmap.org, microsoft.com/24, 192.168.0.1; 10.0.0-255.1-254
  -iL <入力ファイル名>: ホスト/ネットワークのリストから入力
  -iR <ホスト数>: ランダムターゲットを選択
  --exclude <ホスト1[,ホスト2][,ホスト3],...>: 除外するホスト/ネットワーク
  --excludefile <除外ファイル>: 除外リストをファイルから読み込む

ホストディスカバリ:
  -sL: リストスキャン - ターゲットをリストするだけ
  -sn: Pingスキャン - ポートスキャンを無効化
  -Pn: すべてのホストを起動中とみなす - ホストディスカバリをスキップ
  -PS/PA/PU/PY[ポート一覧]: TCPSYNプローブ、TCPACKプローブ、UDPプローブ、SCTPプローブ
  -PE/PP/PM: ICMPエコー、タイムスタンプ、ネットマスクリクエストプローブ
  -PO[プロトコル一覧]: IPプロトコルPing
  -n/-R: DNS解決を行わない/常に解決する [デフォルト: 場合による]
  --dns-servers <サーバ1[,サーバ2],...>: カスタムDNSサーバを指定
  --system-dns: OSのDNSリゾルバを使用
  --traceroute: 各ホストへのホップパスを追跡

スキャン手法:
  -sS/sT/sA/sW/sM: TCPSYNスキャン/Connect()スキャン/ACKスキャン/Windowスキャン/Maimonスキャン
  -sU: UDPスキャン
  -sN/sF/sX: TCPヌル、FIN、Xmasスキャン
  --scanflags <フラグ>: TCPスキャンフラグをカスタマイズ
  -sI <ゾンビホスト[:プローブポート]>: アイドルスキャン
  -sY/sZ: SCTP INITスキャン/COOKIE-ECHOスキャン
  -sO: IPプロトコルスキャン
  -b <FTPリレーホスト>: FTPバウンススキャン

ポート指定とスキャン順序:
  -p <ポート範囲>: 指定したポートのみスキャン
    例: -p22; -p1-65535; -p U:53,111,137,T:21-25,80,139,8080,S:9
  --exclude-ports <ポート範囲>: 指定したポートをスキャンから除外
  -F: 高速モード - デフォルトより少ないポートをスキャン
  -r: ポートをランダムではなく順番にスキャン
  --top-ports <数>: 最も一般的な<数>ポートをスキャン
  --port-ratio <比率>: <比率>以上一般的なポートをスキャン

サービス/バージョン検出:
  -sV: 開いているポートにプローブを送ってサービス/バージョン情報を判別
  --version-intensity <レベル>: 0(軽め)から9(最大)までの強度を設定
  --version-light: 最も可能性の高いプローブに制限(強度2)
  --version-all: 全プローブを試す(強度9)
  --version-trace: バージョンスキャンの詳細な活動を表示(デバッグ用)

スクリプトスキャン:
  -sC: --script=defaultと同等
  --script=<Luaスクリプト>: <Luaスクリプト>はカンマ区切りのディレクトリ、スクリプトファイル、スクリプトカテゴリ
  --script-args=<n1=v1,[n2=v2,...]>: スクリプトに引数を渡す
  --script-args-file=ファイル名: NSEスクリプト引数をファイルから読み込む
  --script-trace: 送受信したデータをすべて表示
  --script-updatedb: スクリプトデータベースを更新
  --script-help=<Luaスクリプト>: スクリプトのヘルプを表示
        <Luaスクリプト>はカンマ区切りのスクリプトファイルまたはスクリプトカテゴリ

OSの検出:
  -O: OSの検出を有効化
  --osscan-limit: OSの検出を有望なターゲットに制限
  --osscan-guess: OSの推定をより積極的に行う

タイミングと性能:
  <時間>オプションは秒単位で、'ms'(ミリ秒)、's'(秒)、'm'(分)、'h'(時間)を付けることもできます(例: 30m)。
  -T<0-5>: タイミングテンプレートを設定(数値が大きいほど高速)
  --min-hostgroup/max-hostgroup <サイズ>: 並列ホストスキャングループのサイズ
  --min-parallelism/max-parallelism <プローブ数>: プローブの並列化
  --min-rtt-timeout/max-rtt-timeout/initial-rtt-timeout <時間>: プローブの往復時間を指定
  --max-retries <試行回数>: ポートスキャンプローブの再送信上限
  --host-timeout <時間>: 指定時間経過後にターゲットを諦める
  --scan-delay/--max-scan-delay <時間>: プローブ間の遅延を調整
  --min-rate <数値>: 1秒あたりの最小パケット送信数
  --max-rate <数値>: 1秒あたりの最大パケット送信数

ファイアウォール/IDSの回避となりすまし:
  -f; --mtu <値>: パケットを断片化(オプションで指定したMTUで)
  -D <デコイ1,デコイ2[,ME],...>: デコイを使ってスキャンを隠蔽
  -S <IPアドレス>: 送信元アドレスを詐称
  -e <インターフェース>: 指定したインターフェースを使用
  -g/--source-port <ポート番号>: 指定したポート番号を使用
  --proxies <URL1,[URL2],...>: HTTP/SOCKS4プロキシを経由して接続
  --data <16進数文字列>: 送信パケットにカスタムペイロードを追加
  --data-string <文字列>: 送信パケットにカスタムASCII文字列を追加
  --data-length <数値>: 送信パケットにランダムデータを追加
  --ip-options <オプション>: 指定したIPオプションを含むパケットを送信
  --ttl <値>: IPのTTL(Time-To-Live)フィールドを設定
  --spoof-mac <MACアドレス/プレフィックス/ベンダ名>: MACアドレスを詐称
  --badsum: 不正なTCP/UDP/SCTPチェックサムのパケットを送信

出力:
  -oN/-oX/-oS/-oG <ファイル>: それぞれ通常形式、XML形式、s|<rIpt kIddi3形式、Grepable形式でスキャン結果を指定のファイルに出力
  -oA <ベース名>: 主要3形式を一度に出力
  -v: 詳細レベルを上げる(-vvなどでさらに上げられる)
  -d: デバッグレベルを上げる(-ddなどでさらに上げられる)
  --reason: ポートの状態になった理由を表示
  --open: 開いている(または開いている可能性がある)ポートのみ表示
  --packet-trace: 送受信したすべてのパケットを表示
  --iflist: ホストのインターフェースとルーティングを表示(デバッグ用)
  --append-output: 指定したファイルに追記する(上書きはしない)
  --resume <ファイル名>: 中断したスキャンを再開
  --noninteractive: キーボードによる実行時の対話を無効化
  --stylesheet <パス/URL>: XMLの出力をHTMLに変換するXSLスタイルシート
  --webxml: Nmap.Orgのスタイルシートを参照してポータブルなXMLを出力
  --no-stylesheet: XMLに対するXSLスタイルシートの関連付けを防ぐ

その他:
  -6: IPv6スキャンを有効化
  -A: OSの検出、バージョンの検出、スクリプトスキャン、tracerouteを有効化
  --datadir <ディレクトリ名>: カスタムのNmapデータファイルの場所を指定
  --send-eth/--send-ip: 生のイーサネットフレームまたはIPパケットを使って送信
  --privileged: ユーザが完全な特権を持っていると仮定
  --unprivileged: ユーザがraw socketの特権を持っていないと仮定
  -V: バージョン番号を表示
  -h: このヘルプサマリーページを表示
例:
  nmap -v -A scanme.nmap.org
  nmap -v -sn 192.168.0.0/16 10.0.0.0/8
  nmap -v -iR 10000 -Pn -p 80

詳しくはマニュアルページ(https://nmap.org/book/man.html)を参照 

参考