2010-11-20 6 views
2

私は、Linux上のPythonで小さなプログラムを書いています。これは、ホストAからホストBまでの特定のポート上のワイヤーで飛んでくるパケットを傍受します。ホストCは、すべてのトラフィックはホストC(arp poisoning method)を経由します。私はsuccessfuly傍受の部分を書いているので、私は画面上のすべてのデータを見ることができますが、私はヘッダーデータを変更せずにパケットデータを変更する必要があります(もちろんcheksumが変更されます)。 pcapy/impacketで傍受されたパケットを使ってこれをどのように達成できますか?

少し曖昧かもしれませんが、主な考え方を以下に示します。
1.ホストAはホストBに「Hello」を送信します(ホストAとBは、ホストCを通過するようにARPスプーフィングされています)。
2.ホストCはホストAから 'Hello'を取得します(デフォルトでは、ホストCはホストBに「Hello」をリダイレクトしますが、他のものが必要です - ポイント3を参照)
3.ホストCは、ホスト 'B'にリダイレクトします。
4.ホストBは「バイバイ」を取得します。

多分、これを達成するためにいくつかのLinuxのメカニズムを使用する方法がありますか?今、私は立ち往生しており、私はどんなアイデアにも感謝します。パケットデータをpcapy/impacketで変更する

答えて

1

私はこの種のアプリケーションではscapyを好んでいます。これは強力なPythonパッケージで、プロトコルスタックのさまざまなレイヤーでパケットをキャプチャ、操作、送信することができます。

man-in-the-middle攻撃を実行する方法はいくつかあります。私はおそらく、ホストAからのパケットをキャプチャするフィルタで "sniff"関数を使用します。次に、パケットを変更して "sendp"を使用してホストBに再送信するコールバック( "prn"パラメータ経由)を指定します。 scapyには組み込みの "arpcachepoison"関数も含まれています。

関連する問題