项目笔记:信息收集之神器wireshark

神器wireshark

        Wireshark 是一款功能强大的开源网络协议分析工具,广泛应用于网络故障排查、安全分析、协议开发及教学等领域

1. 主要功能

  • 实时抓包与离线分析:捕获网络接口上的数据包,并支持对已保存的抓包文件进行深入分析。
  • 协议解码:支持数千种网络协议的解码,包括常见的 HTTP、TCP、UDP、DNS、SSL/TLS 等,以及工业控制协议、物联网协议等。
  • 流量过滤:通过强大的显示过滤器(Display Filter)和捕获过滤器(Capture Filter),用户可以精准筛选感兴趣的数据包。
  • 统计分析:提供协议分布图、会话统计、流量图表等可视化工具,帮助用户快速定位网络问题。
  • 数据重组:支持对 TCP 会话中的数据流进行重组,方便查看完整的文件传输或应用层数据。
  • 自定义功能:通过 Lua 脚本扩展功能,用户可以编写自定义的解码器、过滤器或工具。

2,基本使用方法

        打开wirehark

        

可以看到需要选择网卡,我这里选择WLAN,随便制造点流量,比如说ping 一下百度之类的

WireShark 主要分为这几个界面

1. Display Filter(显示过滤器),  用于过滤

2. Packet List Pane(包列表), 显示捕获到的封包, 有源地址和目标地址,端口号。 颜色不同,代表

3. Packet Details Pane(包详情), 显示封包中的字段

4. Dissector Pane(16进制数据)

5. Miscellanous(地址栏,杂项)

过滤器语法

其显示过滤器(Display Filter)用于筛选和显示符合特定条件的数据包。以下是 Wireshark 显示过滤器的一些基本语法和常见用法:

