Я пытаюсь использовать scapy для атаки «человек посередине» по локальной сети, подделывая MAC-адрес моего шлюза с одной стороны и моего смартфона с другой.Эта часть идет хорошо.Тем не менее, я хотел бы также изменить пакеты на лету.Поэтому я использую iptables
и netfilterqueue
модуль Python.После непродолжительной работы скрипт модификации не печатает никаких пакетов, даже если трафик все еще подделан:
Вот правило iptables, добавленное для PREROUTING
трафика:
iptables -t nat -A PREROUTING -s 192.168.1.10/32 -j NFQUEUE --queue-num 1
Вот сценарий, используемый для bind
в очереди 1:
#!/usr/bin/env python
from scapy.all import *
from netfilterqueue import NetfilterQueue
def modify(packet):
print(packet.get_payload())
pkt = IP(packet.get_payload())
print('source:'+pkt.src+'destination:'+pkt.dst)
# packet.set_payload(str(pkt))
packet.accept()
if __name__ == '__main__':
try:
nfqueue = NetfilterQueue()
nfqueue.bind(1, modify)
nfqueue.run()
except KeyboardInterrupt:
nfqueue.unbind()
Симптомы: даже если человек посередине идет хорошо, и сценарий nfqueue печатает пакет в течение короткого времени, ничегоПохоже, что он переходит в очередь netfilter через несколько секунд, и сценарий изменения больше ничего не печатает.
Если вместо этого в правиле iptables
установить IP-адрес источника для всей подсети, я получу широковещательную рассылку.и многоадресные пакеты, напечатанные в сценарии.Однако, не трафик с моего смартфона.
Я знаю, что мог бы использовать ettercap
для выполнения такой задачи, однако я хотел бы создать его сам, чтобы убедиться, что я ясно понимаю (и, очевидно, это нек настоящему моменту).
Большое спасибо за вашу помощь!