tcpdump分析ICMP协议

时间:2022-06-20
本文章向大家介绍tcpdump分析ICMP协议,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

IP协议是一种无连接的,不可靠的数据包协议,它并不能保证数据一定被送达,那么我们要保证数据送到就需要通过其它模块来协助实现,这里就引入的是ICMP协议。

ICMP协议字段解释


ICMP协议

  • ICMP类型

ICMP报文类型

  • 代码:不同的ICMP类型,可能还需要代码做进一步的区分,比如type=3(终点不可达),就区分网络不可达(0)主机不可达(1)协议不可达(2)端口不可达(3)

更多的类型和代码请参看:https://www.ibm.com/support/knowledgecenter/ja/SS42VS_7.2.7/com.ibm.qradar.doc/c_DefAppCfg_guide_ICMP_intro.html

tcpdump抓取二进制数据


[tenmao@localhost ~]$ sudo tcpdump -i ens33 icmp -xnt -vvvv
tcpdump: listening on ens33, link-type EN10MB (Ethernet), capture size 262144 bytes
IP (tos 0x0, ttl 64, id 57149, offset 0, flags [DF], proto ICMP (1), length 84)
    192.168.58.100 > 14.215.177.39: ICMP echo request, id 18222, seq 1, length 64
    0x0000:  4500 0054 df3d 4000 4001 a060 c0a8 3a64
    0x0010:  0ed7 b127 0800 cbae 472e 0001 5d71 a35c
    0x0020:  0000 0000 1e81 0700 0000 0000 1011 1213
    0x0030:  1415 1617 1819 1a1b 1c1d 1e1f 2021 2223
    0x0040:  2425 2627 2829 2a2b 2c2d 2e2f 3031 3233
    0x0050:  3435 3637
IP (tos 0x0, ttl 128, id 125, offset 0, flags [none], proto ICMP (1), length 84)
    14.215.177.39 > 192.168.58.100: ICMP echo reply, id 18222, seq 1, length 64
    0x0000:  4500 0054 007d 0000 8001 7f21 0ed7 b127
    0x0010:  c0a8 3a64 0000 d3ae 472e 0001 5d71 a35c
    0x0020:  0000 0000 1e81 0700 0000 0000 1011 1213
    0x0030:  1415 1617 1819 1a1b 1c1d 1e1f 2021 2223
    0x0040:  2425 2627 2829 2a2b 2c2d 2e2f 3031 3233
    0x0050:  3435 3637

ICMP协议头部对照解析


IP (tos 0x0, ttl 64, id 57149, offset 0, flags [DF], proto ICMP (1), length 84)
    192.168.58.100 > 14.215.177.39: ICMP echo request, id 18222, seq 1, length 64
    0x0000:  4500 0054 df3d 4000 4001 a060 c0a8 3a64
    0x0010:  0ed7 b127 0800 cbae 472e 0001 5d71 a35c

前面20字节是IP协议头,之后就是ICMP协议头:是0800 cbae 472e 0001部分

字段

协议

内容

对应的tcpdump文字描述

0x04

ICMP消息类型

回送请求

ICMP echo request

0x00

ICMP代码

0xcbae

16位校验和

0x472e

ICMP数据标志

ICMP的ID

length 84

0x1f4c

16位的标识

数据报标识

id 18222

0x0001

ICMP序号

ICMP序号

seq 1

参考