导语:什么是Vshadow? Vshadow( vshadow.exe )是用于管理卷影副本的命令行实用程序。此工具包含在Windows SDK中 ,并由微软签名(稍后会详细介绍)。 Vshadow具有许多功能,包括执行脚本和调用支持卷影子快照管理的命令的功

middle-earth-shadow-of-mordor.jpg

什么是Vshadow?

Vshadow( vshadow.exe )是用于管理卷影副本的命令行实用程序。此工具包含在Windows SDK中 ,并由微软签名(稍后会详细介绍)。

vshadow_signed.png

Vshadow具有许多功能,包括执行脚本和调用支持卷影子快照管理的命令的功能。毫不奇怪,这些功能可能会被滥用于特权级的防御规避,权限持久性和文件提取。

在这篇博文中,我们将讨论Vshadow命令执行,自动启动持久性以及使用Vshadow提取敏感文件副本并提取Active Directory(AD)数据库来进行离线HASH转储和密码破解。

命令执行

使用Vshadow执行命令取决于与影子复制操作的“成功”交互(例如,创建快照,移除快照,对快照执行某些操作等)。 Vshadow.exe支持-exec参数,该参数可用于执行二进制文件(.exe)或脚本(.bat/.cmd)。 -exec参数不支持命令参数,因此有效载荷执行需要在这些限制的上下文中进行包装。

在继续操作之前,让我们考虑一些命令执行的其他要求。 首先,我们需要在机器上拥有一定的权限(例如管理员),因为处理卷快照(并调用卷影服务)被视为敏感操作。 其次,我们需要将Vshadow可执行文件放到目标机器上。 如果Windows SDK已经安装,那么我们所要做的就是找到磁盘上二进制文件的路径。 否则,我们必须将其上传到目标主机上。 最后,我们需要确保我们的有效载荷如前面所说的那样被封装起来。 在本文的命令执行示例中,我们将简单地使用notepad.exe作为我们的有效载荷。

用vshadow.exe调用一个有效载荷并不完全是最隐秘的方法,但我们可以通过这种方式来操作该工具,以最大限度地减少我们的入侵痕迹。 我们要执行的命令的基本结构如下:

  vshadow.exe -nw -exec=<\path\to\exe> <system drive>

指定-nw允许我们在不调用卷影复制写入的情况下创建卷影副本。 实际上,这是一个非持久性卷影副本,它不会在 “物理”磁盘上留下证据(*请注意,这并不一定会阻止检测卷影副本的创建,因为我们仍然是在模拟这个过程)。 现在,我们运行以下命令:

vshadow.exe -nw -exec=c:\windows\system32\notepad.exe c:

输出的内容可以在下图中看到:

vshadow_execution.png

在此上下文中成功执行Vshadow将创建一个'假的'影子副本集,然后启动由-exec参数指定的有效载荷(notepad.exe)。 在这里发生了一些有趣的事情,可能有助于防御和取证人员……

· 直到子进程完成执行,Vshadow.exe才会完成执行。

· 有效载荷(notepad.exe)是vshadow.exe的子进程。

vshadow_child.png

· Vshadow的成功执行将启动卷影服务(VSS),如系统事件ID 7036所示,并调用VSSVC.exe进程。

vshadow_vssvc.png

vshadow_system_event.png

自动启动持久性和防御逃避

由于Vshadow是一个带符号的二进制文件,并具有命令执行能力,因此我们有一个潜在的作为逃避手段的候选人——AutoRuns(某种程度上)。 例如,让我们通过输入以下命令为我们的'邪恶'的有效载荷添加持久性(通过Registry Run Key):

reg add HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run /v VSSBackup /t REG_EXPAND_SZ /d "C:\Program Files (x86)\Windows Kits\10\bin\10.0.16299.0\x64\vshadow.exe -nw -exec=c:\windows\system32\notepad.exe c:"

在AutoRuns中,当过滤“Microsoft Entries”时,我们不会看到我们的登录记录,如下图所示:

autoruns_microsoft_filter.png

但是,如果我们取消选择“Microsoft Entries”并启用“Windows Entries”,我们将看到我们的持久性机制的记录:

autoruns_windows_filter.png

这种可见性的原因是由于vshadow.exe没有用Windows证书签名。 但是,如果vshadow.exe被放置到磁盘上某个更好的文件位置并且名称足够迷惑人,那么该Autoruns记录仍可能相当好的“融入”到所有记录中。 将条目展开查看可能会也可能不会迷惑一个安全分析师:

autoruns_highlighted.png

敏感文件提取 – AD数据库

由于我们可以使用VSS创建快照,因此我们使用此实用程序在域控制器(DC)上提取Active Directory数据库( ntds.dit ),然后使用secretsdump.py离线转储散列。

首先,我们将vshadow.exe复制到我们的DC(本例中为Windows 2K12),并使用-p参数创建“c:”的持久性卷影副本(此处无写入),命令如下:

vshadow.exe -p -nw C:

请注意以下屏幕截图中的Shadow Copy Set ID(UUID)和Volume Name,因为这些将在后续命令中使用:

vshadow_create_persistent_snapshot.png

其次,我们使用Volume名称复制影子副本中的AD数据库,如下所示:

copy \\?\GLOBALROOT\Device\HarddiskVolumeShadowCopy1\windows\ntds\ntds.dit c:\ntds.dit.bak

以下输出显示复制操作成功:

copy_ntds.png

第三,我们从注册表中提取SYSTEM配置单元。 我们需要这个来转储AD数据库的内容:

reg.exe save hklm\system c:\temp\system.bak

以下输出显示复制操作成功:

reg_save.png

接下来,让我们确保按预期提取了我们想要的文件:

dir *.bak

我们的两个文件如下图所示:

dir_files.png

为了更好的衡量,我们需要通过指定卷影集ID来清理并删除卷影副本:

vshadow -dx={46d3c3ee-2840-4152-ba5c-450ea401869a}

操作如下所示,并提示执行成功:

vshadow_delete.png

最后,让我们移动我们的战利品(ntds.dit.bak和system.bak)并使用secretsdump.py离线转储系统哈希。 使用以下命令:

secretsdump.py -ntds ntds.dit.bak -system system.bak LOCAL

成功执行 ! 我们已经使用Vshadow获得了域中的用户哈希值!

secretsdump.png

其他研究

· 有关自动规避技巧的全面信息,请查看evolved-autoruns演示幻灯片。Huntress实验室的人们在DerbyCon 7(2017)上发表了这个精彩的演讲。

· @ PyroTek3维护一个优秀的网站——ADsecurity.org。 这篇文章展示了许多攻击者可以用来检索/转储AD数据库的方法,包括利用VSS的工具(例如vssadmin,ntdsutil等)。

结论

除了监视上述特征外,防御者可能需要留意奇怪的卷影服务(VSS)行为,例如随机创建/删除以及任何涉及AD数据库文件(ntds.dit)的活动。 此外,监视vshadow.exe开关的命令调用。 文件散列和名称可能会发生更改,但“-nw -exec =”和“-p -nw”可能会持续存在。

源链接

Hacking more

...