前言又是一年护网季,封禁了一年的wireshark该再次启动了。。。。
建议常见说明直接跳过重点学习一下命令,狠狠给甲方整活。
大佬直接跳!
wireshark简介Wireshark是一款功能强大的开源网络协议分析器,能够实时捕获、深入解析和可视化网络流量。它支持数千种协议(如 TCP/IP、HTTP、DNS、SSL/TLS 等),并提供过滤、统计和图形化分析功能,适用于网络故障排查、安全审计(如检测攻击流量)、协议开发和教育研究。Wireshark 跨平台(Windows、Linux、macOS),可读取多种抓包格式(如 PCAP),并允许用户通过插件扩展功能。其直观的界面分为数据包列表、协议详情和原始数据视图,帮助用户逐层分析网络通信。
wireshark主要功能实时数据捕获:能够捕获实时流量并对其进行分析。数据包解码:支持数百种网络协议,能够解码并显示各种协议的详细信息。过滤功能:提供强大的过滤功能,可以根据特定条件筛选数据包。数据包重组:能够重组和分析分片的数据包,以查看完整的通信内容。统计和图表:提供多种统计和图表功能,帮助用户进行流量分析和趋势预测。
wireshark整体预览与菜单功能介绍菜单栏和工具栏:
菜单栏:提供文件操作、编辑、查看、捕获、分析等选项,可以通过菜单访问各种功能。
工具栏:常用功能的快捷按钮,包括开始和停止捕获、打开和保存捕获文件、显示过滤器等。
捕获选项和启动按钮:
捕获接口选择:选择要捕获数据包的网络接口,可以是以太网、Wi-Fi等。
捕获选项:配置捕获参数,如数据包长度、捕获过滤器、环形缓冲区等。
启动按钮:开始和停止数据包捕获。
数据包列表窗口:
数据包列表:显示捕获的数据包,每个数据包一行,包含时间戳、源地址、目的地址、协议、长度等基本信息。
列排序和过滤:可以根据不同列进行排序和过滤,方便查找特定数据包。
数据包详情窗口:
数据包解码详情:选中一个数据包后,在详情窗口中显示其解码信息,按照协议层次结构显示,包括链路层、网络层、传输层和应用层的详细字段。
展开和折叠:可以展开和折叠各协议层次,查看具体字段的值和含义。
数据包字节窗口:
字节视图:以十六进制和ASCII格式显示选中数据包的原始字节数据,帮助用户查看数据包的实际内容。
字节高亮:与数据包详情窗口联动,高亮显示对应字段的字节数据。
显示过滤器输入框:
过滤器输入框:用于输入显示过滤器,筛选显示满足条件的数据包。
过滤器提示:提供过滤器语法提示和自动完成功能,帮助用户快速输入正确的过滤器。
抓包过滤基础Wireshark 中的过滤器是其最强大和最常用的功能之一。通过使用过滤器,用户可以从庞大的数据包捕获中筛选出感兴趣的特定数据包,从而更高效地进行网络分析和故障排除。抓包过滤是指在数据包捕获和分析过程中,使用特定的规则和条件,筛选出满足条件的数据包。
Wireshark 提供了两种主要的过滤器类型:显示过滤器和捕获过滤器
显示过滤器:用于在捕获后筛选和显示特定的数据包。显示过滤器是在数据包已经被捕获之后应用的,它不会影响实际的数据包捕获过程。捕获过滤器:用于在捕获过程中筛选数据包。捕获过滤器是在数据包捕获之前应用的,它会直接影响捕获到的数据包数量和内容。
Wireshark 支持两种类型的过滤器:显示过滤器和捕获过滤器。它们的语法和使用方式有所不同。下面我们详细介绍一下这两种过滤器。
显示过滤器显示过滤器是 Wireshark 中用于在数据包捕获之后,根据特定条件筛选和显示数据包的工具。显示过滤器的语法相对简单,使用字段名、运算符和值来构建过滤条件。显示过滤器的基础语法包括:字段名:指定要过滤的数据包字段,如 ip.addr、tcp.port 等。运算符:用于比较字段值的运算符,如 ==、!=、>、<、>=、<= 等。值:与字段名进行比较的值,可以是数值、字符串、布尔值等。
常见的显示过滤器用法ip.src == 192.168.3.9 #过滤特定源 IP 地址的数据包
ip.dst == 192.168.3.66 #过滤特定目的 IP 地址的数据包
ip.addr == 192.168.3.9 #过滤特定 IP 地址的数据包(无论源还是目的)
tcp.srcport == 80 #过滤特定源端口的数据包
tcp.dstport == 443 #过滤特定目的端口的数据包
tcp.port == 80 #过滤特定端口的数据包(无论源还是目的)
http #过滤 HTTP 协议的数据包
tcp #过滤 TCP 协议的数据包
icmp #过滤 ICMP 协议的数据包
dns #过滤所有dns流量
!icmp #排除 ICMP 协议的数据包
http.host == "www.example.com" #过滤特定主机的 HTTP 流量
http.request.uri contains "/login" #过滤特定 URI 的 HTTP 请求
http.request.method == "POST" #过滤特定方法的 HTTP 请求
http.response.code == 200 #过滤特定状态码的 HTTP 响应
dns.qry.name == "example.com" #过滤特定域名的 DNS 查询
dns.qry.type == 1 #过滤特定类型的 DNS 查询
dns.flags.rcode == 0 #过滤特定响应码的 DNS 响应
dns.a == 192.168.1.1 #过滤特定 IP 地址的 DNS 响应
tcp.srcport == 80 #过滤特定源端口的 TCP 流量
tcp.dstport == 443 #过滤特定目的端口的 TCP 流量
tcp.flags.syn == 1 #过滤特定 TCP 标志位的流量
tcp.stream eq 1 #过滤特定 TCP 会话的流量
udp.srcport == 53 #过滤特定源端口的 UDP 流量
udp.dstport == 123 #过滤特定目的端口的 UDP 流量
udp.stream eq 1 #过滤特定 UDP 会话的流量
icmp.type == 8 #过滤特定类型的 ICMP 报文(请求)
显示过滤器高级用法ip.src == 192.168.3.9 && tcp.dstport == 8080 #过滤特定源 IP 和目标端口的数据包
frame.len >= 100 && frame.len <= 200 #过滤帧长度在 100 到 200 字节之间的数据包
http.request.uri matches ".*login.*" #过滤 URI 包含 "login" 的 HTTP 请求
(ip.src == 192.168.3.9 && tcp.dstport == 80) || (ip.src == 192.168.3.66 && tcp.dstport == 443) #过滤源 IP 为 192.168.1.1 且目的端口为 80,或源 IP 为 192.168.1.2 且目的端口为 443 的数据包
捕获过滤器捕获过滤器在数据包捕获过程中起作用,通过预先定义的条件,仅捕获满足条件的数据包。捕获过滤器使用 Berkeley Packet Filter (BPF) 语法,能够在捕获时减少不必要的数据包,提升捕获效率。
捕获过滤器的基础语法包括:
字段名:指定要过滤的数据包字段,如host、port、net等。
运算符:用于比较字段值的运算符,如==、!=、>、<、>=、<=等。
值:与字段名进行比较的值,可以是数值、字符串、布尔值等
常用的捕获过滤器host 192.168.3.9 #过滤特定 IP 地址的数据包
port 80 #过滤特定端口的数据包
tcp #过滤特定协议的数据包
src host 192.168.1.1 #过滤特定源 IP 地址的数据包
dst host 192.168.3.66 #过滤特定目的 IP 地址的数据包
src port 80 #过滤特定源端口的数据包
dst port 443 #过滤特定目的端口的数据包
not host 192.168.1.1 #排除特定 IP 地址的数据包
not port 80 #排除特定端口的数据包
tcp port 80 #捕获所有 HTTP 流量
tcp port 80 and host www.freebuf.com#捕获特定主机的 HTTP 流量
udp port 53 #捕获所有 DNS 流量
udp port 53 and host example.com #捕获特定域名的dns流量
tcp[tcpflags] & tcp-syn != 0 #捕获特定 TCP 标志位的流量
icmp[icmptype] == icmp-echo #捕获特定类型的 ICMP 报文
捕获过滤器的高级使用方法src host 192.168.1.1 and dst port 80 #过滤源 IP 和目标端口同时满足的数据包
net 192.168.1.0/24 #过滤特定网段的数据包
(src host 192.168.1.1 and dst port 80) or (src host 192.168.1.2 and dst port 443) #过滤源 IP 为 192.168.1.1 且目标端口为 80,或源 IP 为 192.168.1.2 且目标端口为 443 的数据包
tcp[tcpflags] & tcp-syn != 0 #过滤存在特定字段的数据包
wireshark匹配高级技巧组合过滤条件通过组合多个过滤条件,可以实现更复杂的筛选逻辑。
AND 逻辑组合:
过滤源 IP 为 192.168.1.1 且目的端口为 80 的数据包:
ip.src == 192.168.1.1 && tcp.dstport == 80OR 逻辑组合:
过滤源 IP 为 192.168.1.1 或目的端口为 443 的数据包:
ip.src == 192.168.1.1 || tcp.dstport == 443混合逻辑组合:
过滤源 IP 为 192.168.1.1 且(目的端口为 80 或 443)的数据包:
ip.src == 192.168.1.1 && (tcp.dstport == 80 || tcp.dstport == 443)使用正则表达式Wireshark 的显示过滤器支持正则表达式,可以用来匹配更复杂的字符串模式。
匹配 HTTP 请求 URI 中包含特定字符串:
过滤 URI 包含 "login" 的 HTTP 请求:
http.request.uri matches ".*login.*"匹配 HTTP 头部中的特定字段:
过滤 User-Agent 包含 "Mozilla" 的 HTTP 请求:
http.request.header.User-Agent matches ".*Mozilla.*"实战案例流量分析搜索flag 或者根据提示搜索key或者pass
ctfl+f
正常情况下会直接搜索到flag这里贴一张图
但是还有一些flag是经过编码的不能直接通过搜索得到
flag经过16进制编码 666C6167
flag经过base64编码 Zmxh
flag经过unicode编码
flag
总结:wireshark的一些小tip1.导出文件可以直接导出分组字节流
2.查看内容不好复制可以查看分组字节,然后选择为原始数据之后导出,分组字节也可以常见的解码,也可以显示成图片
3.追踪流这个也有技巧,首先可以只查看,客户端发送的,服务器发送的,还可以指定比如查看图片形式这里需要将前面不相干的格式给删除,也可以查看原始数据导出数据
4.可以根据http统计分析,看访问过哪些页面,然后过滤页面,或者http
结尾祝猴子们好运!!!