第3章 第18.1天
ICMP攻防实战:网络协议的攻防演练场
大家好,今天我们从安全工程师的视角拆解ICMP协议的攻防技术。通过实验室的真实攻防演练,我会展示如何利用ICMP协议进行网络侦察与防御。我们将使用Kali Linux和Windows 10构建实验环境,模拟真实攻击场景。
一、实验环境搭建:攻防沙箱的构建
核心设备:
- 攻击机:Kali Linux 2023.1(IP:192.168.146.4)
- 靶机:Windows 10 Pro(IP:192.168.146.5)
网络配置验证:
# Kali终端执行(确认网络连通性)
ping -c 4 192.168.146.5
# 输出示例:
# 64 bytes from 192.168.146.5: icmp_seq=1 ttl=128 time=0.8ms
# 64 bytes from 192.168.146.5: icmp_seq=2 ttl=128 time=0.6ms
关键准备步骤:
- 关闭Windows防火墙(实验期间):
# Windows管理员终端
Set-NetFirewallProfile -Profile Domain,Public,Private -Enabled False
- 创建虚拟机快照(重要!):
# VirtualBox创建快照命令
VBoxManage snapshot "Windows10-Target" take "Pre-ICMP-Attack"
二、攻击原理:ICMP洪水攻击剖析
攻击本质:伪造海量ICMP请求耗尽目标资源
攻击特征:
- 伪造源IP:规避基础ACL过滤
- 超高频率:超出正常处理能力
- 微小载荷:最大化包数量/秒
graph TB
A[攻击机] -->|伪造源IP| B[靶机]
subgraph 攻击流量
A --> C1[192.168.1.100]
A --> C2[10.0.0.55]
A --> C3[172.16.0.22]
end
B --> D[资源耗尽]
三、攻击实施:Hping3实战演示
攻击命令解析:
sudo hping3 \
--icmp \# 指定ICMP协议
--rand-source \# 随机化源IP(绕过基础防御)
--flood \# 洪水模式(最大化发包速率)
192.168.146.5# 目标IP
实时监控靶机状态:
# Windows终端监控资源
Get-Counter '\Processor(*)\% Processor Time'
# 输出示例:
# 计数器路径实例名称值
# -------------------------
# \\...\% Processor Time _Total98.7%
正常状态:<10%,攻击时可达100%
四、流量分析:Wireshark取证技术
抓包策略:
# 过滤表达式
icmp && ip.dst==192.168.146.5
攻击特征识别:
- 异常频率:每秒数千请求(正常网络<100/s)
No.TimeSourceDestinationProtocol Length Info
123450.000001192.168.1.100192.168.146.5ICMP74Echo request
123460.00001210.0.0.55192.168.146.5ICMP74Echo request
123470.000019172.16.0.22192.168.146.5ICMP74Echo request
- TTL异常:伪造源IP导致TTL不一致
SrcIP:192.168.1.100 TTL:255 → 可能为局域网伪造
SrcIP:10.0.0.55 TTL:64→ 可能为Linux主机
- 载荷模式:固定长度/内容(多数攻击工具特征)
五、防御策略:三层防护体系
1. 操作系统层(Windows)
# 启用防火墙并限制ICMP
Set-NetFirewallProfile -Profile * -Enabled True
New-NetFirewallRule -DisplayName "Block ICMP Flood" `
-Protocol ICMPv4 -IcmpType 8 `
-Action Block -RemoteAddress 192.168.146.4
2. 网络设备层(Cisco ACL)
! 创建ACL限制ICMP速率
access-list 150 permit icmp any 192.168.146.0 0.0.0.255 echo-reply
access-list 150 permit icmp any 192.168.146.0 0.0.0.255 time-exceeded
access-list 150 deny icmp any 192.168.146.0 0.0.0.255 echo
access-list 150 permit ip any any
!
! 应用速率限制
rate-limit input access-group 150 512000 80000 80000 conform-action transmit exceed-action drop
3. 入侵检测层(Suricata规则)
# suricata.yaml 自定义规则
alert icmp $EXTERNAL_NET any -> $HOME_NET any (
msg:"ICMP Flood Attack";
flow:stateless;
threshold: type both, track by_dst, count 500, seconds 1;
sid:1000001;
rev:1;
)
六、攻击溯源:日志分析技术
关键日志源:
- 防火墙拦截日志
# Windows防火墙日志
2023-06-05 14:22:05 DROP ICMP 192.168.1.100 -> 192.168.146.5
- 路由器流量统计
show ip access-lists 150
# 输出:
# Extended IP access list 150
#10 deny icmp any 192.168.146.0/24 echo (512 matches)
- 网络流量元数据
# 使用tshark提取攻击特征
tshark -r attack.pcap -Y "icmp" -T fields -e ip.src | sort | uniq -c | sort -nr
# 输出:
#512 192.168.1.100
#510 10.0.0.55
#508 172.16.0.22
七、实验总结:攻防对抗的本质
- 侦察价值:
- ICMP扫描仍是网络探测的基础手段
# 基础网络扫描
nmap -PE -sn 192.168.146.0/24
- 防御原则:
- 默认拒绝 → 最小化开放
- 速率限制 → 抑制洪水攻击
- 深度检测 → 识别异常模式
- 现代演进:
- 云环境禁用ICMP(AWS安全组)
- 零信任架构替代传统边界防御
实验建议:
- 尝试在防护开启状态下重试攻击
- 分析不同攻击工具(Ping of Death/Smurf)的特征差异
- 编写自定义Snort规则检测特定攻击模式
当你在深夜守护校园网络时,ICMP既是助手也是威胁。理解它的双面性,才能构建更安全的网络环境。
感谢浏览和学习,作者:鱼油YOU,转载请注明原文链接:https://www.cnblogs.com/OmegaYOU3/p/19020810,或者可以➕主播WX:OmegaAnimeman_desu;QQ:3819054512
浙公网安备 33010602011771号