类别字段/操作符说明示例
基本逻辑&&逻辑与(AND)ip.addr == 192.168.1.1 && tcp.port == 80
``
!逻辑非(NOT)!http
IP 地址ip.src源 IP 地址ip.src == 192.168.1.100
ip.dst目标 IP 地址ip.dst == 192.168.1.1
ip.addr源或目标 IP 地址ip.addr == 192.168.1.1
端口tcp.srcportTCP 源端口tcp.srcport == 80
tcp.dstportTCP 目标端口tcp.dstport == 443
tcp.portTCP 源或目标端口tcp.port == 22
协议协议名直接使用协议名称作为过滤条件httptcpudpdns
数据包长度frame.len数据包总长度frame.len > 1500
时间frame.time_epoch时间戳(秒)frame.time_epoch > 1696000000
HTTPhttp.request.methodHTTP 请求方法http.request.method == "GET"
http.response.codeHTTP 响应状态码http.response.code == 200
http.hostHTTP 请求的主机名http.host contains "example.com"
DNSdns.qry.nameDNS 查询名称dns.qry.name contains "google"
字符串匹配contains字符串包含http.user_agent contains "Chrome"
matches正则表达式匹配http.user_agent matches "Chrome.*Safari"
endswith字符串以指定后缀结尾http.host endswith ".com"
范围匹配..范围匹配tcp.port > 1023 && tcp.port < 65535
组合条件()明确优先级`(ip.src == 192.168.1.1
排除特定条件!排除特定条件!dns(排除所有 DNS 流量)

比如我要查找本机送给外面的http流量

ip.src == 192.168.1.5 && http

其中包列表的面板中显示,编号,时间戳,源地址,目标地址,协议,长度,以及封包信息。 你可以看到不同的协议用了不同的颜色显示。

  • No.:数据包的编号。
  • Time:数据包捕获的时间戳。
  • Source:源IP地址(192.168.1.5)。
  • Destination:目的IP地址(112.90.80.96)。
  • Protocol:协议类型(HTTP)。
  • Length:数据包的长度。
  • Info:数据包的简要描述信息,例如“Continuation”。

同时你也可以修改这些显示颜色的规则,在菜单点击视图 --> 着色器规则

混杂模式

模式是网络接口卡(NIC)的一种工作模式,允许网卡接收所有经过该网络接口的数据包,而不仅仅是发送给本机的数据包。

  • 默认模式(非混杂模式):网卡仅接收目标MAC地址与自身匹配的数据包。
  • 混杂模式:网卡接收所有数据包,无论目标MAC地址是否匹配。

简单来说开启了混杂模式无论是不是自己需要接受发送的数据包,只要在这台机器网卡上经过了都捕捉过来

混杂模式开启路径 菜单-捕获-选项-混杂

混杂模式的典型应用场景
场景工具/技术示例
网络协议分析Wireshark、tcpdump捕获HTTP、DNS等协议的流量,分析通信过程。
入侵检测系统 (IDS)Snort、Suricata监控网络中的恶意流量(如SQL注入、端口扫描)。
网络性能优化iPerf、Nagios测量带宽利用率,定位网络瓶颈。
无线网络安全Aircrack-ng捕获Wi-Fi流量,分析加密协议或破解密码(需配合无线网卡)。
包详情信息

封包详细信息 (Packet Details Pane) 是核心分析区域,用于展示选中数据包的分层协议解析结果。它通过树状结构将数据包按协议栈逐层展开,直观呈现协议字段的详细信息。

这个面板是我们最重要的,用来查看协议中的每一个字段。

各行信息分别为

Frame:   物理层的数据帧概况

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

Internet Protocol Version 4: 互联网层IP包头部信息

Transmission Control Protocol:  传输层T的数据段头部信息,此处是TCP

Hypertext Transfer Protocol:  应用层的信息,此处是HTTP协议

3,协议分析

1. 数据包层级解析

  • Wireshark 将数据包按层级展开,通常包括:
    • 链路层:以太网帧头、源 MAC 地址、目的 MAC 地址等。
    • 网络层:IP 头、源 IP、目的 IP、TTL 等。
    • 传输层:TCP/UDP 头、源端口、目的端口、序列号等。
    • 应用层:HTTP、DNS、SSH 等协议的具体内容。

2. 常用协议分析

  • HTTP/HTTPS
    • 查看请求方法(GET/POST)、URL、响应状态码、头信息等。
    • 解码 HTTPS 流量需配置 SSLKEYLOGFILE 环境变量或使用中间人代理(如 mitmproxy)。
  • DNS
    • 查看域名解析过程,包括查询类型(A/AAAA/MX 等)、响应结果等。
  • TCP
    • 分析三次握手、重传、乱序、窗口缩放等。
    • 使用 Follow TCP Stream 查看完整会话。
  • UDP
    • 查看实时流量(如 VoIP、视频流)的丢包情况。

4,常见协议包分析

        1 ,ARP 协议

                ARP(Address Resolution Protocol,地址解析协议) 是一种用于将网络层的 IP 地址 解析为数据链路层的 MAC 地址 的通信协议。它在局域网(LAN)中起着关键作用,确保数据包能够在物理网络上正确传输

ARP 协议的工作原理
  1. 需求触发:
    • 当一台主机需要向同一局域网内的另一台主机发送数据时,它需要知道目标主机的 MAC 地址。
    • 如果目标主机的 MAC 地址不在发送方的 ARP 缓存 中,发送方会发起一个 ARP 请求。
  2. ARP 请求:
    • 发送方构造一个 ARP 请求广播包,包含:
      • 发送方的 IP 地址和 MAC 地址。
      • 目标主机的 IP 地址。
      • 目标 MAC 地址字段为空(因为发送方不知道目标 MAC 地址)。
    • 该广播包被发送到局域网内的所有设备。
  3. ARP 响应:
    • 局域网内的所有设备都会接收到 ARP 请求广播包。
    • 只有目标主机(其 IP 地址与请求中的目标 IP 地址匹配)会处理该请求。
    • 目标主机构造一个 ARP 响应包,包含:
      • 目标主机的 IP 地址和 MAC 地址。
      • 发送方的 IP 地址和 MAC 地址(从请求包中获取)。
    • 响应包以单播形式发送回发送方。
  4. ARP 缓存更新:
    • 发送方接收到 ARP 响应后,将目标主机的 IP 地址和 MAC 地址的映射关系存储到本地的 ARP 缓存中。
    • 后续发送数据时,发送方可以直接从 ARP 缓存中查询目标 MAC 地址,而无需再次发起 ARP 请求

ARP协议的报文格式

ARP报文分为请求报文响应报文,其基本结构如下:

字段长度描述
硬件类型2字节硬件地址类型(如1表示以太网)
协议类型2字节协议地址类型(如0x0800表示IPv4)
硬件地址长度1字节硬件地址长度(如6字节)
协议地址长度1字节协议地址长度(如4字节)
操作码2字节1表示请求,2表示响应
发送方MAC地址6字节发送方的硬件地址
发送方IP地址4字节发送方的协议地址
目标MAC地址6字节目标方的硬件地址(请求时全0)
目标IP地址4字节目标方的协议地址
ARP协议的应用场景

ARP协议的安全风险

ARP协议的防御措施

ARP协议的扩展与替代

  1. 局域网通信
    • 在同一子网内,主机通过ARP协议获取目标主机的MAC地址,实现直接通信。
  2. 跨网段通信
    • 当主机需要与不同子网的主机通信时,会将数据包发送给默认网关。此时,ARP协议用于解析网关的MAC地址。
  3. 网络管理
    • 网络管理员可通过ARP缓存表查看网络中的主机状态,排查网络故障。
  4. ARP欺骗攻击
    • 攻击者通过伪造ARP响应包,将自己的MAC地址冒充为目标主机的MAC地址,导致数据包被转发到攻击者设备,从而实现中间人攻击或网络中断。
  5. ARP缓存溢出攻击
    • 攻击者发送大量伪造的ARP请求包,耗尽目标主机的ARP缓存资源,导致合法请求无法处理。
  6. ARP广播风暴
    • 网络中存在错误配置或恶意设备时,可能导致ARP广播包泛滥,占用网络带宽,影响正常通信。
  7. 静态ARP绑定
    • 在关键设备(如服务器、路由器)上手动配置静态ARP表项,防止ARP欺骗。
  8. 动态ARP检测(DAI)
    • 在交换机上启用DAI功能,验证ARP报文的合法性,丢弃伪造的ARP请求或响应。
  9. 使用VLAN隔离
    • 将不同安全级别的设备划分到不同VLAN,限制ARP广播的传播范围。
  10. 部署ARP防火墙
    • 使用专门的ARP防火墙设备,监控和过滤异常的ARP流量。
  11. 启用加密协议
    • 在网络层以上使用加密协议(如IPsec、SSL/TLS),即使ARP欺骗成功,攻击者也无法解密数据。
  12. 代理ARP
    • 路由器或交换机可配置代理ARP功能,代替无法直接通信的主机响应ARP请求,实现跨网段通信。
  13. 免费ARP
    • 主机启动或更换网络接口时,主动发送免费ARP包,通知网络中的其他主机更新ARP缓存表。
  14. NDP协议(IPv6)
    • 在IPv6中,ARP协议被邻居发现协议(NDP)取代,NDP不仅提供地址解析功能,还支持路由器发现、重复地址检测等扩展功能。

抓包方法
  • 过滤器arp
  • 操作:在局域网中发起 ping 操作,触发 ARP 请求/响应。

协议解释
  • ARP 请求:主机询问“谁的 IP 是 X.X.X.X?请告诉我你的 MAC 地址。”
  • ARP 响应:目标主机回复“我的 MAC 地址是 XX:XX:XX:XX:XX:XX。”

数据包详情如下

192.168.1.1发送请求包


Frame 1676: 42 bytes on wire (336 bits),42 bytes captured (336 bits) on interface (Device\NPF_{80839945-9E42-42FC-AFE6-FA29F300151F}), id 0      # 帧编号为1676,总长度42字节(336位),在指定接口上捕获,工具内部ID为0 
Interface name:\Device\NPF_{80839945-9E42-42FC-AFE6-FA29F300151F}     # 接口名称
Interface description: WLAN     # 接口描述,表明这是通过 WLAN(无线局域网)接口捕获的流量
Encapsulation type: Ethernet (1)     # 封装类型,以太网协议,值为1表示以太网
Arrival Time:Apr 23,2025 16:37:16.950250000中国标准时间     # 到达时间,使用中国标准时间(CST)
UTC Arrival Time: Apr 23,2025 08:37:16.950250000 UTC     # 到达时间(UTC时间)
Epoch Arrival Time: 1745397436.950250000     # 到达时间的时间戳(自1970年1月1日以来的秒数)
[Time shift for this packet: 0.0oooooo0 seconds] # 时间偏移量(此包的时间偏移)
[Time delta from previous captured frame: 0.038357000 seconds]     # 与上一个捕获帧的时间间隔
[Time delta from previous displayed frame: 0.0ooooooo seconds]     # 与上一个显示帧的时间间隔
[Time since reference or first frame: 21.2788560o0 seconds]     # 自参考帧或第一帧以来的时间
Frame Number:1675     # 帧编号
Frame Length: 42 bytes (336 bits)     # 帧长度,42字节(336位)
Capture Length: 42 bytes (336 bits)     # 捕获长度,42字节(336位)
[Frame is marked: False] # 帧是否被标记
[Frame is ignored: False] # 帧是否被忽略
[Protocols in frame: eth:ethertype:arp]     # 帧中包含的协议,以太网、以太网类型、ARP
[Coloring Rule Name: ARP]     # 颜色规则名称,用于在Wireshark中标识ARP流量
[Coloring Rule String: arp]     # 颜色规则字符串

Ethernet II,Src: SichuanT_17:4a:68 (14:69:a2:17:4a:68),Dst: IntelCor_86:44:08 (68:54:5a:86:44:08)     # 以太网II帧头,源MAC地址和目标MAC地址
v Destination: IntelCor_86:44:08 (68:54:5a:86:44:08)     # 目标MAC地址
..0.     # LG位:全局唯一地址(出厂默认)
.0     # IG位:单播地址
= LG bit: Globally unique address (factory default)     # LG位解释
= IG bit: Individual address (unicast)     # IG位解释    
v Source: SichuanT_17:4a:68 (14:69:a2:17:4a:68)     # 源MAC地址
.0.     # LG位:全局唯一地址(出厂默认)
.0     # IG位:单播地址
= LG bit: Globally unique address (factory default)     # LG位解释
= IG bit: Individual address (unicast)     # IG位解释
Type: ARP (Ox0806)     # 帧类型,ARP协议,值为0x0806
[Stream index: 0]     # 流索引

Address Resolution Protocol (request)     # 地址解析协议(请求)
Hardware type: Ethernet (1)     # 硬件类型,以太网,值为1
Protocol type: IPv4 (Ox0800)     # 协议类型,IPv4,值为0x0800
Hardware size: 6     # 硬件地址长度,6字节(MAC地址长度)
Protocol size: 4     # 协议地址长度,4字节(IPv4地址长度)
Opcode: request (1)     # 操作码,请求,值为1
Sender MAC address: SichuanT_17:4a:68 (14:69:a2:17:4a:68)     # 发送方MAC地址
Sender IP address: 192.168.1.1     # 发送方IP地址
Target MAC address: 00:00:00_00:00:00 (00:00:00:00:00:00)     # 目标MAC地址,ARP请求中通常为全0
Target IP address: 192.168.1.5     # 目标IP地址
注意事项:
  • 目标MAC地址在ARP请求中通常为全0(00:00:00:00:00:00),表示广播请求。
  • 发送方MAC地址和IP地址是发起ARP请求的主机的地址。
  • 目标IP地址是请求解析的目标主机的IP地址。
  • Address Resolution Protocol (request) 和Opcode: request (1) 为arp请求包
  • Address Resolution Protocol (reply)和 Opcode: request (2) 为arp回复包

192.168.1.5发送回应包

Frame 1676: 42 bytes on wire (336 bits),42 bytes captured (336 bits) on interface (Device\NPF_{80839945-9E42-42FC-AFE6-FA29F300151F}), id 0  # 帧编号为1676,总长度42字节(336位),在指定接口上捕获,工具内部ID为0  

Section number: 1  # 分段编号为1  

√Interface id: 0 (VDevice\NPF_{80839945-9E42-42FC-AFE6-FA29F300151F})  # 接口ID为0,接口名称为指定值  

Interface name: Device\NPF_{80839945-9E42-42FC-AFE6-FA29F300151F}  # 接口名称  

Interface description: WLAN  # 接口描述为无线局域网(WLAN)  

Encapsulation type: Ethernet (1)  # 封装类型为以太网(协议类型值1)  

Arrival Time:Apr 23,2025 16:37:16.950266000 中国标准时间  # 到达时间(中国标准时间)  

UTC Arrival Time: Apr 23,2025 08:37:16.950266000 UTC  # 到达时间(UTC时间)  

Epoch Arrival Time: 1745397436.950266000  # 到达时间(自1970年1月1日以来的秒数)  

[Time shift for this packet: 0.000000 seconds]  # 此数据包的时间偏移为0秒  

[Time delta from previous captured frame: 0.000016000 seconds]  # 与上一个捕获帧的时间间隔为0.000016秒  

[Time delta from previous displayed frame: 0.000016000 seconds]  # 与上一个显示帧的时间间隔为0.000016秒  

[Time since reference or first frame: 21.278872000 seconds]  # 与参考帧或第一个帧的时间间隔为21.278872秒  

Frame Number: 1676  # 帧编号为1676  

Frame Length: 42 bytes (336 bits)  # 帧长度为42字节(336位)  

Capture Length: 42 bytes (336 bits)  # 捕获长度为42字节(336位)  

[Frame is marked: False]  # 此帧未被标记  

[Frame is ignored: False]  # 此帧未被忽略  

[Protocols in frame: eth:ethertype:arp]  # 帧中包含的协议栈:以太网 -> 以太网类型 -> ARP  

[Coloring Rule Name: ARP]  # 使用的着色规则名称为ARP  

[Coloring Rule String: arp]  # 使用的着色规则字符串为arp  

√Ethernet II,Src: IntelCor_86:44:08 (68:54:5a:86:44:08),Dst:SichuanT_17:4a:68 (14:69:a2:17:4a:68)  # 以太网II帧,源MAC地址为IntelCor_86:44:08,目标MAC地址为SichuanT_17:4a:68  

v Destination: SichuanT_17:4a:68 (14:69:a2:17:4a:68)  # 目标MAC地址  

...…………….-LG bit: Globally unique address (factory default)  # LG位:全局唯一地址(出厂默认)  

….. ....... G bit: Individual address (unicast)  # G位:单播地址  

vSource: IntelCor_86:44:08 (68:54:5a:86:44:08)  # 源MAC地址  

……0.  
· ........... ...= LG bit: Globally unique address (factory default)  # LG位:全局唯一地址(出厂默认)  

……..…….  
……………=IG bit: Individual address (unicast)  # G位:单播地址  

Type: ARP (0x0806)  # 以太网类型字段为ARP(0x0806)  

[Stream index: 0]  # 流索引为0  

Address Resolution Protocol (reply)  # 地址解析协议(回复)  

Hardware type: Ethernet (1)  # 硬件类型为以太网(1)  

Protocol type: IPv4 (0x0800)  # 协议类型为IPv4(0x0800)  

Hardware size: 6  # 硬件地址长度为6字节  

Protocol size: 4  # 协议地址长度为4字节  

Opcode: reply (2)  # 操作码为回复(2)  

Sender MAC address: IntelCor_86:44:08 (68:54:5a:86:44:08)  # 发送方MAC地址  

Sender IP address: 192.168.1.5  # 发送方IP地址  

Target MAC address: SichuanT_17:4a:68 (14:69:a2:17:4a:68)  # 目标MAC地址
Target IP address: 192.168.1.1     # 目标IP地址
总结

Address Resolution Protocol (request)        #ARP地址解析协议request请求包
Hardware type: Ethernet (1)                        #硬件类型
Protocol type: IPv4(Ox0800)                        #协议类型。
Hardware size: 6                                          #硬件长度
Protocol size:4                                             #协议长度
Opcode:_request(1)                                    #操作码,值为1即表示ARP请求包
Sender MAC address:                                 #源MAC地址
Sender IP address:192.168.1.102               #源IP地址
Target MAC address:                                   #目标 MAC 地址
Target IP address: 192.168.1.1                    #目标IP地址

2,ICMP 协议

         ICMP(Internet Control Message Protocol,互联网控制消息协议)是TCP/IP协议族中的一个核心协议,主要用于在IP网络中传递控制消息,提供有关网络通信的错误报告、诊断信息和网络状态反馈。ICMP协议不直接传输用户数据,而是作为IP协议的辅助工具,帮助网络设备(如路由器、主机)进行错误处理、网络诊断和流量控制

ICMP协议的功能与作用
  1. 错误报告:
    • 当IP数据包在传输过程中遇到错误(如目标不可达、超时等),中间路由器或目标主机将生成ICMP错误消息,并发送回源主机。
    • 示例:目标主机不可达时,路由器会发送“目标不可达”ICMP消息。
  2. 网络诊断:
    • ICMP提供了多种诊断工具,如Ping和Traceroute,用于测试网络连通性和路径。
    • Ping:通过发送ICMP Echo Request消息,测试目标主机是否可达,并测量往返时间。
    • Traceroute:通过发送带有不同TTL(生存时间)值的ICMP消息,追踪数据包在网络中的路径。
  3. 流量控制:
    • 在某些情况下,ICMP可用于控制网络流量,如源抑制(Source Quench)消息,用于通知源主机降低发送速率。
ICMP消息类型

ICMP消息分为两大类:查询消息差错报告消息

  1. 查询消息:
    • 用于主动查询网络状态,常见的查询消息包括:
      • Echo Request(回声请求)Echo Reply(回声应答):用于Ping测试。
      • Timestamp Request(时间戳请求)Timestamp Reply(时间戳应答):用于测量网络延迟。
      • Address Mask Request(地址掩码请求)Address Mask Reply(地址掩码应答):用于获取子网掩码信息。
  2. 差错报告消息:
    • 用于报告网络错误,常见的差错报告消息包括:
      • Destination Unreachable(目标不可达):目标主机或网络不可达。
      • Time Exceeded(超时):数据包在网络中存活时间超过TTL值。
      • Parameter Problem(参数问题):IP头部的字段错误。
      • Redirect(重定向):通知源主机更优的下一跳地址。
ICMP消息格式

ICMP消息的格式如下:

  • 类型(Type):1字节,标识ICMP消息的类型。
  • 代码(Code):1字节,进一步标识消息的子类型。
  • 校验和(Checksum):2字节,用于验证消息的完整性。
  • 数据部分:根据消息类型不同,数据部分的长度和内容也不同。
ICMP协议的安全性

ICMP协议本身不提供加密或认证机制,因此可能受到攻击:

  • ICMP Flood攻击:通过发送大量ICMP Echo Request消息,耗尽目标主机的资源。
  • ICMP隧道攻击:利用ICMP消息传输恶意数据,绕过防火墙限制。

防护措施

  • 配置防火墙规则,限制ICMP消息的流量和类型。
  • 使用入侵检测系统(IDS)监控异常的ICMP流量。
ICMP协议的应用场景
  1. 网络连通性测试:
    • 使用Ping命令发送ICMP Echo Request消息,测试目标主机的可达性。
  2. 网络路径追踪:
    • 使用Traceroute工具发送TTL递增的ICMP消息,追踪数据包在网络中的路径。
  3. 网络故障诊断:
    • 通过分析ICMP差错报告消息,诊断网络故障的原因。
ICMP协议与IP协议的关系
  • ICMP是IP协议的辅助协议:ICMP消息封装在IP数据包中传输,使用IP协议的源和目的IP地址。
  • ICMP不保证消息的可靠性:ICMP消息可能丢失或延迟,网络设备不重传ICMP消息。
消息类型类型值功能描述
Echo Request8用于Ping测试,请求目标主机回应
Echo Reply0响应Echo Request,证明主机可达
Destination Unreachable3报告目标主机或网络不可达
Time Exceeded11报告数据包存活时间超过TTL值
Redirect5通知源主机更优的下一跳地址
抓包方法
  • 过滤器icmp
  • 操作:使用 ping 命令触发 ICMP 流量。

协议解释
  • 类型字段
    • 8:Echo Request(ping 请求)。
    • 0:Echo Reply(ping 响应)
  • 代码字段:指示错误类型(如 0 表示无错误)。
  • 校验和:确保数据完整性。

数据包详情如下

192.168.1.5发送请求包

Frame 131: 74 bytes on wire (592 bits), 74 bytes captured (592 bits) on interface (DeviceINPF_{80839945-9E42-42FC-AFE6-FA29F30151F}, id 0
Section number: 1
Interface id: 0 (VDevice\NPF_{80839945-9E42-42FC-AFE6-FA29F300151F})
Interface name:(Device(NPF_{80839945-9E42-42FC-AFE6-FA29F300151F})
Interface description: WLAN
Encapsulation type: Ethernet (1)
Arrival Time:Apr 23,2025 20:49:51.071108000中国标准时间
UTC Arrival Time:Apr 23,2025 12:49:51.071108000 UTC
Epoch Arrival Time: 1745412591.071108000
[Time shift for this packet: 0.000000 seconds]
[Time delta from previous captured frame: 0.005271000 seconds]
[Time delta from previous displayed frame: 0.000000000 seconds]  # 时间间隔修正为0
[Time since reference or first frame: 10.867772000 seconds]
Frame Number: 131
Frame Length: 74 bytes (592 bits)
Capture Length: 74 bytes (592 bits)
[Frame is marked: False]
[Frame is ignored: False]
[Protocols in frame: eth:ethertype:ip:icmp:data]  # 包含的协议栈
[Coloring Rule Name: ICMP]
[Coloring Rule String: icmp Il icmpv6]

Ethernet II,Src: IntelCor_86:44:08 (68:54:5a:86:44:08),Dst: SichuanT_17:4a:68 (14:69:a2:17:4a:68)  # 以太网帧头
Destination: SichuanT_17:4a:68 (14:69:a2:17:4a:68)  # 目的MAC地址
..0. = LG bit: Globally unique address (factory default)  # 全球唯一地址
..0 ...= IG bit: Individual address (unicast)  # 单播地址
Source: IntelCor_86:44:08 (68:54:5a:86:44:08)  # 源MAC地址
.0. , = LG bit: Globally unique address (factory default)
.….0… .. = IG bit: Individual address (unicast)
Type: IPv4 (0x0800)  # 上层协议为IPv4

[Stream index: 0]
Internet Protocol Version 4,Src: 192.168.1.5,Dst: 110.242.69.21  # IPv4头部
0100 .... = Version: 4  # IPv4版本
....0101 = Header Length: 20 bytes (5)  # 头部长度
Differentiated Services Field: 0x00 (DSCP: CS0, ECN: Not-ECT)  # 服务类型字段
0000 00.. = Differentiated Services Codepoint: Default (0)  # 差分服务码点
. ..0 - Explicit Congestion Notification: Not ECN-Capable Transport (0)  # 显式拥塞通知
Total Length: 60  # 总长度(包含头部和数据)
Identification: 0x1cba (7354)  # 标识符
000. .... = Flags: 0x00  # 标志位
0... ....= Reserved bit: Not set  # 保留位未设置
.0.. = Don't fragment: Not set  # 不允许分片
..0. .... = More fragments: Not set  # 无更多分片
...0 0000 0000 0000 = Fragment Offset: 0  # 分片偏移
Time to Live: 64  # 生存时间
Protocol: ICMP (1)  # 上层协议为ICMP
Header Checksum: 0x0000 [validation disabled]  # 头部校验和(未验证)
[Header checksum status: Unverified]
Source Address: 192.168.1.5  # 源IP地址
Destination Address: 110.242.69.21  # 目的IP地址
[Stream index: 17]

Internet Control Message Protocol  # ICMP头部
Type: 8 (Echo (ping) request)  # ICMP类型:回显请求
Code: 0  # 代码:0
Checksum: 0x4891 [correct]  # 校验和正确
[Checksum Status: Good]
Identifier (BE): 1 (0x0001)  # 标识符(大端序)
Identifier (LE): 256 (0x0100)  # 标识符(小端序)
Sequence Number (BE): 1226 (0x04ca)  # 序列号(大端序)
Sequence Number (LE): 51716 (0xca04)  # 序列号(小端序)
[Response frame: 132]  # 对应的响应帧

Data (32 bytes)  # ICMP数据部分
Data: 6162636465666768696a6b6c6d6e6f7071727374757677616263646566676869  # ASCII字符:abcdefghijklmnopqrstuvwabcdefghi
[Length: 32]  # 数据长度

该数据包是一个ICMP回显请求(ping请求),由源主机192.168.1.5发送到目的主机110.242.69.21,用于测试网络连通性。数据部分包含32字节的ASCII字符abcdefghijklmnopqrstuvwabcdefghi类型为8(回显请求)

110.242.69.21返回回应包

Frame 132: 74 bytes on wire (592 bits), 74 bytes captured (592 bits) on interface (Device\NPF_{80839945-9E42-42FC-AFE6-FA29F300151F}, id 0  # 帧132,物理网络字节数74,捕获字节数74,接口信息
Section number: 1  # 分段编号
Interface id: 0 (VDevice\NPF_{80839945-9E42-42FC-AFE6-FA29F300151F})  # 接口ID
Interface name:(Device(NPF_{80839945-9E42-42FC-AFE6-FA29F300151F}  # 接口名称(可能有格式问题)
Interface description: WLAN  # 接口描述为WLAN
Encapsulation type: Ethernet (1)  # 封装类型为以太网
Arrival Time:Apr 23,2025 20:49:51.097681000 中国标准时间  # 到达时间(中国标准时间)
UTC Arrival Time: Apr 23,2025 12:49:51.097681000 UTC  # 到达时间(UTC时间)
Epoch Arrival Time: 1745412591.097681000  # 到达时间(Unix时间戳)
[Time shift for this packet: 0.0000oo0 seconds]  # 时间偏移(可能格式问题)
[Time delta from previous captured frame: 0.026573000 seconds]  # 与上一捕获帧的时间差
[Time delta from previous displayed frame: 0.026573000 seconds]  # 与上一显示帧的时间差
[Time since reference or first frame: 10.894345000 seconds]  # 与参考帧或首帧的时间差
Frame Number: 132  # 帧编号
Frame Length: 74 bytes (592 bits)  # 帧长度
Capture Length: 74 bytes (592 bits)  # 捕获长度
[Frame is marked: False]  # 帧未标记
[Frame is ignored: False]  # 帧未忽略
[Protocols in frame: eth:ethertype:ip:icmp:data]  # 帧中包含的协议
[Coloring Rule Name: ICMP]  # 着色规则名称
[Coloring Rule String: icmp II icmpv6]  # 着色规则字符串

Ethernet II,Src: SichuanT_17:4a:68 (14:69:a2:17:4a:68),Dst: IntelCor_86:44:08 (68:54:5a:86:44:08)  # 以太网帧,源和目的MAC地址
Destination: Inte1Cor_86:44:08 (68:54:5a:86:44:08)  # 目的MAC地址(可能格式问题)
..0.
= LG bit: Globally unique address (factory default)  # LG位:全局唯一地址
.0
= IG bit: Individual address (unicast)  # IG位:单播地址
Source: SichuanT_17:4a:68 (14:69:a2:17:4a:68)  # 源MAC地址
..0.
= LG bit: Globally unique address (factory default)  # LG位:全局唯一地址
= IG bit: Individual address (unicast)  # IG位:单播地址
...
..0
Type: IPv4 (Ox0800)  # 类型:IPv4
[Stream index: 0]  # 流索引

Internet Protocol Version 4,Src: 110.242.69.21,Dst: 192.168.1.5  # IPv4协议,源和目的IP地址
0100
=
=Version: 4  # 版本:4
0101
1 = Header Length: 20 bytes (5)  # 头部长度:20字节
Differentiated Services Field: OxO0 (DSCP: CSO, ECN: Not-ECT)  # 服务类型字段
0000 00..
. = Differentiated Services Codepoint: Default (0)  # 服务类型代码点:默认
..00 = Explicit Congestion Notification: Not ECN-Capable Transport (0)  # 显式拥塞通知:不支持ECN
....
Total Length: 60  # 总长度
Identification: Ox1cba (7354)  # 标识符
000.
, = Flags: 0x0  # 标志
0...
= Reserved bit: Not set.0..  # 保留位:未设置
= Don't fragment: Not set  # 不分片:未设置
..0.
. = More fragments: Not set  # 更多分片:未设置
...0 0000 0000 0000 = Fragment Offset:0  # 分片偏移:0
Time to Live:54  # 生存时间
Protocol: ICMP (1)  # 协议:ICMP
Header Checksum: Oxf252 [validation disabled]  # 头部校验和(验证已禁用)
[Header checksum status: Unverified]  # 头部校验和状态:未验证
Source Address:110.242.69.21  # 源地址
Destination Address: 192.168.1.5  # 目的地址
[Stream index: 17]  # 流索引

Internet Control Message Protocol  # 互联网控制消息协议
Type: 0 (Echo (ping) reply)  # 类型:0(回显应答)
Code:0  # 代码:0
Checksum: Ox5091[correct]  # 校验和:正确
[Checksum Status: Good]  # 校验和状态:良好
Identifier (BE): 1 (Ox0001)  # 标识符(大端序)
Identifier (LE): 256 (Ox0100)  # 标识符(小端序)
Sequence Number (BE): 1226 (Ox04ca)  # 序列号(大端序)
Sequence Number (LE): 51716 (Oxca04)  # 序列号(小端序)
[Request frame: 131]  # 请求帧:131
[Response time: 26.573 ms]  # 响应时间:26.573毫秒
Data (32 bytes)  # 数据(32字节)
Data: 6162636465666768696a6b6c6d6e6f7071727374757677616263646566676869  # 数据内容(十六进制)
[Length: 32]  # 长度:32
总结
  • 帧信息:帧编号为132,长度为74字节。
  • 接口信息:通过WLAN接口捕获。
  • 以太网帧:源MAC地址为 14:69:a2:17:4a:68,目的MAC地址为 68:54:5a:86:44:08
  • IPv4协议:源IP地址为 110.242.69.21,目的IP地址为 192.168.1.5
  • ICMP协议类型为0(回显应答),代码为0,标识符和序列号与请求帧匹配。(多次强调!!!)
  • 响应时间:从请求帧到回应帧的时间差为26.573毫秒。
  • 数据部分:包含32字节的数据,内容为 abcdefghijklmnopqrstuvwxyz(十六进制表示)
3,tcp协议

tcp 协议:传输控制协议(英語:Transmission Control Protocol)是一种面向连接的、可靠
的、基于字节流的传输层通信协议,由IETF的RFC793定义。在简化的计算机网络OSI模型中,它完成第四层传输层所指定的功能。

协议解释
  • 三次握手
    1. SYN:客户端请求建立连接。
    2. SYN-ACK:服务器确认并请求连接。
    3. ACK:客户端确认连接建立。
  • 四次挥手
    1. FIN:一方请求关闭连接。
    2. ACK:另一方确认关闭请求。
    3. FIN:另一方也请求关闭连接。
    4. ACK:最终确认关闭。
抓包方法:

选中一个http记录,右键—>追踪—>tcp流,即可看到一个完整的tcp三次握手。

包重点字段:
  1. 源端口(Source Port):
    • 描述:标识发送方的应用程序端口号。
    • 示例值:48653
    • 作用:用于区分同一主机上的不同应用程序。
  2. 目标端口(Destination Port):
    • 描述:标识接收方的应用程序端口号。
    • 示例值:80
    • 作用:用于将数据包路由到正确的应用程序,如HTTP服务。
  3. 序列号(Sequence Number):
    • 描述:TCP段中的第一个字节的序列号。
    • 示例值:0(相对序列号),17536461(原始序列号)
    • 作用:用于数据包的排序和重组,确保数据的完整性。
  4. 确认号(Acknowledgment Number):
    • 描述:接收方期望接收的下一个字节的序列号。
    • 示例值:0
    • 作用:用于确认已成功接收的数据,并请求发送下一个数据包。
  5. 头部长度(Header Length):
    • 描述:TCP头部的长度,以32位字为单位。
    • 示例值:40 bytes (10)
    • 作用:指示TCP头部的大小,以便正确解析数据包。
  6. 标志位(Flags):
    • 描述:TCP头部中的控制位,用于指示数据包的状态和类型。
    • 示例值:0x0802 (SYN)
    • 作用:SYN标志位表示这是一个连接建立请求。
  7. 窗口大小(Window):
    • 描述:接收方能够接收的最大数据量,以字节为单位。
    • 示例值:65535
    • 作用:用于流量控制,防止发送方发送过多数据导致接收方缓冲区溢出。
  8. 校验和(Checksum):
    • 描述:用于验证TCP头部和数据部分的完整性。
    • 示例值:0x7707 [unverified]
    • 作用:确保数据包在传输过程中未被篡改。
  9. 紧急指针(Urgent Pointer):
    • 描述:指示紧急数据在TCP段中的位置。
    • 示例值:0
    • 作用:用于处理紧急数据,如中断连接请求。
  10. 选项(Options):
    • 描述:TCP头部中的可选字段,用于提供额外的功能或信息。
    • 示例:最大报文段大小(Maximum segment size)、无操作(NOP)、窗口缩放(Window scale)、SACK允许(SACK permitted)、时间戳(Timestamps)
    • 作用:增强TCP协议的功能和灵活性。

第一次握手包,SYN:客户端请求建立连接。因为太长,我这边只解释应用层包

// 捕获并分析一个网络数据包
// 数据包基本信息
Frame: 74 bytes on wire (592 bits), 74 bytes captured (592 bits) // 帧在链路层上的长度为74字节,捕获到的也是74字节
on interface \Device\NPF_{00833945-3E42-43FC-AFF6-FA29F5001515}, id 0 // 数据包捕获的接口和ID

// 以太网II层信息
Ethernet II, 
    Src: IntelCor_68:44:08 (88:54:3c:68:44:08), // 源MAC地址
    Dst: Schuart_17:4a:68 (14:69:e2:17:4a:68) // 目标MAC地址

// IP层信息
Internet Protocol Version 4, 
    Src: 192.168.1.5, // 源IP地址
    Dst: 110.242.70.57 // 目标IP地址

// 传输控制协议 (TCP) 信息
Transmission Control Protocol, 
    Src Port: 48653, // 源端口号,标识发送方的应用程序
    Dst Port: 80, // 目的端口号,标识接收方的应用程序,这里是HTTP服务的标准端口
    Seq: 0, Len: 0 // 序列号从0开始,TCP段长度为0,表示这是一个控制报文
    
    [Stream index: 8] // 表示此TCP流在捕获过程中的唯一标识
    [Stream Packet Number: 1] // 表示此数据包在当前TCP流中的编号
    
    // 会话完整性信息
    [Conversation completeness: Complete, WITH_DATA (s3)] // 会话完整性为完整,带有数据(尽管此处的数据长度为0)
    
    [TCP Segment Len: 0] // TCP段长度为0
    Sequence Number: 0 (relative sequence number) // 相对序列号为0
    Sequence Number (raw): 17536461 // 原始序列号
    [Next Sequence Number: 1 (relative sequence number)] // 下一个相对序列号为1
    
    Acknowledgment Number: 0 // 确认号为0,表示尚未收到任何数据
    Acknowledgment number (raw): 0 
    
    1010 .... = Header Length: 40 bytes (10) // TCP头部长度为40字节
    
    // 标志位信息
    Flags: 0x0802 (SYN) // 标志位为SYN,表示这是一个连接建立请求
    
    Window: 65535 // 窗口大小为65535,表示接收方能够接收的最大数据量
    [Calculated window size: 65535] // 计算出的窗口大小也为65535
    
    Checksum: 0x7707 [unverified] // 校验和为0x7707,但未经验证
    [Checksum Status: Unverified] 
    Urgent Pointer: 0 // 紧急指针为0,表示没有紧急数据
    
    // 选项信息
    Options: (20 bytes), Maximum segment size, No-Operation (NOP), Window scale, SACK permitted, Timestamps 
        // 选项包括最大报文段大小、无操作、窗口缩放、SACK允许、时间戳等

     第二次握手   SYN-ACK:服务器确认并请求连接。

三次握手 ACK:客户端确认连接建立。

四次挥手如出一辙

这里就不再过多解释

4,udp协议

I        nternet协议集支持一个无连接的传输协议,该协议称为用户数据报协议(UDP,User
DatagramProtocol)
UDP为应用程序提供了一种无需建立连接就可以发送封装的IP数据报的方法。

抓包方法
  • 过滤器udp
  • 操作:捕获常见应用(如 DNS、DHCP、SNMP)的 UDP 流量。
协议解释
  • 无连接特性:UDP 不保证数据包顺序和可靠性。
  • 应用层负载:结合端口号识别具体应用(如 53 端口为 DNS)。
  • 可靠性问题:观察是否有丢包或重复数据包。

总结,udp协议没啥好讲的,就是一个面向无连接的协议,我只管给你发,你收没收到不管我事,就像你跟你女朋友求婚,我管你同不同意,直接抱你回家。

5,dns协议:

域名系统(DomainName System,缩写:DNS)是互联网的一项服务。它作为将
域名和IP地址相互映射的一个分布式数据库,能够使人更方便地访问互联网。DNS使用TCP和UDP端口53。当前,对于每一级域名长度的限制是63个字符,域名总长度则不能超过253个字符。DNS协议是用来将域名转换为IP地址(也可以将IP地址转换为相应的域名地址);一句话就是用来解析域名。

抓包方法
  • 过滤器dns
  • 操作:使用 ping 命令触发 DNS 查询,或直接访问域名。

协议解释

  • 查询类型
    • A:IPv4地址映射。
    • AAAA:IPv6地址映射。
    • CNAME:域名别名。
    • NS:权威服务器地址。
    • MX:邮件服务器。
  • 响应码
    • 0:无错误。
    • 3:域名不存在。

以下为nds回应包

总结

1. 状态与结果字段

字段名作用典型值示例分析价值
Flags(标志位)返回响应状态和附加信息。0x8180(成功,递归可用)RCODE:响应码(如0=成功,3=域名不存在,5=服务器拒绝)。
RA:服务器是否支持递归。
AA:是否为权威应答(非权威可能被篡改)。
Answers返回的解析结果(如IP、CNAME等)。www.example.com (A=93.184.216.34, TTL=300)TTL值:若过小(如5秒),可能增加DNS查询频率。
CNAME链:若查询A记录但返回CNAME,需检查是否配置错误。
Authority权威域名服务器列表(用于迭代查询)。ns1.example.com (A=192.0.2.1)排查递归查询失败时,确认权威服务器是否可达。
Additional附加信息(如权威服务器的IP,避免额外查询)。

ns1.example.com (A=192.0.2.1)

  1. 报文正文

    • Queries(问题部分):查询域名、类型(如A)、类(通常为IN,即Internet)。
    • Answers(回答部分):返回的记录(如IP地址、TTL生存时间)。
    • Authority(授权部分):权威服务器信息。
    • Additional(附加部分):额外信息(如权威服务器的IP地址)。

6,http协议:

HTTP(HyperText Transfer Protocol,超文本传输协议)是互联网上应用最广泛的协议之一,用于传输超文本(如HTML、图片、视频等)。它是客户端(如浏览器)与服务器之间通信的基础,是一个基于请求与响应模式的、无状态的、应用层的协议常基于TCP的连接方式,HTTP1.1版本中给出一种持续连接的机制,绝大多数的Web开发,都是构建在HTTP协议之上的Web应用默认使用TCP的80端口(或HTTPS的443端口)。

 核心特性
  • 无状态性:HTTP本身不保存会话状态,每次请求独立。但通过Cookie、Session、Token等机制可实现状态管理。
  • 无连接性:HTTP/1.1默认启用长连接(Keep-Alive),减少TCP连接开销。
  • 灵活的数据传输:支持任意格式数据,通过Content-Type头指定类型(如application/jsonmultipart/form-data)。
  • 可扩展性:通过自定义请求头(如X-Custom-Header)实现功能扩展。

抓包方法

  • 过滤器http 或 tcp.port == 80(HTTP),ssl 或 tcp.port == 443(HTTPS)。
  • 操作:在浏览器中访问网页,停止抓包后查看 HTTP 请求/响应。

以下为get参数包

协议解释

  • 请求行:包含方法(GET/POST)、URL、HTTP 版本。
  • 响应行:状态码(如 200、404)和原因短语。
  • 头部字段
    • Host:目标主机。
    • User-Agent:客户端信息。
    • Content-Type:数据类型。
  • HTTPS:基于 TLS/SSL 加密,需解密后查看内容。

7,wireshark实战!!!

此为某公司遭受到的远程代码执行数据包而回应包状态未知,推测可能被IPS,防火墙拦截,或者已经被渗透到内网!!(需上机排查)

风险程度:高危

一、URL与参数解析
  1. 目标路径
    /php-cgi/php-cgi.exe
    • 明确指向目标服务器的PHP-CGI接口(通常用于处理PHP脚本的CGI模式调用)。
    • 路径中的.exe后缀可能暗示服务器运行在Windows环境(但需结合实际服务器配置确认)。
  2. 参数内容
    • %ADd allow_url_include=1
      • %ADd是URL编码后的畸形字符(%AD为无效的ISO-8859-1字符,可能用于绕过WAF/IDS的规则匹配)。
      • allow_url_include=1试图启用PHP的allow_url_include选项,允许通过URL动态包含远程文件(高危配置,默认关闭)。
    • %ADd auto_prepend_file=php://input
      • 同样使用畸形编码,试图将php://input(PHP的输入流,可读取原始POST数据)设置为自动前置文件。
      • 若成功,后续所有PHP脚本执行前都会自动包含POST请求中的内容,可能导致代码注入。
二、攻击场景推测
  1. 漏洞利用目标
    • PHP-CGI参数注入漏洞:历史上存在PHP-CGI未正确过滤查询参数的漏洞(如CVE-2012-1823),攻击者可直接修改PHP配置。
    • 远程代码执行(RCE):通过组合allow_url_include=1auto_prepend_file=php://input,攻击者可能构造恶意POST请求,使服务器执行任意PHP代码。
三,对与防御建议
1. 服务器端防御
  • 禁用PHP-CGI模式
    • 改用更安全的FastCGI(如PHP-FPM)或直接通过Web服务器(如Nginx/Apache)内置模块解析PHP。
  • 严格限制PHP配置
    • 确保php.ini中以下选项为Off
       
      allow_url_include = Off
      allow_url_fopen = Off  ; 限制URL文件包含
  • 输入过滤与WAF规则
    • 部署Web应用防火墙(WAF),拦截包含allow_url_includeauto_prepend_file等敏感参数的请求。
    • 对URL解码后的参数进行正则匹配,过滤畸形字符(如%AD)。
  • 最小化权限
    • PHP进程以非特权用户运行,避免直接访问系统关键目录。
2. 漏洞修复与检测
  • 补丁更新
    • 确保PHP版本为最新稳定版(如PHP 8.x),修复已知CGI漏洞。
  • 日志监控
    • 检查Web服务器日志(如Apache的access.logerror.log),搜索可疑的PHP-CGI请求。
  • 渗透测试
    • 定期进行安全审计,模拟攻击验证防护有效性。
3. 应急响应
  • 隔离与取证
    • 若发现异常访问,立即隔离受影响服务器,保存完整日志用于溯源。
  • 漏洞通报
    • 向国家信息安全漏洞共享平台(CNVD)或相关监管部门报告,协同处置。

完结撒花~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值