域渗透系列--攻击域信任

0x01 什么是域信任

大多数拥有多个域的组织都需要用户访问位于不同域中的共享资源。 控制此访问需要一个域中的用户也可以通过身份验证和授权以使用另一个域中的资源。,要在不同域中的客户端和服务器之间提供身份验证和授权功能,两个域之间必须存在信任。所以简单来说,一个域中的用户如果想访问另一个域(父级域或同级域)的资源,必须要将两个域的身份认证系统连接在一起,也就是建立域信任关系。

0x02 信任的域间协商过程
trust.png

如果用户请求访问驻留当前所在域之外的资源的服务主体名称 (SPN),域控制器将返回一个指向密钥分发中心(Windows 中的 KDC)的外部域特殊票据。用户的票据 (TGT) 包含在此 TGS-REP(票据授予服务回复)特殊票据中,并且此票据使用域之前交换的域间信任密钥加密/签名,而不是第一个域的 krbtgt 帐户。 这张票通常被称为“域间授予票/TGT”。 然后,外部域通过使用先前协商的域间信任密钥对其进行解密来验证/解密引用中包含的 TGT。

建立信任的目的是允许来自一个域的用户访问资源(如服务器上的本地管理员组),嵌套在组中或以其他方式使用另一个域中的安全主体(例如用于 AD 对象 ACL )。 对此有个例外是域林内信任(存在于同一 Active Directory 林中的域信任)——在林中创建的任何域都与林中的每个其他域保持隐式双向、可传递的信任关系。

0x03 域信任传递性

传递信任将信任关系扩展到其他域,非传递信任不会将信任关系扩展到其他域,用户可以潜在地访问多个域中的资源,如果域A信任域B,并且B信任C,则A绝对信任C,如果特定的信任关系是可传递的,那么信任域可以重新包装用户TGT,并将它们转发到其他域。此外,信任可以是单向也可以是双向的,双向信任实际上是两个单向信任。 单向信任意味着用户和计算机受信任域中的可以潜在地访问另一个信任域中的资源,单向信任只有一个方向,在非用户和计算机信任域中不能在访问信任域内的资源。 微软有一张图可以来表述这种单向和双向信任关系:

信任关系.png

0x04 枚举域信任

利用powerview中的Get-DomainTrust函数即可列举信任域

powerview.png

域信任作为“受信任的域对象”存储在 Active Directory 中,对象类为trustDomain,使用LDAP 查询方法也可以查找有关使用 LDAP 过滤器存在的域信任的信息。
LDAP.png

你可能感兴趣的:(域渗透系列--攻击域信任)