实战复盘:从Wireshark流量中拆解钓鱼邮件的恶意下载链
1. 钓鱼邮件的流量特征分析实战
最近处理了一个钓鱼邮件的应急响应案例,发现很多安全新人面对Wireshark流量分析时容易手忙脚乱。今天就以这个真实案例为例,手把手带大家走一遍完整的分析流程。
钓鱼邮件最典型的特征就是会诱导用户点击恶意链接或下载附件。在这个案例中,攻击者精心构造了一封伪装成公司内部通知的邮件,诱导员工点击链接下载所谓的"重要文件"。我们通过Wireshark捕获到的流量包,可以清晰地看到整个攻击链条。
先说说钓鱼邮件的几个典型流量特征:
- 通常会包含异常的HTTP请求,指向非常规域名
- 下载的文件类型与邮件描述不符(比如说是文档实际下载的却是压缩包)
- 文件下载后会立即有新的网络连接请求
- 流量中常见到编码混淆的字符串
2. Wireshark基础分析技巧
2.1 初始流量包分析
拿到流量包hacker1.pacapng后,我习惯先用Wireshark的统计功能做个概览:
- 查看协议分布:重点关注HTTP/HTTPS流量
- 检查数据包大小分布:异常大或小的包都值得注意
- 查看会话统计:找出异常活跃的IP
在这个案例中,通过协议分级统计很快就发现了几次异常的HTTP请求。这里有个小技巧:在Wireshark过滤栏输入"http",然后按包大小排序,通常恶意文件传输的包会比较大。
2.2 关键流量提取
锁定可疑流量后,我习惯用追踪流功能查看完整会话:
- 右键可疑数据包 → 追踪流 → HTTP流
- 在弹出窗口中查看完整请求和响应
- 特别注意Content-Type为application/zip的响应
在这个案例中,我们发现了一个关键请求:
GET /w0ks//?YO=1702920835 HTTP/1.1 Host: tsdandassociates.co.sz响应中包含了ZIP文件的特征头"PK"(即50 4B的ASCII码)。这就是我们要找的恶意文件下载链接。
3. 恶意文件提取与分析
3.1 导出ZIP压缩包
从流量中导出文件有几种方法,这里推荐最可靠的方式:
- 定位到包含文件数据的包
- 右键 → 导出分组字节流
- 保存时确保使用.zip后缀
- 使用certutil校验文件完整性
实际操作命令:
certutil -hashfile malicious.zip MD5这个步骤得到了文件的MD5:f17dc5b1c30c512137e62993d1df9b2f
3.2 分析ZIP内容
解压后我们发现了一个JS文件,这是典型的钓鱼手法:
- 使用脚本文件降低用户警惕性
- 脚本通常会下载第二阶段恶意程序
- 代码经过混淆处理
查看文件内容时,我习惯先用文本编辑器快速浏览,寻找以下几个关键点:
- 明显的URL字符串
- 可疑的函数调用
- 非常规的变量命名
4. JavaScript代码深度解析
4.1 代码反混淆技巧
案例中的JS代码使用了字符串拼接混淆:
o457607380 += 'h'; o457607380 += 't'; ...这种手法的破解方法很简单:
- 提取所有字符串拼接操作
- 按顺序拼接出完整字符串
- 通常会得到一个完整的URL
我常用的方法是直接在浏览器控制台执行这些拼接操作,快速得到最终结果。
4.2 C2域名提取
经过反混淆处理后,我们得到了关键域名:
shakyastatuestrade.com这是攻击者的C2服务器,用于下载后续恶意负载。在实际分析中,这类域名通常具有以下特征:
- 新注册的域名(可以用whois查询确认)
- 使用非常规的单词组合
- 常常包含某些关键词(如secure、update等)
5. 防御建议与总结
通过这个案例,我想分享几个实用的防御经验:
- 邮件网关要配置附件类型过滤,阻止可执行文件和脚本
- 终端安装EDR产品,监控异常进程行为
- 定期对员工进行钓鱼演练
- 建立快速响应流程,发现异常立即取证
流量分析最关键的是要有耐心,像侦探一样层层抽丝剥茧。建议新手可以从每天分析一个样本开始,慢慢积累经验。
