之前在《导出当前域内所有用户hash的技术整理》中研究过如何通过Volume Shadow Copy实现对ntds.dit文件的复制, 可用来导出域内所有用户hash。而最近在Carbon Black的博客上面又学到了一些新的利用方法,于是整理成文。
学习链接:
Bit9 + Carbon Black Threat Research Team Unveils Nefarious Intents of “Volume Shadows Copies”
本文将详细介绍以下两方面内容:
注:
Windows Server 2003和XP系统需要Volume Shadow Copy Service SDK 7.2,下载地址如下:
https://www.microsoft.com/en-us/download/details.aspx?id=23490
Windows Server 2008 R2和Windows 7系统需要对应的SDK版本(该版本Win8也适用),下载地址如下:
https://www.microsoft.com/en-us/download/details.aspx?id=3138
通过vssadmin查看卷影镜像:
vssadmin list shadows
注: vssadmin系统自带
如图
通过wmic查看卷影镜像:
wmic /NAMESPACE:"\rootCIMV2" PATH Win32_ShadowCopy GET /all /FORMAT:list
如图
提取出关键的信息DeviceObject、ID和InstallDate,对应wmic命令如下:
wmic /NAMESPACE:"\rootCIMV2" PATH Win32_ShadowCopy GET DeviceObject,ID,InstallDate /FORMAT:list
如图
注:
在删除某个卷影镜像时需要填入该卷影镜像的ID
将卷影镜像和文件夹建立虚拟关联,类似于通过快捷方式可访问卷影镜像中保存的文件,使用mklink命令,系统自带,需要管理员权限
格式如下:
mklink /d 指定快捷方式路径 [Shadow copy device name]
注:
[Shadow copy device name]后要带一个 如果不小心漏掉,在建立关联后无法对其进行后续操作,可直接删除该关联再重新建立
例如,选取\?GLOBALROOTDeviceHarddiskVolumeShadowCopy4
,对应的命令如下:
mklink /d c:testvsc \?GLOBALROOTDeviceHarddiskVolumeShadowCopy4
如图,成功创建
\?GLOBALROOTDeviceHarddiskVolumeShadowCopy4
对应的时间点为InstallDate=20160907160419.347805+480,于是c:testvsc中保存的即为此时间点系统中保存的文件
测试系统: Win 8.1 x86
测试exe: Win32Project1.exe
执行后弹框,如图
上传Win32Project1.exe和VShadow.exe,为当前系统创建卷影镜像,管理员权限执行如下命令:
vshadow.exe -p c:
如图,为C盘创建卷影镜像,DeviceName为\?GLOBALROOTDeviceHarddiskVolumeShadowCopy5
,ID为{10f63e0b-e47d-4121-969f-87fa458c5043}
命令行执行:
mklink /d c:vscfiletest \?GLOBALROOTDeviceHarddiskVolumeShadowCopy5
创建文件夹c:vscfiletest,执行其中的测试文件Win32Project1.exe 如图
使用Process Explorer查看Win32Project1.exe,路径显示为c:vscfiletesttestWin32Project1.exe
如图
删除快捷方式文件夹就好,命令行参数如下:
rmdir c:vscfiletest
注:
即使文件夹中的Win32Project1.exe正在运行,仍可删除
通过wmic找到卷影镜像对应的ID:
wmic /NAMESPACE:"\rootCIMV2" PATH Win32_ShadowCopy GET DeviceObject,ID,InstallDate /FORMAT:list
\?GLOBALROOTDeviceHarddiskVolumeShadowCopy5
对应的ID为{10f63e0b-e47d-4121-969f-87fa458c5043}
完整的删除代码为:
vssadmin delete shadows /shadow={10f63e0b-e47d-4121-969f-87fa458c5043} /quiet
注:
加入/quiet是为了强制删除,省去输入Y确认
如图
补充: 删除所有卷影镜像的命令为:
vssadmin delete shadows /all /quiet
此时,Win32Project1.exe仍在后台运行,而源文件c:vscfiletesttestWin32Project1.exe已经不存在
如图
Search by hashes:
process_md5:3e1360a23ea5f9caf4987ccf35f2fcaf OR process_md5:576b379a59d094fb7b06c261a96034a6 OR process_md5:d0cd7ad91b2ff568275d497214ff185c OR process_md5:97fd0f3c05f1707544a9a6a0c896b43e OR process_md5:d560c155b68121d98f8370e7deafbc4d OR process_md5:c5d2992c8cba0771f71fe4d7625a0b8b OR process_md5:53d3e33ad31af6716559f29e889aca49
Search for Vshadow being executed:
modload:vss_ps.dll cmdline:”-p C:”
modload:vss_ps.dll cmdline:”-p” -path:System32werfault.exe
Search for mklink being executed via a shell out:
cmdline:””C:Windowssystem32cmd.exe” /c mklink /D”
Search for processes being executed from the volume shadow copy locations:
path:device/harddiskvolumeshadowcopy*
path:device/harddiskvolume*
以上引用自https://www.carbonblack.com/2015/08/05/bit9-carbon-black-threat-research-team-unveils-nefarious-intents-of-volume-shadows-copies/
总结一下渗透测试中Volume Shadow Copy的作用:
更多学习资料:
https://www.carbonblack.com/2015/08/03/new-crypto-ransomware-lurks-in-the-shadows/
http://securityweekly.com/2012/10/15/volume-shadow-copies-the-los/
https://technet.microsoft.com/en-us/library/ee923636.aspx