Я создаю атаку с использованием спуфинга build arp, используя scapy. Мне уже удалось заставить атаку работать с переадресацией ip linux.
os.system("echo %s > /proc/sys/net/ipv4/ip_forward" % (f,))
Но я хочу иметь возможность изменять пакеты на лету и отправлять отредактированные пакеты, поэтому мне нужно повторно реализовать переадресацию IP. Я попытался сделать это с помощью этого кода, но другой компьютер / шлюз получает пакеты, хотя они и находятся у злоумышленника.
#gIP is the gatwaway ip
#arp t able is an arptable I gatherd before I started the attack
#both of them have the correct value so the problem dosent lay there
def pkt_handler(self, pkt):
pkt.show()
ip = pkt.getlayer(sp.IP)
get_mac = lambda x: info.arp_table.get(x, info.arp_table[info.gIP])
ether = sp.Ether(dst=get_mac(ip.dst))
sp.sendp(ether/ip)
edit: После долгой отладки и просмотра tcpdump я думаю, что знаю, что вызывает проблему. Если есть клиент A, сервер B и злоумышленник S., когда клиент A отправляет на сервер B, можно сказать эхо-сообщение. сервер получает сообщение и отвечает на него, отправляя злоумышленнику, но каким-то образом scapy не может обнюхать сообщение, хотя tcpdump может. Не знаю, что вызывает эту проблему, любая помощь будет приятной.