本章目录(9)On this page (9)
  1. 场景
  2. 第一步:把请求列出来
  3. 第二步:追踪流,拿完整 URL
  4. 第三步:导出文件
  5. 第四步:看沙箱报告
  6. 第五步:手动看脚本
  7. 输出成什么
  8. 一处容易漏的
  9. 参考
文章Articles

一封钓鱼邮件的流量分析

从一个 pcap 出发,把「谁中了、中了什么、连去哪」三件事查清楚。

更新Updated 2026.10.25securitytrafficincident-response

场景

安全设备上出现一段可疑流量。手上只有一个 pcap,要回答三个问题:恶意程序访问了什么、下载了什么、下一跳在哪。

这是应急响应的标准起手式,也是流量分析最典型的用法。

第一步:把请求列出来

Wireshark 打开,过滤 http,看请求列表。

重点看两列:Host 和 Info(请求行)。可疑的特征:

  • 域名是随机字符串,或者看起来像正常服务但拼写奇怪
  • 请求路径带一长串参数,参数值是时间戳或随机数
  • User-Agent 不是常见浏览器,或者版本号很旧
  • 响应是 application/octet-stream、application/zip

这一轮不要陷进去,扫一遍,标记两三个可疑的,往下走。

第二步:追踪流,拿完整 URL

右键可疑请求 → Follow → HTTP Stream。

完整 URL 在这里,包括查询串。把它记下来——这是 IOC 的第一条。

同时看响应头:

HTTP/1.1 200 OK
Content-Type: application/zip
Content-Length: 48213
Content-Disposition: attachment; filename="invoice.zip"

Content-Disposition 里的文件名,就是落地文件的原始名字。

第三步:导出文件

File → Export Objects → HTTP。列表里能看到所有通过 HTTP 传输的对象,按大小排序,最大的那个通常是载荷。

选中导出。导出的文件名是 Wireshark 生成的(类似 %5bContent-Type%5d),没有后缀。按响应头里的 Content-Type 和文件头判断真实类型,手动改后缀。

改完之后先别打开。算 MD5,扔沙箱。

md5sum invoice.zip

MD5 是第二条 IOC,也是最通用的一条——威胁情报平台基本都支持按 hash 查。

第四步:看沙箱报告

沙箱会给出:释放的文件、进程行为、网络回连、注册表改动。

重点看「网络」那一栏。回连的域名就是下一跳。如果沙箱没跑出网络行为(很多样本会检测沙箱环境后静默),就手动分析。

第五步:手动看脚本

压缩包里常是 JS / VBS / HTA 脚本。用文本编辑器打开,别双击。

先去掉注释,可读性会好很多:

\/\*[\s\S]*\*\/|\/\/.*

然后找字符串拼接。恶意脚本的域名通常是拆开拼的:

var a = "shakyastatue";
var b = "strade.com";
var url = "http://" + a + b + "/gate.php";

搜索 http、eval、ActiveXObject、WScript.Shell,基本能定位核心逻辑。

输出成什么

一份可用的分析结论,包含四样东西:

项 内容
初始入口 恶意 URL、投递方式
载荷 文件名、MD5、类型
下一跳 回连域名 / IP、端口、协议
影响范围 哪些主机访问过这个 URL

第四条要从 DNS 日志或代理日志里查,不是从 pcap 里查。pcap 只能告诉你「这台机器中了」,查「还有谁中了」要靠全量日志。

一处容易漏的

分析完流量,别急着结案。

同一封钓鱼邮件通常发给了多个人。从邮件网关导出收件人列表,逐个确认有没有人点过——这个动作比分析样本本身更能减少损失。

参考

  • 《流量特征分析——小王公司收到的钓鱼邮件》,公众号 LKing-Sec
  • 抓包与导出操作:Wireshark