CTF竞赛中常用Wireshark过滤指令分类整理
一、IP地址相关过滤
用于定位通信双方或特定网段的流量:
过滤源IP地址:
ip.src == x.x.x.x(如 ip.src == 192.168.1.100)
过滤目标IP地址:
ip.dst == x.x.x.x(如 ip.dst == 211.162.2.183)
过滤源或目标IP地址:
ip.addr == x.x.x.x(如 ip.addr == 192.168.1.104)
组合源和目标IP过滤:
ip.src == 10.0.0.1 and ip.dst == 192.168.1.100
过滤特定网段的流量:
ip.addr == 192.168.0.0/16
二、端口相关过滤
用于定位特定服务或协议的端口通信:
过滤TCP端口:
tcp.port == 80(源或目的端口)
过滤TCP目的端口:
tcp.dstport == 80(如HTTP服务)
过滤TCP源端口:
tcp.srcport == 80
过滤UDP端口:
udp.port == 53(如DNS服务)
过滤特定协议端口:
tcp.dstport == 3389(RDP协议)
三、协议类型过滤
直接筛选特定协议的数据包:
TCP协议:tcp
UDP协议:udp
ARP协议:arp
ICMP协议:icmp(如ping请求)
HTTP协议:http
DNS协议:dns
SSL/TLS协议:ssl 或 tls
四、HTTP协议深度过滤
针对HTTP请求和响应的精细化分析:
HTTP GET请求:http.request.method == "GET"
HTTP POST请求:http.request.method == "POST"
HTTP 404响应:http.response.code == 404
Host头包含特定字符串:http.host contains "baidu.com"
请求特定URI:http.request.uri == "/img/logo-edu.gif"
内容包含关键词:http contains "flag"(常用于查找flag)
五、数据内容过滤
通过内容特征快速定位关键信息:
HTTP内容含"flag":http contains "flag"
TCP内容含"flag":tcp contains "flag"
IP层内容含"flag":ip contains "flag"
通用内容匹配:<protocol> contains "<keyword>"(如 http contains "GET")
六、逻辑组合过滤
通过组合条件缩小分析范围:
IP与协议组合:ip.src == 192.168.1.100 and http
IP与端口组合:ip.src == 10.0.0.1 and (tcp.port == 80 or tcp.port == 443)
排除特定IP:not ip.dst == 192.168.1.1
逻辑或匹配:ip.src == 192.168.1.100 or ip.dst == 192.168.1.100
七、流汇聚与数据提取技巧
在CTF中提取关键数据的核心操作:
追踪流:
右键数据包 → "追踪流" → 选择HTTP流或TCP流,还原完整通信内容。
提取文件:
对HTTP文件传输包,右键 → "导出分组字节流",注意清理多余字符(如菜刀流量的X@Y标识)
八、CTF实战场景应用
寻找flag:
使用 http contains "flag" 或 tcp contains "flag"快速定位。
分析HTTP流量:
筛选 http.request.method == "POST"检查敏感数据提交。
检测http contains "eval"判断可能存在Webshell。
TCP三次握手分析:
第一次握手:tcp.flags.syn == 1 and tcp.flags.ack == 0
第二次握手:tcp.flags.syn == 1 and tcp.flags.ack == 1
第三次握手:tcp.flags.syn == 0 and tcp.flags.ack == 1
特定IP通信分析:
ip.addr == 211.162.2.183(华为网站IP示例)
DNS查询分析:
dns.qry.name == "www.example.com"过滤特定域名解析