【内网攻击】DHCP协议概念——地址池耗尽攻击

2023-10-15 07:36

本文主要是介绍【内网攻击】DHCP协议概念——地址池耗尽攻击,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

目录

前言

DHCP 服务概念

1)客户端发送DHCP Discovery广播包

2)服务器响应DHCP Offer广播包

3)客户机发送DHCP Request广播包

4)服务器发送DHCP ACK广播包

部署DHCP服务器

dhcp地址池消耗攻击

攻击防御


前言

现在思考我们的主机IP是如何得到的?[新手向]

如下图 不使用静态配置的方式,改成自动获的IP地址的方式。我们会获取一个动态的临时IP地址!

这期间发生了什么?

本次我会介绍dhcp的基本概念,且从抓包的形式上从流量上来理解dhcp服务端和客户端的通信细节。为了显示dhcp服务攻击,我将采用win2008来部署dhcp服务器,最后用通信流量分析攻击的细节。

DHCP 服务概念

dhcp即可以说是一个协议也可以说是一个服务,他的主要目的就是帮助主机获取一个IP。我们可以自己抓一下包看一看dhcp做了做了那些事情,下图就是DHCP的工作流程。

 

DHCP原理

也是DHCP租约过程,分为4个步骤:

1)客户端发送DHCP Discovery广播包

可以看到此刻的客户端(没有ip故)用0.0.0.0作为源地址,由于也不知道dhcp服务的地址及mac地址,故发送广播报文,目的ip为255.255.255.255目的mac地址为ff:ff:ff..。发送“discover”试图寻找dhcp找可用IP。

2)服务器响应DHCP Offer广播包

服务器收到dhcp discovery 包后响应Offer包。此包的源mac为自己,目的mac为客户端主机(之前发送discovery 服务器记录了mac)。根据ip地址此刻服务器已经当主机为分配的ip地址218.133了,当客户端收到这个包后正常来说会检查目的mac,目的ip是否为自己,如果不是自己则会丢弃。但此刻情况不同!自己还没有ip加之这是一个dhcp的offer包,因此处理逻辑自然也不会相同。这也是一个单播地址。

看看offer包的数据

根据上图服务端向客户端提供了一个IP地址,还有这个ip的使用期限(30)分钟。子网掩码也有。

当时间50%过后,会牵扯到续约的问题。如果客户端不续约服务端会回收这个ip地址。

这个时候,客户端已经知道了服务端的mac和IP地址,因此在接下来的通信中客户端即可以向服务端发单播也可以发广播。但考虑到有多个dhcp的offer情况下,发广播的方式是合理的,并且大部分的主流设备也是这样的做的。

3)客户机发送DHCP Request广播包

这个Request为一个广播包,向服务端218.254 请求IP 218.133这个地址。

4)服务器发送DHCP ACK广播包

再次确定了租期时间和子网掩码。此刻dhcp的工作流程全部完成,客户端获取218.133地址,服务端地址池的ip会减一。

从流程上,用不常规思想想一想,如果我们改变自己mac地址,短时间内反复向服务器租借地址,直到服务器可提供的ip耗尽,至此正常的用户还能获得ip地址吗!

部署DHCP服务器

为了复现本次dhcp地址池消耗的攻击,本次我采windows2008r2服务器搭建dhcp服务,用kali进行攻击。

注意:添加之前请确保自己的windows服务器有一个静态ip,并且之后分配的ip处于这个网段。

本次计划:内网网段为192.168.100.1/24 DHCP服务器ip为192.168.100.253 。欲192.168.100.254 为网关地址

1.服务器添加新角色

2.选择DHCP 服务器一直点下一步

3.新建作用域;本次我在地址池设置了100个ip地址用来测试。

4.本次测试不涉及dhcpv6 ,选禁用,下一步。

5.安装完成

6.服务测试

在打开新的虚拟机置为同一个网络下,测试dhcp自动获取是否能够成功。(可以打开抓包软件,在学习下dhcp协议的流程)

win7已经过了ip,查看服务器地址池。

服务器这边地址租用果然也有了记录。

dhcp地址池消耗攻击

本次我们用kali 提供一款用具dhcpig

如果你的kali没有,那就安装一下

┌──(kali㉿kali)-[~] └─$ sudo dhcpig -h option -? not recognized

enhanced DHCP exhaustion attack.

Doc: GitHub - kamorin/DHCPig: DHCP exhaustion script written in python using scapy network library

Usage: pig.py [-h -v -6 -1 -s -f -t -a -i -o -l -x -y -z -g -r -n -c ] <interface>

Options: -h, --help <-- you are here :) -v, --verbosity ... 0 ... no (3) 1 ... minimal 10 ... default 99 ... debug

-6, --ipv6                     ... DHCPv6 (off, DHCPv4 by default)
-1, --v6-rapid-commit          ... enable RapidCommit (2way ip assignment instead of 4way) (off)
​
-s, --client-src               ... a list of client macs 00:11:22:33:44:55,00:11:22:33:44:56 (Default: <random>)
-O, --request-options          ... option-codes to request e.g. 21,22,23 or 12,14-19,23 (Default: 0-80)
​
-f, --fuzz                     ... randomly fuzz packets (off)
​
-t, --threads                  ... number of sending threads (1)
​
-a, --show-arp                 ... detect/print arp who_has (off)
-i, --show-icmp                ... detect/print icmps requests (off)
-o, --show-options             ... print lease infos (off)
-l, --show-lease-confirm       ... detect/print dhcp replies (off)
​
-g, --neighbors-attack-garp    ... knock off network segment using gratious arps (off)
-r, --neighbors-attack-release ... release all neighbor ips (off)
-n, --neighbors-scan-arp       ... arp neighbor scan (off)
​
-x, --timeout-threads          ... thread spawn timer (0.4)
-y, --timeout-dos              ... DOS timeout (8) (wait time to mass grat.arp)
-z, --timeout-dhcprequest      ... dhcp request timeout (2)
​
-c, --color                    ... enable color output (off)

