nmapは、閉じたポートとフィルターされたポートをどのように区別しますか


10

TCP接続スキャンを実行しているとしましょう。

Googleでのnmapスキャンは、次の出力を返します。

ポートステートサービス

80 / tcpオープンhttp

443 / tcpオープンhttps

しかし、たとえばポート12のgoogle.comでnetcatまたはtelnetを使用してソケットを開こうとすると、netcatまたはtelnetが無期限にハングします。

Nmapはポート12(および80または443以外の他のポート)が閉じていることを検出しますが、それらへのTCP接続を開始してもすぐには閉じません。

nmapは、これらのポートがフィルターされていないが閉じられていることをどのようにして知ることができますか?


デフォルトでは(そのアルゴリズムには他にもありますが)nmapから取得する出力は開いたポートのみで、閉じたポートやフィルターされたポートではありません。nmap -p 12 www.google.comは通常、フィルターされていると表示します。
nos

回答:


14

nmapスキャンでは、通常3つの状態が得られます。

  • オープン-リモートコンピューターはSYN / ACKでSYNに応答しました
  • クローズ-リモートコンピューターがRSTパケットでの接続試行を拒否しました
  • フィルター済み-何も戻されず、タイムアウトが発生しました

netcatをポート80で開いて待機しても、何も起こりません。ポート80(通常)は、httpサーバーが反対側でリッスンしており、HTTPコマンドを(それ自体のタイムアウトになるまで)待機していることを意味します。ポート80にnetcatした後、sedinng a GET /を試して、応答(おそらくhttpエラー)が返されるかどうかを確認します。


8

閉じたポートとは、ソフトウェアが待機していないポートであるため、そのシステムでそのポートに接続しようとすると、システムからTCP RSTパケットが返されます。

一方、フィルタリングされたポートは、通常、ネットワークパスのファイアウォールによってブロックされているポートであるため、そのシステムのそのポートに接続しようとしても、何も返されません... TCP RST ...接続の試行は、TCPが接続の試行をタイムアウトするまでそこにとどまります。


これは事実ですが、私の質問には答えません。ポート42でgoogle.comのnetcatを開きます。RSTパケットは取得されませんが、nmapはこのポートを閉じているとマークします。
Intrepidd

ポート42を含むgoogle.comへのnmapは、閉じられずにフィルターされたものとしてそれを返します。
Jeff McAdams 2013年

悪いことに、表示されていないすべてのポートが閉じていると思いましたが、それはグローバルな結果に依存します。
Intrepidd
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.