“A9 Team 甲方攻防团队,成员来自某证券、微步、青藤、长亭、安全狗等公司。成员能力涉及安全运营、威胁情报、攻防对抗、渗透测试、数据安全、安全产品开发等领域,持续分享安全运营和攻防的思考和实践。”
以下针对常见的TCP、UDP进行简单解析
先来看看icmp协议数据包结构:
数据包都是由数据帧组成,wireshark抓包可以看到ICMP数据包基本结构:
Frame:物理层数据帧
Ethernet II:数据链路层以太网帧头部信息
Internet Protocol Version:网络层IP数据包头部信息
Internet Control Message Protocol:网络层控制消息协议信息
其中,物理层数据帧主要展示的是数据发送使用的无线网络接口、协议类型、帧序号、长度等基本信息;
数据链路层以太网帧主要展示源目地址的物理地址;
TCP 协议数据包结构:
Frame:物理层数据帧
Ethernet II:数据链路层以太网帧头部信息
Internet Protocol Version:网络层IP数据包头部信息
Transmission Control Protocol:传输层TCP数据段头部信息
Date:数据
我再虚拟机开个http服务,然后测试端口。最初由于我没有关闭防火墙,抓包返回的是icmp协议包,目标端口无法访问。这里需要插入一点:由于TCP是面向连接的,在发送握手包时会检测对端IP、端口的连通情况,如果无法连通到目的端口,就会返回icmp差错包,源IP发送多个retransmission包都没响应后就会断开请求,即握手失败。
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:查询服务器状态
以上是对网络中常见数据包的简单解析,数据包中的每个协议中的字段都对应数据包的十六进制数据,这里就不一一列举了(如下图)。
流~