1.高频使用的 Wireshark 过滤语句

以下是流量取证分析中高频使用的 Wireshark 过滤语句,按取证场景分类:

一、(tcp)基础协议与连接分析

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
# 过滤特定IP的所有流量(双向)
ip.addr == 192.168.1.100

# 过滤特定端口(源或目的)
tcp.port == 80
udp.port == 53

# 查看TCP三次握手(SYN包)
tcp.flags.syn == 1 && tcp.flags.ack == 0

# 查看TCP四次挥手(FIN包)
tcp.flags.fin == 1

# 查看被RST强制终止的连接(异常断连)
tcp.flags.reset == 1

# 查看TCP重传包(网络质量或攻击痕迹)
tcp.analysis.retransmission

# 查看TCP慢连接攻击(长时间不发送FIN/ACK)
tcp.flags.ack == 1 && tcp.len == 0 && tcp.window_size == 0

二、(http)HTTP Web取证

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
# 过滤所有HTTP GET请求
http.request.method == "GET"

# 过滤POST请求(常用于数据泄露、webshell上传)
http.request.method == "POST"

# 过滤特定状态码(如404扫描、500错误)
http.response.code == 404
http.response.code != 404
http.response.code >= 500

# 过滤包含恶意关键词的URL
http.request.uri contains "cmd"
http.request.uri contains "../../../../"
http.request.uri contains "/dbadmin/test_db.php"
# 过滤可疑User-Agent(扫描器、脚本)
http.user_agent contains "sqlmap"
http.user_agent contains "nmap"
http.user_agent contains "python-requests"

# 过滤大文件下载(数据泄露嫌疑)
http.content_length > 10000000 # 10MB以上

# 过滤webshell特征
http.request.uri contains ".php?" && http.request.method == "POST"

url路径包含
http.request.uri.path=="/dbadmin/test_db.php"


三、(dns)DNS 隧道与异常检测

1
2
3
4
5
6
7
8
9
10
11
12
13
14
# 超长域名查询(DNS隧道典型特征)
dns.qry.name.len > 50

# 查看TXT记录查询(常用于隧道)
dns.qry.type == 16 # TXT记录

# 短时间内大量DNS查询(数据外带或DGA)
dns && ip.addr == 192.168.1.100

# 过滤NXDOMAIN响应(域名生成算法DGA)
dns.flags.rcode == 3

# 查看DNS服务器响应数据(可疑大量数据)
dns.resp.len > 200

四、恶意流量与攻击痕迹

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
# SYN泛洪攻击(大量SYN无ACK)
tcp.flags.syn == 1 && tcp.flags.ack == 0

# 扫描行为(TCP连接失败+RST)
tcp.flags.syn == 1 && tcp.flags.ack == 0 && tcp.analysis.retransmission

# SMB勒索病毒传播(永恒之蓝利用)
smb.cmd == 0x25 # Trans2请求
smb2.cmd == 9 # SMBv2 Write请求

# 暴力破解(高频登录失败)
tcp.port == 22 && tcp.flags.syn == 1 # SSH爆破
tcp.port == 3389 && tcp.flags.syn == 1 # RDP爆破

# 可疑ICMP隧道(大数据包ICMP)
icmp && data.len > 64

五、文件传输检测

1
2
3
4
5
6
7
8
9
10
11
# FTP文件传输(明文账号密码)
ftp.request.command == "USER" or ftp.request.command == "PASS"
ftp-data # 查看实际传输的文件内容

# SMB文件共享操作
smb.cmd == 0x2b # 写文件
smb.file_name contains ".exe"

# 邮件附件(木马传播)
smtp.data.fragment contains "Content-Disposition: attachment"
smtp.data.fragment contains ".exe"

六、(ip源和目的地)高级组合过滤

1
2
3
4
5
6
7
8
9
10
11
# 外连行为(内网IP连接外网IP)
ip.src == 10.0.0.0/8 && ip.dst != 10.0.0.0/8

