Shikata Ga Nai

Private? There is no such things.

nmapでホスト検出する方法についてかいてみた

Hello there, ('ω')ノ


実行中のホストを識別する基本的な手法の1つは。

ICMP pingパケットを送信して、応答を分析して結論を​​導き出すことで。

ICMPパケットがブロックされているとライブホストリストに表示されず。

なのでNmapは、カスタマイズされたパケットを送信して。

ライブホストを識別するためのオプションを提供してくれて。 

下記のオプションは、Nmapがホスト検出するために提供されて。

 

-sL:

 指定されたサブネットに存在するIPアドレスをリストして。

 また、ホスト名を解決しようとして。

 ただ、OS検出などの他のオプションと組み合わせることができず。

 

-sn:

 ホスト検出実行後、Nmapにポートスキャンを実行しないように指示して。

 代わりに、見つかったライブIPアドレスを一覧表示して。

 これは、ICMPエコーを使用して利用可能なホストを識別して。

 ただ、ネットワークにファイアウォールが存在する場合は機能せず。

  例:nmap -sn -v 192.168.1.135/28

 

-Pn(pingなし):

 ホストがライブであることが判明した場合にのみ、アクティビティを実行して。

  ※プローブ、ポート検出、サービス検出、OS検出オプションなど。

 提供されたホストのリストですべてを実行して。

 たとえば、subnet / 28のクラスCのIPアドレスが指定されている場合だと。

 ライブホストをチェックしてすべての255ホストでプローブを実行するので。

 広範なスキャンで、大量のトラフィックを生成して。

  例:nmap –Pn -v 192.168.1.135/28

 

-PS(ポートリスト):

 SYNフラグが設定された空のTCPパケットを送信して。

 TCP接続が発生するので、ACKはSYNパケットの受信時にホストで生成されて。

 ACKパケットが受信されると、SYN / ACKパケットを生成して接続を確立して。

 代わりに、リセットフラグパケットのRSTを送信して接続をドロップして。

 ポートのオープンを宣言して。

 これで、接続することなく開いているポートを特定できて。

 また、攻撃者は検出の実行中に跡を残さなくなり。

  例:nmap –sP -PS22,445 -PU53 192.168.1.135

 

-PA(ポートリスト):

 これはSYNスキャンに似て、TCP ACK pingスキャンとも呼ばれて。 

 ACKが設定されたTCPパケットを生成して。

 ACKは基本的に、接続を介して転送されたデータを確認するものの。

 ホストへの既存の接続はないため、RSTフラグが有効なパケットを返して。

 これで、ポートが開いていてサービスが機能していると判断できて。

 

-PU(ポートリスト):

 UDP pingスキャンはUDPポート用で。

 DNSやNTPなどのサービス固有のポートを除いて、ほとんどオープンで。

 DNS pingパケットが閉じたポートに到達した場合は。

 UDPプローブはホストからICMP到達不能応答をトリガーする必要があって。

 この応答が生成されないか、接続がアイドル状態のように見える場合は。

 ポートが機能していて、サービスがポートで実行されていることを意味して。

 

-PY(ポートリスト):

 INITデータの一部を含むSCTPパケットを生成して。

 これは、接続を確立しようとしていることで。

 宛先ポートが閉じていると、ABORTパケットが送り返されて。

 それ以外の場合、INIT-ACKして、4ウェイハンドシェイクに進んで。

 INIT-ACKを受信すると、NmapマシンはINIT-ACKを送信して。

 接続を作成する代わりにポートを開いているものとしてマークして。

 

-PO(プロトコルリスト):

 ICMPやIGMP等のパケットヘッダで有効になっている2つのプロトコルを使用して。

 パケットを構成して、ホストに到達できない応答があるかどうかを確認して。

 プロトコルがそうでないことを確認できて。

 宛先ポートでサポートされているので、ポートをクローズ済みとしてマークして。

 

-PR(ARP Ping):

 ARP要求をリモートホストに送信できて。

 応答があると、Nmapは他の結果を調べずにホストをライブとしてマークして。

 

--disable-arp-ping:

 ネットワークデバイスまたはプロキシがARP要求に応答したときに。

 特定の結果を取得できるので、すべてのホストが稼働しているように見えて。

 

--traceroute:

 リモートホストに到達するために使用する最適なポートを決定して。

 

-n:

 DNS解決プロセスをスキップできて。

 これはスキャンには長い時間がかかったりして。

 

-R:

 すべてのライブホストに対して逆DNS解決を実行して。

 

--system-dns:

 解決に使用されるDNSサーバがホストで構成されていることを指定できて。

 

--dns-servers <server1> [、<server2> [、...]]:

 逆DNS解決に使用される特定のDNSアドレスを定義するために使用できて。

 

Best regards, (^^ゞ