====== 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バウンススキャン ポート指定とスキャン順序: -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=: はカンマ区切りのディレクトリ、スクリプトファイル、スクリプトカテゴリ --script-args=: スクリプトに引数を渡す --script-args-file=ファイル名: NSEスクリプト引数をファイルから読み込む --script-trace: 送受信したデータをすべて表示 --script-updatedb: スクリプトデータベースを更新 --script-help=: スクリプトのヘルプを表示 はカンマ区切りのスクリプトファイルまたはスクリプトカテゴリ 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 : 送信元アドレスを詐称 -e <インターフェース>: 指定したインターフェースを使用 -g/--source-port <ポート番号>: 指定したポート番号を使用 --proxies : HTTP/SOCKS4プロキシを経由して接続 --data <16進数文字列>: 送信パケットにカスタムペイロードを追加 --data-string <文字列>: 送信パケットにカスタムASCII文字列を追加 --data-length <数値>: 送信パケットにランダムデータを追加 --ip-options <オプション>: 指定したIPオプションを含むパケットを送信 --ttl <値>: IPのTTL(Time-To-Live)フィールドを設定 --spoof-mac : MACアドレスを詐称 --badsum: 不正なTCP/UDP/SCTPチェックサムのパケットを送信 出力: -oN/-oX/-oS/-oG <ファイル>: それぞれ通常形式、XML形式、s|: 主要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)を参照 ===== 参考 ===== * [[https://nmap.org/man/ja/index.html|Nmap リファレンスガイド (Man Page)]] * [[https://nmap.org/man/ja/man-briefoptions.html|オプション概要]] * [[https://qiita.com/kenryo/items/1b49bddce44e9412638f|Nmapによるポートスキャン基礎]]