web-dev-qa-db-ja.com

ポートスキャンとWindowsファイアウォール

アクティブなWindowsファイアウォールが組み込まれているマシンのポートをスキャンしたときに得られる結果を理解しようとしています。私のテスト環境では、Hyper-VVMで実行されている2台のWindows7マシンが、内部仮想スイッチに直接接続されており、同じサブネット内に他のファイアウォールがありません。

マシンA-Windowsファイアウォールがオフで実行中Nmap 7.60

マシンB-スキャンされているマシン

マシンBでWindowsファイアウォールがオフになっていると、すべてのポートが開いているか閉じているかのどちらかとして表示されます。

マシンBでWindowsファイアウォールがデフォルトのルールでオンになっている場合、一部のポートは開いている(EXPECTED)と表示され、残りはフィルターされていると表示されます。

リスナーのない特定のポートでの接続を許可するインバウンドルールを作成すると、ポートは閉じたものとしてスキャンされると予想されますが、応答なしの理由でフィルター済みとして表示されます。

接続を許可するアクティブなインバウンドルールがあり、拒否ルールがないポートをスキャンするときに応答がない理由を誰かが説明できますか? SYNスキャンを使用しています。

2
David

ファイアウォールはTCP SYNをフィルタリングするため、TCPは受信せず、TCPは必要なRSTを送信できません。 RFC 793、伝送制御プロトコル

生成のリセット

原則として、現在の接続を意図していないと思われるセグメントが到着するたびに、リセット(RST)を送信する必要があります。これが当てはまることが明らかでない場合は、リセットを送信してはなりません。

州には3つのグループがあります。

  1. 接続が存在しない(CLOSED)場合は、別のリセットを除くすべての着信セグメントに応答してリセットが送信されます。特に、存在しない接続にアドレス指定されたSYNは、この方法で拒否されます。

    着信セグメントにACKフィールドがある場合、リセットはセグメントのACKフィールドからシーケンス番号を取得します。それ以外の場合、リセットのシーケンス番号はゼロになり、ACKフィールドは着信セグメントのシーケンス番号とセグメント長の合計に設定されます。 。接続はCLOSED状態のままです。

  2. 接続が非同期状態(LISTEN、SYN-SENT、SYN-RECEIVED)にあり、着信セグメントがまだ送信されていないものを確認応答した場合(セグメントが許容できないACKを伝送した場合)、または着信セグメントにセキュリティレベルがある場合、または接続に要求されたレベルとコンパートメントと正確に一致しないコンパートメント、リセットが送信されます。

    SYNが確認されておらず、着信セグメントの優先レベルが要求された優先レベルよりも高い場合は、ローカルの優先レベルを上げるか(ユーザーとシステムで許可されている場合)、リセットを送信します。または、着信セグメントの優先レベルが要求された優先レベルよりも低い場合は、優先度が正確に一致するかのように続行します(リモートTCPが優先レベルを上げることができない場合、これが検出されます送信する次のセグメントで接続が終了します)SYNが確認された場合(おそらくこの着信セグメントで)、リセットされない場合、着信セグメントの優先レベルはローカルの優先レベルと正確に一致する必要があります送信する必要があります。

    着信セグメントにACKフィールドがある場合、リセットはセグメントのACKフィールドからシーケンス番号を取得します。それ以外の場合、リセットのシーケンス番号はゼロになり、ACKフィールドは着信セグメントのシーケンス番号とセグメント長の合計に設定されます。 。接続は同じ状態のままです。

  3. 接続が同期状態(ESTABLISHED、FIN-WAIT-1、FIN-WAIT-2、CLOSE-WAIT、CLOSING、LAST-ACK、TIME-WAIT)にある場合、許容できないセグメント(ウィンドウシーケンス番号外または許容できない確認応答) number)は、現在の送信シーケンス番号と、受信が予想される次のシーケンス番号を示す確認応答を含む空の確認応答セグメントのみを引き出す必要があり、接続は同じ状態のままです。

    着信セグメントのセキュリティレベル、コンパートメント、または優先度が、接続に要求されたレベル、コンパートメント、優先度と完全に一致しない場合、リセットが送信され、接続はCLOSED状態になります。リセットは、着信セグメントのACKフィールドからシーケンス番号を取得します。

2
Ron Maupin

答えが見つかりました。

インバウンドルールがあるのにポートがFILTEREDとして出力される理由は、「ステルスモード」と呼ばれる機能であり、「アプリケーションがリッスンしていないときに、発信ICMPが到達不能になるのをブロックし、ポートのメッセージをリセットしますTCPそのポートで」。

https://technet.Microsoft.com/en-us/library/dd448557(v = ws.10).aspx

0
David

リスナーがない特定のポートでの接続を許可するインバウンドルールを作成すると

LISTENERのないポートのファイアウォールルールを作成した場合、そのポートでは何も応答しないため、完全に正常な応答がありません。

からの引用 そこに

LISTENING以外のものが返された場合は、ポートがどこかでブロックされているという問題がある可能性があります。 ポートがFILTEREDと表示されている場合、ファイアウォールまたはVLANがそのポートをブロックしている可能性があります。ポートがNOT LISTENINGを返す場合、マシンに到達しましたが、マシンはそのポート番号をリッスンしていません。

0
yagmoth555