目录
DHCP
介绍:
DHCP(Dynamic Host Configuration Protocol,动态主机配置协议)是一种网络管理协议,用于自动分配IP地址和其他网络配置参数。
DHCP采用客户端/服务器模型,主要功能是:为网络中的每个设备分配唯一的IP地址;提供子网掩码、默认网关、DNS服务器等信息;跟踪和管理IP地址租用期限,以避免地址冲突。
DHCP的工作流程包括四个阶段:发现(Discover)、提供(Offer)、请求(Request)和确认(Acknowledge),简称DORA过程。这四个阶段确保了网络设备能够自动获取IP地址并配置相关网络参数,从而简化了网络管理,减少了手动配置的错误,提高了网络的可靠性和灵活
DHCP安全性:
- 易受攻击:恶意用户可能部署未经授权的DHCP服务器,提供错误或恶意的网络配置,导致网络中断或中间人攻击。
- 地址池耗尽风险:攻击者可能通过大量伪造的DHCP请求耗尽地址池,导致合法用户无法获得IP地址。
- 信息泄露问题:DHCP请求和应答消息可能包含敏感信息,如客户端的硬件地址、主机名等,可能被攻击者利用。
为提高DHCP的安全性,可以采取以下措施:使用DHCP Snooping技术识别和阻止未经授权的DHCP服务器;限制DHCP请求速率,使用IP源守卫技术防止伪造请求1;使用加密技术保护DHCP通信,限制对敏感信息的访问1;并确保DHCP服务器的配置正确无误,定期检查和更新设置
DHCP常见的攻击手段:
- DHCP饿死攻击:攻击者通过发送大量DHCP DISCOVER请求,耗尽DHCP地址池中的IP地址,导致DHCP服务器无法为正常主机分配IP地址。
- DHCP仿冒攻击:攻击者在网络中部署恶意的DHCP服务器,拦截并篡改客户端的DHCP响应报文,使其获取错误的网络配置信息。
- DHCP中间人攻击:攻击者利用ARP机制,让DHCP客户端和服务器学习到错误的IP-MAC映射关系,从而实现中间人攻击。
- DHCP报文伪造攻击:攻击者通过伪造DHCP报文来欺骗DHCP服务器或客户端,以达到恶意目的
DNS
介绍:
DNS(Domain Name System,域名系统)是互联网的一项核心服务,用于将域名和IP地址相互映射。
- 基本概念:DNS是分布式数据库,使用户能通过域名访问网站或服务,无需记忆复杂的IP地址。域名通常由英文字母、数字和符号组成,代替IP地址,便于用户访问和记忆。
- DNS解析:是将域名转换为IP地址的过程,使用户计算机能够访问目标网站或服务。
- DNS服务器:专门负责存储域名与IP地址映射关系的服务器,当用户发起域名查询请求时,DNS服务器会返回相应的IP地址。
- DNS的重要性:DNS作为互联网的基础服务,对网络的正常运行至关重要,它使网络通信更加便捷和高效
DNS常见的攻击方式:
- DNS缓存投毒攻击:攻击者向DNS缓存服务器注入恶意的虚假DNS响应,导致用户访问错误的或恶意的网站。
- DNS劫持:攻击者篡改用户的DNS设置,将域名解析到攻击者控制的IP地址,以窃取用户信息或破坏网络服务。
- DNS放大攻击:攻击者利用DNS服务器的回应报文比请求报文大的特点,向目标服务器发送大量响应报文,耗尽其带宽。
- DNS隧道:攻击者通过DNS协议隐藏数据,绕过网络安全防护设备,实现恶意数据的传输和命令的控制
DNS&DHCP攻击实战演练:
介绍:
1.随机的攻击方式,在局域网内,通过构造一个假的DHCP服务器,在内网机器获取DHCP时看谁dhcp的响应速度快, 哪个快哪个就是DNS或者DHCP的IP地址,可以用于钓鱼(在同一局域网内)
2.我们通过构造假的DHCP,让受害者获取一个假的IP,导致上不了网
3.钓鱼:比如说你访问百度网页,你在DHCP配置中设置了百度跳转页面,受害者只要访问百度,就会重定向到其他网页,可以做一个登录框,进行攻击
4.还有一种DNS攻击,修改host解析,因为在DNS解析的时候首先是去解析host内的
环境配置:
这里我是用的centos7和一台Windows10,来进行DHCP和DNS劫持进行攻击
先配置DNS服务器
1.下载DNS服务
yum install bind bind-utils -y
2.配置DNS
vim /etc/named.conf
这里三个地方需要改,监听机器设置成攻击机器的IP,下面两个改成any
3.进行DNS解析配置:
vim /etc/named.rfc1912.zones
因为这里实验的是将百度重定向,所以需要添加一个解析
配置DHCP服务器:
1.下载DHCP服务
yum install dhcp
2.配置DHCP服务
vi /etc/dhcp/dhcpd.conf
修改第31行如下
1.第一行需填写攻击机器IP网段
2.第二行是网段的范围,可以随便设置
3.第三行是网关地址
4.第四行是用于向网络中的所有主机发送数据包的特殊地址,即广播地址
5.第五行是DNS地址
这一步是当/etc/dhcp/dhcpd.conf配置文件为空时,可以执行以下操作(不为空跳过)
cp /usr/share/doc/dhcp*/dhcpd.conf.example /etc/dhcp/dhcpd.conf
配置恶意跳转页面:
cd /var/named
cp -p named.localhost baidu.zone
vim /baidu.zone
新增一个解析地址,这个是将www.baidu.com这个网页重定向到我们钓鱼的网页,这里只是演示,我定向到了攻击者的IP地址
重启服务器、关闭防火墙:
systemctl start named
systemctl stop firewalld
setenforce 0
修改域名地址
vim /etc/resolv.conf
修改成我们的攻击机器IP
重启一下DHCP和DNS服务:
service named restart
service dhcpd restart
注意一点:这里我选的是仅主机模式,只有这两台实验机器可以上网
打开虚拟网络编辑器,取消DHCP服务自动获取IP
这里的两台机器都设置成VMnet1
利用:
配置好以后
打开Windows10机器
查看IP地址:
ipconfig/all
配置成功
这里DNSIP是128,那么我们修改DNS地址和DHCP地址为22看是否成功
Windows10:
清除缓存
ipconfig/release
重新获取IP
ipconfig/renew
查看修改后IP信息
ipconfig/all
修改成功
因为centos7开启了apach服务,访问一下
可以访问,之前配置了百度重定向,访问百度会跳转到其他网页
访问百度
重定向到攻击机器的阿帕奇服务,这个就是DNS劫持,我们可以通过DNS劫持来进行构造钓鱼网站,因为这里只有两台机器可以上网,在实际情况中,可以构造一个登录页面
排查:
1.确认DNS和DHCP是不是真实的服务器: ipconfig/all
2.排查host文件是否有静态绑定(host路径:windows/system32/drivers/etc)
3.重启浏览器,确认浏览器是否有缓存
防御:
1.网络接入认证
2.定期进行网络扫描
3.dhcp Snooping开启,防止非法的DHCP服务