Exchange中的ACL利用分析

  1. 1. 0x00
  2. 2. 0x01 High Privilege Groups
  3. 3. 0x02 利用
    1. 3.1. Dcsync
    2. 3.2. Backdoor
    3. 3.3. 配合NTLM Relay
  4. 4. 0x03 检测 or 防御
  5. 5. 0x04 参考:

0x00

安装Exchange服务器后会添加一个名为Microsoft Exchange Security Groups的OU,这个OU里面有一些权限很高的组。

  • Exchange Trusted Subsystem
  • Exchange Windows Permission
  • Organization Management

image-20211101225935552

下面仔细分析一下

0x01 High Privilege Groups

首先是Exchange Windows Permissions这个组,这个组的权限非常高,它对整个域对象拥有WriteDACL的权限(也就是修改权限的权限),如下图:

image-20211101225217229

同时在整个域对象上具有修改密码/重置密码的权限,即对域内任意机器都可以重置和修改密码,还有很多高权限。

image-20211101225650492

另外存在一个组Exchange Trusted Subsystem,权限也非常高:不仅继承了Exchange Windows Permissions组的权限还继承了Administrators的权限。

image-20211101225738741

看文章的时候发现还有第三个组Organization Management权限也非常高,发现这个组也继承了Administrators组的权限。(在域对象上并未发现直接的特殊权限)

image-20211101230123347

0x02 利用

Dcsync

我们对域对象具有WriteDACL权限则可以为指定用户添加任意DACL。

可以在域对象上为指定域用户添加一个 GenericAll 权限或者添加下面两个权限再进行 DCSync

  • Replicating Directory Changes
  • Replicating Directory Changes All

Backdoor

拿到域控权限后我们可以利用Exchange服务的ACL留后门。

  1. 思路1:直接在前面描述的三个组中添加后门用户进去,但是这种操作还是比较明显。
  2. 思路2:类似Shadow Admin,我们可以只为后门用户添加对Exchange组的特殊ACL。如添加对Exchange Windows Permissions组的Add Member权限。

具体实现参考 三好学生师傅博客

配合NTLM Relay

条件是可以诱导域控发起请求然后Relay到LDAP。直接通过LDAP协议把指定User添加到Exchange Windows Permissions组。(Relay到LDAP之后的一个利用思路。)

0x03 检测 or 防御

0x04 参考:

域渗透——使用Exchange服务器中特定的ACL实现域提权

https://blog.fox-it.com/2018/04/26/escalating-privileges-with-acls-in-active-directory/