# 横向移动(内网主机之间非标准端口)
ip.src == 192.168.1.0/24 && ip.dst == 192.168.1.0/24 && tcp.port > 10000

# 大数据外带(非工作时间上传)
ip.src == 192.168.1.100 && frame.len > 10000 && (hour == 2 || hour == 3)

# C2心跳包(固定间隔小数据包)
tcp.flags.push == 1 && tcp.len < 100 && ip.addr == 192.168.1.100

七、快捷统计技巧

1
2
3
4
5
6
7
8
# 统计会话频率(IO Graphs配合)
ip.addr == 192.168.1.100 && tcp.port == 80

# 查看HTTP请求来源(统计User-Agent)
右键 → 应用为列 → http.user_agent

# 导出特定过滤结果
文件 → 导出特定分组 → 显示分组

2.追踪流:http流和tcp流

在电子取证流量分析中,追踪TCP流和HTTP流是两种互补但应用场景不同的技术。以下是它们的追踪场景和选择原则:


一、追踪HTTP流的适用场景

HTTP流追踪专注于应用层HTTP协议细节,适合分析Web应用层攻击和数据:

  1. Web应用攻击分析
    • SQL注入、XSS攻击:通过http contains筛选恶意payload
    • 后台暴破:追踪登录请求/响应流,查看用户名密码(如搜索结果9中筛选/admin/login.php
    • 一句话木马:识别POST请求中的evalbase64等特征
  2. HTTP传输文件提取
    • 直接导出HTTP对象:File > Export Objects > HTTP...提取恶意样本、WebShell、被盗文件
    • 分析文件名、MD5/SHA1哈希值等元数据
  3. 协议规范分析
    • 查看完整的HTTP请求头、响应码(如302跳转)、Cookie、User-Agent
    • 分析RESTful API调用、AJAX请求
  4. 快速定位Web行为
    • 按URL、请求方法(GET/POST)过滤后追踪流,直观查看交互内容

二、追踪TCP流的适用场景

TCP流追踪提供传输层会话的原始字节流,适合需要查看底层数据的深度分析:

  1. 命令执行与交互分析
    • 通过WebShell执行的系统命令:如搜索结果9中追踪TCP流解码ifconfig命令
    • 交互式会话:Telnet、SSH、数据库查询、C&C通信的明文内容
  2. 非标准或隧道通信
    • 非标准端口的HTTP服务
    • HTTP隧道、端口转发等隐蔽通信
  3. 文件重组与提取
    • 当HTTP对象提取失败时,手动追踪TCP流保存原始数据(如搜索结果12中保存为rar文件)
    • 分析文件签名(Magic Number)恢复被截断的文件
  4. 加密流量分析
    • HTTPS流量:TCP流显示TLS握手和加密数据,可分析证书、加密套件(搜索结果2)
    • 识别心跳包、连接保持等TCP层行为
  5. 协议异常检测
    • 查看TCP序列号、重传、窗口大小异常
    • 发现协议混淆或伪装(如HTTP协议运行在非80端口)

三、实战选择原则

场景特征 推荐追踪方式 原因
分析登录暴破、SQL注入等Web攻击 先HTTP后TCP HTTP流快速定位,TCP流查看完整POST数据
提取上传的WebShell或恶意文件 HTTP对象导出 → TCP流验证 HTTP流提取文件,TCP流确认传输内容
查看通过WebShell执行的系统命令 TCP流 命令数据在HTTP POST参数中,需TCP流解码
HTTPS加密通信 TCP流 HTTP流无法解密,TCP流可分析TLS握手
非标准端口服务 TCP流 HTTP协议解析可能失败,TCP流显示原始数据
需要保存二进制文件(rar/jpg) TCP流 可导出原始字节,避免编码问题

选择依据核心在于——HTTP流关注”应用层说了什么”,TCP流关注”底层实际传输了什么”。在电子取证中,两者结合才能完整还原攻击行为。