ICMP
协议抓包分析-wireshark
ICMP
- (Internet Control Message Protocol
,网际报文协议)是Internet
协议族的核心协议之一,也可称为是网际控制报文协议,是TCP/IP
协议族的一个子协议,它主要用在网络计算机操作系统之间发送出错信息。例如:提示请求服务不可用、主机路由不可达等,通常是IP
协议的一个集成部分。一般不用于端系统之间传送数据,不被用户网络程序直接使用。
是一种面向无连接的协议,用于传输出错报告控制信息,他是一个重要的协议,对于网络安全具有极其重要的意义。
学习ICMP
协议对于网络安全具有极其重要的意义。ICMP
协议本身的特点决定了它非常容易被用于攻击网络上的路由器和主机。例如:用户可以利用操作系统规定的ICMP
数据包最大不能超过64KB
这一规定,向主机发起Ping of Death
(死亡之Ping
)攻击,原理就是当ICMP
数据包的尺寸超过64KB
上限时,主机会出现内存非配错误,导致TCP/IP
堆栈崩溃,致使主机死机。另外也可以使用大量的ICMP
进行攻击,称为ICMP
风暴。
捕获ICMP
数据
在一个主机上,开启wireshark
并开始ping
一个网址,ping
将ping
的过程抓获
ICMP
首部
以上表格中ICMP
首部各个字段含义如下:
- 类型
-
Code
:RFC
子规范类型 - 校验和:用来保证
ICMP
数据的完整性 - 可变域:依赖于类型和
Code
域的部分
类型
类型 |
| 描述 |
8 | 0 | 回显请求 |
10 | 0 | 路由请求 |
13 | 0 | 时间戳请求 |
15 | 0 | 信息请求(废弃) |
17 | 0 | 地址掩码请求 |
类型
类型 | 描述 |
0 | 相应应答 |
3 | 目标主机不可达 |
4 | 源点抑制 |
5 | 重定向 |
8 | 相应请求 |
9 | 路由器公告 |
10 | 路由器请求 |
11 | 超时 |
12 | 参数问题 |
echo
和ping
经常会有人搞混淆,但记住Ping
实际上是一个工具的名字,Ping
工具用于发送ICMP echo
请求数据包