Fraggle攻击原理主机收到目的端口为7(ECHO)和19(Chargen)的UDP报文后会做出响应。主机收到目的端口为7的UDP报文后,会像ICMP Echo Reply一样对接收到的内容进行响应;当主机收到目的端口为19的UDP报文时,会生成一串字符流。就像ICMP一样,这两个UDP端口会产生大量回复消息,占用网络带宽。
攻击者向攻击目标所在的网络发送UDP消息。报文的源地址是被攻击主机的地址,目的地址是被攻击主机所在子网的广播地址,目的端口号为7或19。子网中每个启用该功能的系统都会向被攻击的主机发送响应消息,产生大量流量,占用全部带宽,导致受害网络阻塞或受害主机崩溃。即使子网上的系统不启动这些功能,也会产生类似ICMP的不可达消息,从而仍然消耗带宽。
RFC 864中定义了Chargen协议。Chargen字符生成器协议是一个简单的网络协议。这种协议设计的目的是调试TCP或UDP协议程序,测量连接的带宽或微调QoS等。它的默认端口是19,分为基于TCP和基于UDP两种方式。在TCP模式下建立连接后,服务器将继续向客户端传输任何字符,直到客户端关闭连接。在UDP模式下,服务器每次收到客户端发来的UDP包,都会返回一个随机长度为0~512字节的包,包的有效载荷可以是任意字符。
Chargen协议的初衷是测试网络,没有严格的访问控制和流量控制机制。在UDP模式下,任何主机都可以向开放chargen服务的主机请求服务。这种简单的请求-回复模式允许攻击者伪造源地址向chargen服务发送请求,但chargen服务不验证源地址的真实性,因此它向源地址发送回复包,这导致该服务被用于DOS攻击。
实现方式攻击命令实现方式sudohping 3-UDP-p19 192 . 168 . 254 . 255-a 192 . 168 . 254 . 11-flood
解释:
- udp:将发送的数据包设置为UDP;
-p 19:攻击UDP 19的目标端口
192.168.254.255:受害者所在子网的广播地址;
-a 192.168.254.3:受害者的IP;
-c 10:只发送10条攻击消息;
-fast:I u 10000的别名(每秒10个数据包)
-更快:i u1000的别名(每秒100个数据包)
- flood:尽可能快地发送数据包。不显示回复。
模拟攻击场景Windows 10配置192.168.254.12,启用Chargen服务,关闭系统防火墙;
Windows 10配置192.168.254.3,启用Chargen服务,关闭系统防火墙;
被攻击主机的Windows xp配置为192 . 168 . 254 . 11;
攻击主机kali linux 2022.1配置192 . 168 . 254 . 7;
备注:Windows系统的Chargen服务默认未安装,安装方法如下图所示;
打开控制面板,程序,启用或禁用Windows功能,选择简单tcpip服务(即echo、daytime等),如下图所示;
管理员打开命令提示符,输入命令“net start simptcp”启动服务,输入命令“netstatano | findstr 0:19”查看服务监听状态,如下图所示;
数据包捕获取证攻击主机发送攻击指令“sudo hp3-UDP-p19 192 . 168 . 254 . 255-a 192 . 168 . 254 . 11-C2”
攻击者伪造攻击者向其所属IP的子网广播地址发送攻击报文,子网内所有在线主机都能收到报文;攻击者从其他在线主机(Chargen服务启用)接收响应消息,响应消息的大小(1514字节)远大于请求消息的大小(60字节)。如下图所示,在受害者的主机上捕获的消息。
结论:利用Chargen服务可以进行扩大的DOS攻击;