使用Arkime分析网络入侵:从PCAP日志中重构攻击者行为链

2 阅读5分钟

[Blue Team Labs Online 题解] The Walking Packets(使用Arkime调查Web入侵)

Chicken0248 著
7分钟阅读 · 2025年12月4日

场景描述

Zeta-9 运营着一个集中式监控平台,用于监视实验室活动并标记异常。实验室设施爆炸后,公司边界防御系统记录到防火墙被突破。在检测到攻击后的数小时内(具体为UTC时间2025年9月24日周三00:00:00至02:52:00之间),Arkime捕获了一系列异常事件:对监控控制台的非常规HTTP请求。

使用Arkime网络日志,重构攻击者的行为链。

本次挑战中,Arkime可通过以下地址访问:
URL: http://localhost:8005/sessions
凭证: admin / admin

警告!别忘了先启动服务:
systemctl start arkimeviewer

环境感知与证据发现

调查机器初始化完成后,可以使用 sudo systemctl start arkimeviewer 启动Arkime。桌面上还有CyberChef文件夹和任务简报文件,但任务简报目前不重要,我们先把注意力放在Arkime上。

启动Arkime服务后,打开浏览器访问 http://localhost:8005,会弹出Arkime的基本认证窗口,输入 "admin" / "admin" 登录。

现在我们应该能在浏览器中访问Arkime Web界面了。

最后,需要按场景描述缩小时间范围:“具体在UTC时间2025年9月24日周三00:00:00至02:52:00之间”。此时时间范围内有近40万条记录,相当多,但我们可以开始调查了。

调查过程

Q1) 攻击者使用的源IP地址是什么?主动攻击了哪个应用端口?

首先检查SPIGraph,查看IP数量及它们之间的连接。发现IP地址 91.90.124.21 与 10.0.14.53 之间存在大量通信。过滤该IP后,首先注意到从 91.90.124.21 到存储控制台主机(内网IP 10.0.14.53 / 外网 18.133.31.160)端口3000的通信。

过滤条件:ip.src == 91.90.124.21 && http.method == GET

进一步事件显示,从 91.90.124.21 到存储控制台存在多次SQL注入尝试,确认该IP属于威胁行为者。

过滤条件:ip.src == 91.90.124.21 && http.method == GET && http.statuscode != 404 && http.statuscode != 400

答案:91.90.124.21,3000

Q2) 首页返回的HTTP正文的MD5校验和是什么?

要查找首页HTTP正文的MD5校验和,可以检查攻击者对首页的通信。Arkime已经直接给出了这个HTTP正文的MD5。

查看正文内容,没有特别有趣的东西。获取正文哈希后,可以用它过滤掉这个页面,只关注攻击者的成功攻击。

答案:ca1d882d9b1aac5f04f39509ee17f001

Q3) 攻击者调用哪个HTTP路径来枚举存储的对象?

过滤掉所有返回标准HTML正文的请求后,只剩下3条记录。这表明威胁行为者最终成功利用了SQL注入漏洞,并从存储控制台下载了对象ID为6的文件。

过滤条件:ip.src == 91.90.124.21 && http.method == GET && http.statuscode != 404 && http.statuscode != 400 && http.md5 != ca1d882d9b1aac5f04f39509ee17f001

可以看到存在漏洞的端点是 /search 路径,该查询的结果是返回存储控制台上托管的所有对象。

答案:/search

Q4) 枚举对象记录时使用了什么SQL注入载荷?

可以使用CyberChef中的URL Decode工具解码载荷。

答案:a' OR '1'='1

Q5) 上传文件的元数据中,所有者账户名是什么?

可以看到所有文件的所有者是 Frankenstein Code,这是我们需要调查其工作站的研究员。

答案:FrankensteinCode

Q6) 哪个文件名元数据对应我们关心的摄像头(攻击者外泄的文件)?

攻击者泄露了存储控制台上的所有文件后,只请求下载对象ID为6的文件,即 cam06_ai_monitor_securityincident.mp4。可以看到存储控制台在端口9000上通过minio托管文件。

答案:cam06_ai_monitor_securityincident.mp4

Q7) 攻击者下载的确切S3对象键是什么?

复制此键值以回答问题。

答案:uploads/525e1f476a399b2675777f6c2993aba1_cam06_ai_monitor_securityincident.mp4

Q8) 攻击者调用哪个路径和ID来获取预签名下载URL?

答案:/download,6

Q9) 攻击者在获取文件时使用了什么User-Agent字符串?

User-Agent字符串表明威胁行为者是从Windows工作站操作的。

答案:Mozilla/5.0(WindowsNT;WindowsNT10.0; en-CA)WindowsPowerShell/5.1.26100.6584

Q10) 根据网络证据,攻击者最终从哪个host:port获取了存储服务中的对象?

答案:minio:9000

Q11) 下载并观看视频后,录像中显示了哪些凭证?

有两种方法可以得到答案:预期路径和非预期路径。我使用了非预期路径完成调查,但我会展示两种方法,并讲述我为什么错过了首杀XD。

预期路径:要获取文件,需要模拟威胁行为者的操作,重新请求一个下载URL(因为旧的已经过期)。访问端口3000上的存储网站(是的,我之前不知道这个,直到别人首杀后才意识到)。通过访问相同的URL(http://localhost:3000/download?id=6),会得到一个新的URL,可以用来下载攻击者下载过的同一视频。视频中包含 operator39 用户的凭证,该用户是JUMPHOST的本地管理员。

答案:operator39:halloween2025

非预期路径:首先检查端口9000上的minio,但还没有登录凭证。切换到root用户,列出所有docker容器,找到托管minio的容器ID。进入容器,查看通常定义用户凭证的环境变量,获得了访问minio的管理员凭证,然后可以直接观看任何视频。

完成 The Walking Packets! - Blue Team Labs Online CSD0tFqvECLokhw9aBeRqpNzLTXFlojmzFn6OlyTg9UXZ0dCc3IqMwPPOCk+emZ/oAuwo2O7jNMHv+zJ33baHw5cYB8E9qr4WpkGscWAWcSN57W8uWxVJT+vsWipTV6gjqgFRNms4+PgiYiVQX71cbIIFjoesFw8iyyzQkKY1bYAvPjckJSK4Ae9HAi1X0LF