一、介绍
Smurf是一种分布式拒绝服务(DDoS),利用IP协议中的ICMP(Internet Control Message Protocol)请求和网络的广播特性,使目标系统被大量ICMP回复包淹没,从而导致系统无法正常提供服务。以下是对Smurf攻击的详细介绍:
1.1 攻击原理
- ICMP Echo请求:
- 正常情况下,ICMP Echo请求(也称为Ping)用于测试网络连通性。主机A发送ICMP Echo请求给主机B,主机B回复ICMP Echo应答。
- 广播地址:
- 网络中的广播地址允许将一个数据包发送给网络内的所有设备。例如,一个IP子网的广播地址是该子网中的最高IP地址。
- 伪造源地址:
- 攻伪造源IP地址为目标系统的IP地址,向广播地址发送ICMP Echo请求。
- 流量放大:
- 广播地址上的所有主机会收到该ICMP Echo请求,并各自发送ICMP Echo应答到目标系统。由于这些应答数据包都是目标系统主动请求的,防火墙和路由器通常不会阻止这些返回流量。
1.2 步骤
- 者伪造源IP地址:
- 者构造ICMP Echo请求数据包,将源IP地址伪造成目标系统的IP地址。
- 向广播地址发送请求:
- 攻击者将伪造的ICMP Echo请求发送到某个子网的广播地址。例如,如果子网是192.168.1.0/24,广播地址是192.168.1.255。
- 子网中的所有主机响应:
- 广播地址上的所有主机会接收到该ICMP Echo请求,并认为是目标系统发出的请求,因此会向目标系统发送ICMP Echo应答。
- 目标系统被淹没:
- 目标系统收到大量ICMP Echo应答数据包,导致网络带宽和系统资源被迅速耗尽,最终无法正常响应其他合法请求。
1.3 影响
- 网络带宽耗尽:
- 大量ICMP Echo应答数据包占用目标系统的网络带宽,导致网络性能下降甚至瘫痪。
- 系统资源耗尽:
- 目标系统处理大量无用的ICMP Echo应答数据包,消耗大量的CPU和内存资源,可能导致系统崩溃或重启。
- 拒绝服务:
- 目标系统由于无法处理正常请求,导致服务中断,用户无法访问系统提供的服务。
1.4 防御措施
- 禁用IP广播地址响应:
- 在路由器和交换机上配置ACL(访问控制列表),阻止对广播地址的ICMP Echo请求,防止内部网络设备响应此类请求。
- 配置防火墙:
- 配置防火墙规则,阻止外部网络向内部网络广播地址发送ICMP Echo请求。
- 限制ICMP流量:
- 配置防火墙和路由器限制ICMP流量的速率,防止大量ICMP请求和应答数据包影响网络性能。
- 入侵检测系统(IDS)和入侵防御系统(IPS):
- 部署IDS/IPS,实时监控网络流量,检测并阻止异常的ICMP流量。
- 网络分段:
- 使用VLAN(虚拟局域网)技术将网络分段,减少广播域的范围,限制影响的范围。
- 禁用不必要的ICMP功能:
- 禁用网络设备和服务器上不必要的ICMP功能,减少潜在的面。
二、实验环境
攻击者:192.168.134.147
受害者:192.168.134.148
三、实操演示:
使用hping3
进行攻击(在攻击者设备上执行):
sudo hping3 -1 -a 192.168.1.100 -c 10000 192.168.1.255
参数解释:
-1
:使用ICMP协议。
-a 192.168.134.148
:伪造源IP地址为目标系统192.168.134.148。-c 10000
:发送10000个请求。192.168.134.255
:广播地址。
受害者视角: