🌀 鱼油のB10g

✦ 不定期更新技术随想

✦ 分享奇妙发现

📌 近期动态:

探索AI和工具使用...

第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

关键准备步骤

  1. 关闭Windows防火墙(实验期间):
# Windows管理员终端
Set-NetFirewallProfile -Profile Domain,Public,Private -Enabled False
  1. 创建虚拟机快照(重要!):
# 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

攻击特征识别

  1. 异常频率:每秒数千请求(正常网络<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
  1. TTL异常:伪造源IP导致TTL不一致
SrcIP:192.168.1.100 TTL:255 → 可能为局域网伪造
SrcIP:10.0.0.55 TTL:64→ 可能为Linux主机
  1. 载荷模式:固定长度/内容(多数攻击工具特征)

五、防御策略:三层防护体系

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;
)

六、攻击溯源:日志分析技术

关键日志源

  1. 防火墙拦截日志
# Windows防火墙日志
2023-06-05 14:22:05 DROP ICMP 192.168.1.100 -> 192.168.146.5
  1. 路由器流量统计
show ip access-lists 150
# 输出:
# Extended IP access list 150
#10 deny icmp any 192.168.146.0/24 echo (512 matches)
  1. 网络流量元数据
# 使用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

七、实验总结:攻防对抗的本质

  1. 侦察价值
  • ICMP扫描仍是网络探测的基础手段
# 基础网络扫描
nmap -PE -sn 192.168.146.0/24
  1. 防御原则
  • 默认拒绝 → 最小化开放
  • 速率限制 → 抑制洪水攻击
  • 深度检测 → 识别异常模式
  1. 现代演进
  • 云环境禁用ICMP(AWS安全组)
  • 零信任架构替代传统边界防御

实验建议

  1. 尝试在防护开启状态下重试攻击
  2. 分析不同攻击工具(Ping of Death/Smurf)的特征差异
  3. 编写自定义Snort规则检测特定攻击模式

当你在深夜守护校园网络时,ICMP既是助手也是威胁。理解它的双面性,才能构建更安全的网络环境。

posted on 2025-08-04 07:47  鱼油YOU  阅读(59)  评论(0)    收藏  举报