nmap は、より多くのポートをスキャンすると指数関数的に遅くなります。

nmap は、より多くのポートをスキャンすると指数関数的に遅くなります。

時々、ホストを確認するために nmap を使用します。例:nmap -sS -p- example.com
しかし、このコマンドは完了しません。

そこで、スキャンを小さな部分に分割します: nmap -sS -p 0-999 example.com(終了まで 12 秒)
、次にnmap -sS -p 1000-1999 example.com(終了まで 14 秒) など。これは面倒です。

幅の広いパーツを使用する場合:nmap -sS -p 0-3999 example.com
完了までに 3 分以上かかります。

そしてnmap -sS -p 0-7999 example.com30分経っても終わらない。

つまり、
1000ポート -> 12秒
4000ポート -> 3分
9000ポート -> 30分

問題は何ですか?
nmap を使用して 1 つのホストの開いている TCP ポートを見つけるにはどうすればよいですか?

答え1

Nmap は、各ポートの状態 (開いている、閉じている、またはフィルターされている) を正確に検出できる速度を見つけるために最善を尽くします。タイミング システムは複雑で、スキャンが非常に遅くなる最悪のシナリオがいくつかあります。これらのケースの 1 つは、ターゲットが TCP 接続リセット (RST) のレート制限を行っている場合です。RST は、ポートが閉じられたときに Nmap が受信する応答です。システム上のポートの大半は通常閉じられており、リソースを節約するため、またはスキャンの試行を阻止するために、ターゲットの OS は 1 秒に 1 回だけ RST を発行することを選択する場合があります。

Nmap は RST レート制限を検出すると、そのレートに合わせてプローブの速度を落とす必要があります。そうしないと、応答が受信されなかったため、閉じられたポートが「フィルター済み」とマークされ、そのポートへのトラフィックをファイアウォールがドロップしたことと一致する可能性があります。この速度低下の動作は徐々に発生するため、最初のいくつかのポートは、後のポートほど影響を受けません。また、影響を受けるのは閉じられたポートのみであるため、1 から 1000 までのよく使用されるポートが速度低下の原因となる可能性は低くなります。

この問題を回避する方法はありますが、精度が落ちます。フィルターされたポートと閉じられたポートの違いを気にする必要がなければ、--defeat-rst-ratelimitレート制限された RST が Nmap のタイミングに影響を与えないようにするオプションを使用できます。Nmap はネットワークに適したレートで送信を続け、ドロップされたパケットを検出し、必要に応じて速度を落としますが、閉じられたポートをフィルター済みとしてマークしてもまったく問題ありません。開いているポートのセットはまったく同じであるはずです。これがほとんどの人が望むことです。実際、--open閉じられたポートとフィルターされたポートに関する情報をまったく印刷しないように追加することもできます。

答え2

-T5スキャン速度を上げるオプションを追加できます。nmap タイミングとパフォーマンス-T4オプションを使用することをお勧めします:

-T4 を常に使用することをお勧めします。-T5 を好む人もいますが、私の好みには強引すぎます。-T2 を指定する人は、ホストがクラッシュする可能性が低いと考えているため、または一般的に礼儀正しいと考えているため、-T2 を指定することがあります。多くの場合、-T 礼儀正しさが実際にどれほど遅いかは理解していません。スキャンには、デフォルトのスキャンの 10 倍の時間がかかることがあります。デフォルトのタイミング オプション (-T3) では、マシンのクラッシュや帯域幅の問題はまれであるため、通常は慎重なスキャナーにこれを推奨します。これらの問題を軽減するには、タイミング値を調整するよりも、バージョン検出を省略する方がはるかに効果的です。

答え3

-v速度低下の原因を突き止めるには、(verbose)で nmap を実行してみてください。

nmap -sS -Pn -v -p 1-9999 myserver.com自分のサーバーの 1 つで実行すると、 3000 ポート入力後のどこかで次の結果が生成されます。

Increasing send delay for (ip address) from 0 to 5 due to max_successful_tryno increase to 4
Increasing send delay for (ip address) from 5 to 10 due to 17 out of 55 dropped probes since last increase.
[...]
Increasing send delay for (ip address) from 160 to 320 due to 11 out of 31 dropped probes since last increase.
SYN Stealth Scan Timing: About 17.08% done; ETC: 13:17 (0:02:30 remaining)

これらのメッセージはポート 1024 未満では表示されないようです。

関連情報