iptables を使用してトラフィックを netsed に再ルーティングします。このようにしかし、トラフィックを別の場所にルーティングしているようです。
私は次のように hexinject を使用します。
hexinject -s -i eth0 -c 1 -f 'arp' | replace '06 04 00 01' '06 04 00 02' | hexinject -p -i eth0
しかし、 hexinject の問題は、注入のみを行い、元のパケットを置き換えずに別のパケットを送信することです。
私もettercap + etterfilterを使用しましたが、フローを置き換えないようです。
if (ip.proto == UDP) {
if (search(DATA.data, "\x1f\x0f\x00\x08\x00\x01")) {
log(DATA.data, "/tmp/payload");
drop();
execinject("/bin/sed s/\x1f\x0f\x00\x08\x00\x01/\x1f\x0f\x00\x08\x00\x00/g' /tmp/payload");
msg("caught!");
}
}
私がしたいのは、単に最後のビットを0に変更して1f 0f 00 08 00 01
toの16進表現を変更することです1f 0f 00 08 00 00
。しかし、iptables + netsed、hexinject、またはettercap + etterfilterを動作させることはできません。
可視化は次のとおりです。
サーバーが1f 0f 00 08 00 01
誰かに送信しようとすると、プログラムは代わり1f 0f 00 08 00 00
に送信するように変更されます。
次は何を試すことができますか?あるいは、私がこのプログラムを間違った方法で使用している可能性があります。
答え1
HexInject を使用してファイアウォールルールを追加して、特定のパケットの転送をブロックできます。
シンプルで簡単です。
IPTablesを使用してポート53に送信されたUDPパケットをブロックする例:
iptables -A FORWARD -p udp --destination-port 53 -j DROP
レイヤ 2 でフィルタリングするには、次のように表示します。EBテーブル。
レイヤ2フレーム用のファイアウォール。