0
点赞
收藏
分享

微信扫一扫

DHCP_request数据包构造

from scapy.all import *
from scapy.all import DHCP , Ether ,IP , BOOTP ,UDP
def detect_dhcp(pkt):
    if DHCP in pkt:
        if pkt[DHCP].options[0][1]==2:
            Ether_Request = Ether(src = pkt[Ether].dst,dst = "ff:ff:ff:ff:ff:ff")
            IP_Request = IP(src = "0.0.0.0" , dst="255.255.255.255")
            UDP_Request = UDP(sport = 68 ,dport =67)
            BOOTP_Request = BOOTP(chaddr=pkt[BOOTP].chaddr , xid = pkt[BOOTP].xid)
            DHCP_Request  = DHCP(options=[("message-type", 'request') , ("server_id" , pkt[DHCP].options[1][1]) , ("requested_addr" , pkt[BOOTP].yiaddr) , "end"])
            Request = Ether_Request /IP_Request / UDP_Request / BOOTP_Request / DHCP_Request
            sendp(Request , iface = '以太网')
            print(pkt[BOOTP].yiaddr + "正在分配")

        if (pkt[DHCP].options[0][1]==5):
            print(pkt[BOOTP].yiaddr + "已经分配")
sniff(filter = "src port 67" , iface ='以太网' , prn = detect_dhcp , count =10) 
举报

相关推荐

0 条评论