説明
最も一般的なNmapの使用シナリオの1つは、イーサネットLANのスキャンです。ほとんどのLAN、特にRFC 1918によって付与されたプライベートアドレス範囲を使用するLANは、圧倒的多数のIPアドレスを常に使用するとは限りません。NmapがICMPエコー要求などの生のIPパケットを送信しようとすると、OSは、イーサネットフレームを適切にアドレス指定できるように、ターゲットIPなどの宛先ハードウェア(ARP)アドレスを決定する必要があります。..これは一連のARP要求を発行するために必要です。これは、エリアイーサネットホストに対してpingスキャンが試行される例で最もよく示されています。-send-ipオプションは、エリアネットワーク上でも(生のイーサネットではなく)IPレベルのパケットを送信するようにNmapに指示します。3つのARP要求のWireshark出力とそれらのタイミングがセッションに貼り付けられました。
オフラインターゲットの生のIPpingスキャンの例この例は、(Linux)OSがホストを放棄する前に1秒間隔で3つのARP要求を送信したため、完了するまでにかなりの数秒かかりました。ARP応答が通常数ミリ秒以内に到着する限り、数秒待つことは過度です。パケットの圧倒的多数が実際に存在するホストに送信されるため、このタイムアウト期間を短縮することはOSベンダーにとって優先事項ではありません。一方、Nmapは、次のようなターゲットが与えられた場合、1600万のIPにパケットを送信する必要があります。
10.0.0.0/8。多くのターゲットが並行してpingされますが、それぞれ2秒待機するのは非常に遅れます。
LAN上の生のIPpingスキャンには別の問題があります。前の例のように、宛先ホストが応答しないことが判明した場合、送信元ホストは通常、その宛先IPの不完全なエントリをカーネルARPテーブルに追加します。ARPテーブルスペースは有限であり、一部のオペレーティングシステムはいっぱいになると応答しなくなります。NmapがrawIPモード(-send-ip)で使用されている場合、Nmapは、ホスト検出を続行する前に、ARPキャッシュエントリの有効期限が切れるまで数分待たなければならない場合があります。
ARPスキャンは、Nmapに最高の優先順位を与えることにより、両方の問題を解決します。Nmapは、生のARP要求を発行し、独自の裁量で再送信とタイムアウト期間を処理します。システムARPキャッシュはバイパスされます。例は違いを示しています。このARPスキャンは、同等のIPにかかる時間の10分の1強かかります。

例bオフラインターゲットのARPpingスキャン
例bでは、-PRオプションも-send-ethオプションも効果がありません。これは多くの場合、Nmapが検出したイーサネットホストをスキャンするときに、ARPがエリアイーサネットネットワークでデフォルトのスキャンタイプを使用しているためです。これには、802.11ワイヤレスネットワークとしての従来の有線イーサネットが含まれます。上記のように、ARPスキャンはより効率的であるだけでなく、より正確でもあります。ホストはIPベースのpingパケットを頻繁にブロックしますが、通常はARP要求または応答をブロックしてネットワーク経由で通信することはできません。異なるpingタイプ(-PEや-PSなど)が指定されている場合でも、Nmapは同等のターゲット上のすべてのターゲットの代わりにARPを使用します。 。LAN .. ARPスキャンをまったく試行する必要がない場合は、例「オフラインターゲットのRaw IPPingスキャン」に示すように-send-ipを指定します。
生のイーサネットフレームを送信するようにNmapに制御を与えると、Nmapは送信元MACアドレスも調整できます。セキュリティ会議室にPowerBookが1つしかなく、Appleが登録したMACアドレスから大規模なARPスキャンが開始された場合、頭があなたの方を向く可能性があります。「MACアドレススプーフィング」セクションの説明に従って、-spoof-macオプションを使用してMACアドレスをスプーフィングします。