出口信任
相比于入口信任与双向信任,出口信任的利用途径则少了许多,因为我们无法直接对目标域进行枚举和访问。如图所示,white-bird 域信任 med-deal 域,因此在 white-bird 域里,我们并不能枚举到 med-deal 域中的信息。
信任密钥利用
在存在信任关系的 2 个域之中,都会分别存储着信任账户,它们的 NTLM 值相同以作为跨域密钥。虽然信任账户不存在特权,但能允许我们以目标域的上下文进行信息枚举。
我们可以通过 Mimikatz 的 lsadump::trust /patch 命令导出信任密钥,也可以通过 DCSync 的方式提取。
如果使用 DCSync 的方式,我们需要首先获得受信域对象的 GUID。
我们能看到,值是相同的。因为该密钥每 30 天更换,所以我们往往选择 [Out] 中的。
然后,我们使用 Rubeus 为目标域的信任账户申请 TGT,信任账户的名称形式为对方域 (也就是我们当前所在的域)的域名 (非 FQDN),并以 $ 结尾,看起来像主机账号。
rubeus.exe asktgt /user:white-bird$ /domain:med-deal.local /rc4:6dc6bd04edfb6b7298b9679531c9e2ca /nowrap
我们可以看到 TGT 请求成功了。创建一个牺牲会话,导入票据,便可以对目标域进行枚举了。
其他
除了信任密钥外,还有一些更加通用的跨域方法,包含但不局限于利用 SQL 链接、窃取正在访问当前域的目标域用户的令牌等。在 MSSQL 利用的内容中,我们知道 Med-deal 中 Srv02 部署的 MSSQL 实例与 Web02 所部署的 MSSQL 实例存在 SQL 链接关系。