iptables を使用した中間者攻撃

iptables を使用した中間者攻撃

TCP 経由で別のサブシステムと通信するサブシステムをテストしたいと思います。以下を使用しました。

"iptables -A OUTPUT -p tcp --dport "+port_number" -j DROP"

ポート上のトラフィックを停止し、スクリプトを介してテスト対象のシステムに独自のデータを送信できるようにしました。これは非常にうまく機能しました。

ただし、トラフィックを単にドロップするのではなく、スクリプトに転送したいと考えています。次に、テスト対象のサブシステムに転送する前に、スクリプト内のデータを操作したいと考えています。

iptables を使用してこれを実行できますか? もっと良い方法はありますか?

答え1

これを試すことができます (ポートへの着信トラフィックは、スクリプトをリッスンできるローカルホストに1234リダイレクトされます)。4321

iptables -I INPUT -p tcp --dport 1234 -j ACCEPT
iptables -I INPUT -p tcp --dport 4321 -j ACCEPT
iptables -t nat -I PREROUTING -p tcp --dport 1234 -j REDIRECT --to-ports 4321

1234同じマシンからもポートにアクセスする場合は、ループバック インターフェイスで使用されないOUTPUTルールを追加する必要があります。PREROUTING

iptables -t nat -I OUTPUT -p tcp -o lo --dport 1234  -j REDIRECT --to-ports 4321

これで、サーバー上で、リッスンを試すことができますnc -l 4321(ここでは独自のスクリプトを使用できます)。クライアント上で、nc server_host_name_or_ip 1234サーバーがリダイレクトを正しく実行していることを確認するために、何かを書き込んでみてください。

設定を保存することを忘れないでくださいiptables

関連情報