在“ Black Hat Python”书第53页中,restore_target。 为什么我们指定网关的IP地址而不指定其MAC地址?我的意思是,如果我们要广播ARP数据包,那么为什么要给出特定IP地址的pdst值而不是像hwdst这样的广播IP地址呢? ?
send(ARP(op=2, psrc=gateway_ip, pdst=target_ip, hwdst="ff:ff:ff:ff:ff:ff",hwsrc=gateway_mac),count=5)
答案 0 :(得分:1)
您在此处发送的称为免费ARP 。
这是一种特殊的数据包,由目标Mac为ff:ff:ff:ff:ff:ff
来定义。
看看:https://www.practicalnetworking.net/series/arp/gratuitous-arp/
区别在于,即使没有请求包,它也是一个应答包。这是“免费的”。在您的情况下,您正在发送从psrc
到hwsrc
的数据包映射,该数据包已发送给所有人:路由器正在向所有人通告他的MAC。
在这种情况下,pdst
的意义很小,但应按照惯例将其设置为与psrc
相同的地址。我不知道您的示例为何与众不同。