前言
在域环境中安装Exchange后,系统会自动添加三个特定的安全组:Microsoft Exchange Security Groups、Exchange Trusted Subsystem和Exchange Windows Permission。如果能够控制这些组中的任何一个用户,就能继承该组的WriteDACL权限。通过WriteDACL权限,用户可以修改域对象的访问控制列表(ACL),最终利用DCSync功能导出域内所有用户的哈希值。
需要获取以下三个组中任意一个组的用户控制权:
- Microsoft Exchange Security Groups
- Exchange Trusted Subsystem
- Exchange Windows Permission
实验1:通过bloodhound分析得到如下图所示的结果
从上图中可以清楚地看到,用户所属的组对EXCHANGE WINDOWS PERMISSIONS组拥有所有权限,而EXCHANGE WINDOWS PERMISSIONS组对域具有writedacl权限。因此可以通过域渗透——利用Exchange服务器中特定的ACL来实现域提权的思路。通过DCSync进行提权,EXCHANGE WINDOWS PERMISSIONS组内的用户可以对任意用户修改ACL权限。
2、创建用户
修改用户密码:
3、将新建用户加入到EXCHANGE WINDOWS PERMISSIONS组,并允许远程登录
4、使用one用户通过winrm_shell.rb进行远程登录
5、利用DCSync导出哈希
one用户可以对自己添加三条ACE(访问控制条目),从而获得DCSync导出的权限。通常,如果获得了以下三个组中任意一个用户的权限,都可以利用DCSync导出域内所有用户的哈希。组名如下:
- Exchange Trusted Subsystem
- Exchange Windows Permission
- Organization Management
向域内的一个普通用户添加如下三条ACE:
- 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导出域内所有用户哈希的权限。
6、添加ACE的命令如下:
7、再次退出并重新登录
(1)导出administrator的哈希
(2)通过以下命令导出所有用户哈希