sudo dhcpig eth1 -r -c

  • -c 彩色输出信息。

  • -r 释放全部已经分配的IP地址。

此刻kali会不断向dhcp服务端请求ip地址

此时的流量情况,(和此前分析的略有不同,服务端回的offer包是一个广播 不是单播,这也可见不同厂商有着不同的见解,不过这不影响dhcp的工作通信),有不断的dhcp请求。

也可以看出这款工具的默认设置的源Mac地址是以dead开头的

在回头看看windows服务器这边的情况

地址租用已经是满了。

此后再开网卡,试试能不能获取ip

可以看到我新开的主机一直请求dhcp discover,但是一直没有响应

攻击防御

1)攻击DHCP服务器:频繁的发送伪装DHCP请求,直到将DHCP地址池资源耗尽

防御:在交换机(管理型)的端口上做动态MAC地址绑定

2)伪装DHCP服务器攻击:hack通过将自己部署为DHCP服务器,为客户机提供非法ip地址

防御:在交换机上(管理型),除合法的DHCP服务器所在接口外,全部设置为禁止发送dhcp offer包

这篇关于【内网攻击】DHCP协议概念——地址池耗尽攻击的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/216287

相关文章

Java如何接收并解析HL7协议数据

《Java如何接收并解析HL7协议数据》文章主要介绍了HL7协议及其在医疗行业中的应用,详细描述了如何配置环境、接收和解析数据,以及与前端进行交互的实现方法,文章还分享了使用7Edit工具进行调试的经... 目录一、前言二、正文1、环境配置2、数据接收:HL7Monitor3、数据解析:HL7Busines

常用的jdk下载地址

jdk下载地址 安装方式可以看之前的博客: mac安装jdk oracle 版本:https://www.oracle.com/java/technologies/downloads/ Eclipse Temurin版本:https://adoptium.net/zh-CN/temurin/releases/ 阿里版本: github:https://github.com/

【Linux】应用层http协议

一、HTTP协议 1.1 简要介绍一下HTTP        我们在网络的应用层中可以自己定义协议,但是,已经有大佬定义了一些现成的,非常好用的应用层协议,供我们直接使用,HTTP(超文本传输协议)就是其中之一。        在互联网世界中,HTTP(超文本传输协议)是一个至关重要的协议,他定义了客户端(如浏览器)与服务器之间如何进行通信,以交换或者传输超文本(比如HTML文档)。

【VUE】跨域问题的概念,以及解决方法。

目录 1.跨域概念 2.解决方法 2.1 配置网络请求代理 2.2 使用@CrossOrigin 注解 2.3 通过配置文件实现跨域 2.4 添加 CorsWebFilter 来解决跨域问题 1.跨域概念 跨域问题是由于浏览器实施了同源策略,该策略要求请求的域名、协议和端口必须与提供资源的服务相同。如果不相同,则需要服务器显式地允许这种跨域请求。一般在springbo

webapp地址

F:\LSP\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\wtpwebapps

速盾高防cdn是怎么解决网站攻击的?

速盾高防CDN是一种基于云计算技术的网络安全解决方案,可以有效地保护网站免受各种网络攻击的威胁。它通过在全球多个节点部署服务器,将网站内容缓存到这些服务器上,并通过智能路由技术将用户的请求引导到最近的服务器上,以提供更快的访问速度和更好的网络性能。 速盾高防CDN主要采用以下几种方式来解决网站攻击: 分布式拒绝服务攻击(DDoS)防护:DDoS攻击是一种常见的网络攻击手段,攻击者通过向目标网

【Go】go连接clickhouse使用TCP协议

离开你是傻是对是错 是看破是软弱 这结果是爱是恨或者是什么 如果是种解脱 怎么会还有眷恋在我心窝 那么爱你为什么                      🎵 黄品源/莫文蔚《那么爱你为什么》 package mainimport ("context""fmt""log""time""github.com/ClickHouse/clickhouse-go/v2")func main(

Jenkins 插件 地址证书报错问题解决思路

问题提示摘要: SunCertPathBuilderException: unable to find valid certification path to requested target...... 网上很多的解决方式是更新站点的地址,我这里修改了一个日本的地址(清华镜像也好),其实发现是解决不了上述的报错问题的,其实,最终拉去插件的时候,会提示证书的问题,几经周折找到了其中一遍博文

2024.9.8 TCP/IP协议学习笔记

1.所谓的层就是数据交换的深度,电脑点对点就是单层,物理层,加上集线器还是物理层,加上交换机就变成链路层了,有地址表,路由器就到了第三层网络层,每个端口都有一个mac地址 2.A 给 C 发数据包,怎么知道是否要通过路由器转发呢?答案:子网 3.将源 IP 与目的 IP 分别同这个子网掩码进行与运算****,相等则是在一个子网,不相等就是在不同子网 4.A 如何知道,哪个设备是路由器?答案:在 A

【MRI基础】TR 和 TE 时间概念

重复时间 (TR) 磁共振成像 (MRI) 中的 TR(重复时间,repetition time)是施加于同一切片的连续脉冲序列之间的时间间隔。具体而言,TR 是施加一个 RF(射频)脉冲与施加下一个 RF 脉冲之间的持续时间。TR 以毫秒 (ms) 为单位,主要控制后续脉冲之前的纵向弛豫程度(T1 弛豫),使其成为显著影响 MRI 中的图像对比度和信号特性的重要参数。 回声时间 (TE)