按 Host 定位会话
在流量包里追查外联,常见入口是先按域名或路径关键字筛选 HTTP 请求,列出一组候选会话,再回到完整流量里回看请求体与响应内容。明文 HTTP 可以直接读出 Host、URI、User-Agent 等字段;HTTPS 在没有密钥的情况下只能看到连接层信息,例如目标地址、SNI 与证书字段。
先找会话再回看
筛选出的那一行只是入口证据,说明某个地址访问过某个域名。要判断行为性质,还需要跟到对应的 TCP 流里看请求头、请求体、响应状态码与响应内容,必要时导出传输对象做进一步分析。结论要落在「谁在什么时间把什么数据发给了谁」。
基本信息
| 适用平台 | 跨平台(Wireshark 命令行 tshark、图形界面) |
|---|---|
| 常用字段 | http.host、http.request.uri、http.user_agent、http.request.method |
| 回看方式 | 按流跟踪、导出 HTTP 对象、查看响应状态码 |
| HTTPS 限制 | 无密钥时只能看 SNI、证书与连接元数据 |
| 输出建议 | 提取时间、源地址、Host、URI、UA 五列再做聚合 |
典型使用场景
- 样本通信地址已知:确认哪些主访问过该域名以及请求的路径
- 排查可疑外联:按 User-Agent 或路径关键字筛出不常见客户端
- 统计上传行为:按方法筛选 POST 与 PUT,再回看请求体大小
- 补全 DNS 之外的信息:DNS 给出域名,HTTP 给出实际请求内容
- 为报告取证:把命中的会话导出为独立文件,作为结论附件
定位与回看会话
定位与回看会话
# 按域名关键字提取候选会话(显示过滤器)
tshark -r traffic.pcap -Y 'http.host contains "example"' \
-T fields -e frame.time -e ip.src -e http.host -e http.request.uri | head -20
# 按方法筛选上传行为
tshark -r traffic.pcap -Y 'http.request.method == "POST"' \
-T fields -e frame.time -e ip.src -e http.host -e http.request.uri -e http.content_length | head -20
# HTTPS:无密钥时看 SNI 字段
tshark -r traffic.pcap -Y 'tls.handshake.extensions_server_name contains "example"' \
-T fields -e frame.time -e ip.src -e tls.handshake.extensions_server_name | head -20
# 导出命中的 HTTP 对象供离线查看
tshark -r traffic.pcap --export-objects http,outdir -Y 'http.host contains "example"'HTTP 字段读法
| 字段 | 含义 | 分析用法 |
|---|---|---|
| http.host | 请求中的 Host 头 | 域名维度聚合,注意可能带端口 |
| http.request.uri | 请求路径与查询串 | 路径特征能反映工具与载荷类型 |
| http.user_agent | 客户端标识 | 非常规 UA 值得进一步核实 |
| http.request.method | 请求方法 | POST 与 PUT 多用于上传 |
| http.response.code | 响应状态码 | 配合请求判断是否成功 |
响应可能经过压缩或分块传输,要看到实际内容需要依赖流的重组结果;直接看单包会得到残缺的正文。
抓包文件里的时间戳时区取决于抓包环境(与运行抓包工具的机器设置一致),导出时间列后要统一换算再与其他来源合并。