常见协议数据包解析

文摘   科技   2024-04-03 10:04   广东  

“A9 Team 甲方攻防团队,成员来自某证券、微步、青藤、长亭、安全狗等公司。成员能力涉及安全运营、威胁情报、攻防对抗、渗透测试、数据安全、安全产品开发等领域,持续分享安全运营和攻防的思考和实践。”


以下针对常见的TCP、UDP进行简单解析

先来看看icmp协议数据包结构:


数据包都是由数据帧组成,wireshark抓包可以看到ICMP数据包基本结构:

Frame:物理层数据帧

Ethernet II:数据链路层以太网帧头部信息

Internet Protocol Version:网络层IP数据包头部信息

Internet Control Message Protocol:网络层控制消息协议信息

其中,物理层数据帧主要展示的是数据发送使用的无线网络接口、协议类型、帧序号、长度等基本信息;

数据链路层以太网帧主要展示源目地址的物理地址;

网络层IP数据包主要展示源目IP地址,协议版本,包长、偏偏移量、校验和等信息。

网络层控制消息协议信息主要展示ICMP返回类型、校验和、标识符等信息。如果目的IP无响应后禁ping则会有个No response seen字段,展示未响应ping包的基本信息。

TCP 协议数据包结构:

Frame:物理层数据帧

Ethernet II:数据链路层以太网帧头部信息

Internet Protocol Version:网络层IP数据包头部信息

Transmission Control Protocol:传输层TCP数据段头部信息

Date:数据

我再虚拟机开个http服务,然后测试端口。最初由于我没有关闭防火墙,抓包返回的是icmp协议包,目标端口无法访问。这里需要插入一点:由于TCP是面向连接的,在发送握手包时会检测对端IP、端口的连通情况,如果无法连通到目的端口,就会返回icmp差错包,源IP发送多个retransmission包都没响应后就会断开请求,即握手失败。

关闭防火墙后,测试端口开始正常的TCP三次握手,握手成功后开始发送数据,因为TCP是有序的,每个数据都会发送到服务端后,服务端给出应答(已收到数据),然后请求方继续发送数据,断开连接查看四次挥手数据包可以看到,仅是标记位的确认。

UDP 协议数据包结构:

Frame:物理层数据帧

Ethernet II:数据链路层以太网帧头部信息

Internet Protocol Version:网络层IP数据包头部信息

User Datagram Protocol:传输层UDP数据段头部信息

Date:数据

前面三个结构内容与TCP协议数据包一致,主要是User Datagram Protocol 展示内容不同,因为UDP是无序传输,因此这层结构剔除了TCP 的标志位、下一段数据编号等。且由于不是面向连接的,无需识别端口开放情况,只要有到目标主机的路由,即可发送数据。

DNS 协议数据包结构:

Frame:物理层数据帧

Ethernet II:数据链路层以太网帧头部信息

Internet Protocol Version:网络层IP数据包头部信息

User Datagram Protocol:传输层UDP数据段头部信息

Domain Name System(query/response):DNS 查询/应答头部信息

其中:

DNS 标志位中:

QR:1表示响应报文,0表示查询报文;

Opcode:0为标准查询,1为反向查询,2位服务器状态请求;

RD:递归查询;

Rcode:0表示没有差错,3表示名字差错(仅在DNS应答包)

Query中:

Type:A 代表ipv4地址,AAAA 代表ipv6地址,CNAME代表别名,NS代表授权域名服务器

Class:IN:internat数据,CH:查询服务器状态

以上是对网络中常见数据包的简单解析,数据包中的每个协议中的字段都对应数据包的十六进制数据,这里就不一一列举了(如下图)。




流~










A9 Team
A9 Team 甲方攻防团队,成员来自某证券、微步、青藤、长亭、安全狗等公司。成员能力涉及安全运营、威胁情报、攻防对抗、渗透测试、数据安全、安全产品开发等领域,持续分享安全运营和攻防的思考和实践,期望和朋友们共同进步,守望相助,合作共赢。
 最新文章