web-dev-qa-db-ja.com

ARP-IPtablesでの転送またはドロップ

私は自宅のコンピューターとルーターをARP攻撃しようと試みています(ネットワークの動作を学習して発見することを目的としています)。そして成功しました。私がずっと使ってきた時間:

with open('/proc/sys/net/ipv4/ip_forward', 'w') as ipf:
ipf.write('1\n')

ポート転送を有効にします。次に、送信元IPと宛先IPに基づいて、パケットをドロップまたは受け入れようとしました。

iptables -I FORWARD -s " + HostA.IP + " -d " + Router.IP + " -i wlan0 -j DROP

このコードは、このスキームに従って、ホストAからのすべてのパケットをドロップします。

Poisoned Host A --X---->Me----X---->Router

          <-------  <---------

ただし、ホストAからのパケットは引き続きルーターに到達するため、IPtableルールは機能しません。私の最善の策は、ホストAから発信されたパケットが宛先IPとしてルーターのIPを持っているが、ハードウェア宛先としてMACアドレスを持っていることです(それはARPテーブルが汚染されています...)。これは "-d" + Router.IPに影響を与え、IPtablesがそれを受け入れてポート転送するようにできますか(ip_forwardはまだ1に設定されており、はい0に設定しようとしました)。

これを機能させるための提案はありますか? PythonでコーディングしているBracktrack 5 r3 Linuxを使用しています。

1
LetsCode

ネットワーク設定(接続方法)を指定していないため、何が起こっているのかを理解するのが困難です。

/proc/sys/net/ipv4/ip_forwardに "1"を書き込むと、コンピューターがルーターとして機能していることがカーネルに通知されます。つまり、異なるサブネット上に2つのネットワークインターフェイスがあり、カーネルはそれらの間のパケット。本当にそのような設定をしている場合、iptablesルールは期待どおりに機能するはずです。

ほとんどの場合、コンピューターは通常のホスト(単一のサブネット上の単一のネットワークインターフェイス)として機能しており、フィルターしようとしているパケットはその近くに到達することさえありません。この場合、「ホストA」からのパケットがルーターに向かう途中でネットワークを通過するように、ネットワークを再配線する必要があります。また、スイッチ、ブリッジ、またはルーターとして機能するようにコンピューターを構成する必要があります(ネットワークインターフェイス間でのパケットの受け渡しをどのように処理するかに応じて選択します)。

1
Mark