从流量包到攻击画像:一次APT攻击的深度取证WriteUp
1. 从流量包到攻击画像APT攻击取证实战那天下午接到应急响应通知时我正在喝第三杯咖啡。客户发来的压缩包里只有一个5MB的pcap文件但我知道这里面可能藏着整个攻击链条的关键证据。作为安全分析师我们就像网络空间的法医要从看似杂乱的数据流中还原出攻击者的每一步操作。这次遇到的是典型的APT攻击流量攻击者采用了分阶段渗透策略。我打开Wireshark时首先注意到的是大量集中在21和80端口的流量——这意味着攻击者可能同时利用了FTP和HTTP两种协议。在实际分析中这种多协议混合攻击往往意味着攻击者试图通过不同渠道建立持久化访问。2. FTP凭证窃取分析2.1 过滤与追踪FTP流在Wireshark过滤栏输入ftp后立即看到了可疑的FTP登录尝试。右键选择追踪流-TCP流完整的会话记录就像剧本一样展开220 Microsoft FTP Service USER admin 331 Password required PASS Root123 230 User logged in攻击者使用admin/Root123这样的弱密码组合成功登录这暴露出目标服务器存在账号枚举和弱密码漏洞。更危险的是在后续流量中可以看到攻击者通过PUT命令上传了名为shell.php的文件。2.2 文件上传行为还原通过分析FTP-DATA流量我重建了文件上传过程攻击者先发送TYPE I命令切换二进制模式使用PASV命令建立数据通道通过STOR shell.php完成上传最后用SIZE shell.php确认文件是否完整传输这种规范的操作流程暗示攻击者可能使用了自动化工具。在取证报告中我特别标注了文件MD5值a5f3c8...这对后续的威胁情报关联很有帮助。3. Web后门通信解密3.1 HTTP流量中的蛛丝马迹过滤http协议后发现多个对/file.php和/shell.php的POST请求。这些请求的User-Agent都伪装成正常浏览器但有两个异常特征请求间隔固定为37秒每个请求的Content-Length都是1024字节将其中一个请求的TCP流导出为原始数据用Hex编辑器查看时发现了PE文件头标志MZ——这证实攻击者在通过HTTP传输二进制载荷。3.2 解密恶意代码攻击者使用了多层加密首先对数据做Base64编码然后使用AES-128-CBC加密密钥为e45e329feb5d925b最后用XOR进行二次混淆用CyberChef工具解密后得到了关键代码片段function main($content) { $result array(); $result[status] base64_encode(success); $result[msg] base64_encode($content); $key $_SESSION[k]; echo encrypt(json_encode($result),$key); }这段代码实现了C2通信的回传机制攻击者可以远程执行系统命令。特别值得注意的是$_SESSION[k]的使用说明攻击者维持了会话状态。4. 主机信息收集与横向移动4.1 获取系统信息在流量包后半部分发现了异常DNS查询攻击者通过nslookup获取内网拓扑信息。通过解密第21号TCP流最终定位到关键字符串ComputerName: WIN-935BICNFFVK UserName: Administrator Domain: CORP.LOCAL这些信息出现在攻击者尝试使用net use命令建立IPC$连接的流量中说明已经开始横向移动。4.2 攻击时间线重建结合数据包时间戳还原出完整攻击流程时间行为技术指标14:02:33FTP爆破成功USER admin/PASS Root12314:05:17WebShell上传shell.php (MD5: a5f3c8...)14:08:42信息收集whoami / systeminfo14:15:56横向移动尝试net use \192.168.1.15\C$取证过程中最让我惊讶的是攻击者在28分钟内就完成了从初始入侵到横向移动的全过程。这种高效率通常意味着攻击者对目标网络有充分了解或者使用了高度自动化的攻击框架。