我想将DHCP发布数据包发送到我的局域网上的DHCP服务器。
我有想要伪造RELEASE数据包的机器的MAC地址。
我用Google搜索,没有找到任何有用的东西。有人能指出我正确的方向吗?
我尝试发送一个包含选项message-type:release的DHCP数据包。基本上我试图发布自己的IP。但它没有用。
sendp(Ether(dst=server_mac)/IP(src=my_ip,dst=server_ip)/UDP(sport=68,dport=67)/BOOTP(chaddr=my_mac)/DHCP(options=[("message-type","release")]))
答案 0 :(得分:7)
谢谢你捅了一下。 DHCP释放消息需要记住一件重要的事情。当您将消息发送到服务器时,它实际上不会导致在本地计算机上释放IP地址。如果您正在考虑使用RELEASE创建DOS或其他攻击的演示,那么您将不会有太多运气。
发布消息只是告诉DHCP服务器客户端正在放弃网络地址并取消剩余的租约。客户在放弃地址后停止使用该地址。
就为什么它可能不适合你而言,有几件事情会浮现在脑海中。
这是一个适合我的例子。您可以通过阅读RFC specification和/或使用Wireshark捕获并观察真实数据包来了解有关DHCP的更多信息。
from scapy import *
fam,hw = get_if_raw_hwaddr('wlan0')
send(IP(src=my_ip,dst=server_ip) /
UDP(sport=68,dport=67) /
BOOTP(chaddr=hw, ciaddr='192.168.0.101', xid=random.randint(0, 0xFFFFFFFF)) /
DHCP(options=[("message-type","release"), ("server_id", "192.168.0.1"), 'end']))