一篇文章搞懂跨森林攻击

点击星标,即时接收最新推文

04603b9a7454d3194f8f85c4db43736f.png

本文选自《内网安全攻防:红队之路》

扫描二维码五折购书

因为微软定义森林为安全边界,所以相比跨域攻击,攻击向量会少些,主要可以分为两类,一类是管理员无意引入的误配置,二是利用权限提升或者远程代码执行的漏洞。

跨森林信任介绍  

森林信任和域信任有相似之处,但也有不同之处。下图为ms08067.cn和ms08067.hk之间的信任:

3607c5ea7cdbe5cd5032923661e42748.png

森林信任

在上图的森林信任中,两个森林互相信任。这也是比较常见的森林信任形式。

和域信任一样,森林信任也可以是单向或者双向的。森林信任在域之间是可传递的,比如dev.ms08067.cn将信任dev.ms08067.hk,但是在多个森林之间不可传递,如果ms08067.hk信任另一个森林,如ms08067.us,ms08067.cn不会自动信任ms08067.us。

在森林内部,快捷信任(shortcut trust)可以加快认证过程。同样,外部信任(external trust)也可以创建快捷信任,如上图的uat.dev.ms08067.cn和lab.dev.ms08067.hk。

外部信任也是非传递的,即如果ms08067.cn和ms08067.hk之间没有建立信任,则除了有快捷信任的uat.dev.ms08067.cn和lab.dev.ms08067.hk域,其他域之间没有信任关系。

在跨森林信任中,比如上图,在子域如sales.ms08067.cn的用户可以查询和访问sales.ms08067.hk域的资源。我们也可以跨越森林边界枚举所有公开的信息,但能访问哪些服务取决于我们的组成员关系。   

但是,从枚举的角度,森林内信任和森林间信任存在一定区别。在森林间信任存在一个可选的配置,select authentication,该设置可以限制了跨森林信任的访问,我们可以只允许特定的用户访问特定的对象。

在上图的例子中,sales.ms08067.cn域中的任何用户都可以查询sales.ms08067.hk域中的所有对象。但如果配置了select authentication,则会创建一个映射,只允许sales.ms08067.cn中指定的用户对sales.ms08067.hk中指定的对象执行查询。

这种限制将大大降低了攻击者枚举外部信任的能力,增强了森林间信任的安全性。但是要实现这种配置需要大量的设计和管理的准备,成本比较高,所以很少被实施。

跨森林枚举  

在森林枚举时,第一步是枚举所有存在的森林信任。我们可以使用.NET的Forest.GetAllTrustRelatonships方法进行枚举。下面例子中,我们从dev.ms08067.cn域以dave用户权限进行枚举:

([System.DirectoryServices.ActiveDirectory.Forest]::GetCurrentForest()).GetAllTrustRelationships()

47bb327599220a82e7bab52622604d76.png

森林信任枚举

从输出可以看到源森林为ms08067.cn,对目的森林ms08067.hk存在信任关系,而且是双向信任。我们也可以使用PowerView的Get-ForestTrust方法进行枚举,输出结果和上图类似。

如果selective authentication没有启用,我们可以使用Get-DomainTrust指定根域的方式,枚举对ms08067.hk中子域的信任,然后对发现的子域继续进行枚举:

Get-DomainTrust -Domain ms08067.cn

1956437dc864132dbb0b9a18f9d09491.png

跨森林域信任枚举

输出显示了ms08067.cn的信任关系。我们也可以使用PowerView的Get-DomainTrustMapping方法自动枚举所有的域和森林信任:

Get-DomainTrustMapping

eb40a52e2278f343a7c5674f5f025ff2.png

PowerView自动枚举信任

从输出可以看到有森林内(WITHIN_FOREST)的信任,也有森林间(FOREST_TRANSITIVE)的信任。

在完成了对森林信任及对应子域信任的枚举后,我们可以开始枚举受信任森林(trusted forest)中的用户,组及其他信息。

PowerView的Get-DomainUser可以指定域进行搜索,下图为枚举ms08067.hk用户的部分输出:

Get-DomainUser -Domain ms08067.hk

12998e404c7f22c2dd325313c812096b.png

 跨森林用户枚举

因为森林是安全边界,所以可能比较难快速地找到明确的攻击向量。一个简单方法是搜索两个森林中有相同用户名的用户,因为他们可能属于同一个员工。如果存在这样的账户,则很可能两个账户之间使用相同的密码。

另外,在ms08067.cn的用户,也可能是ms08067.hk域某个组的成员。这种类型的组成员关系还是比较常见的,因为它是一种授予资源访问权限的比较简单的方法。

我们可以使用PowerView的Get-DomainForeignGroupMember方法枚举受信任森林或者域中的组:

Get-DomainForeignGroupMember -Domain ms08067.hk

4f7ff31d429b323a3f51e3b4c6b3317e.png

受信任森林组成员枚举

从上图输出可以看到,当前域的用户jeff,是ms08067.hk中myGroup组的成员。取决于myGroup组的访问权限,如果我们能入侵当前域的jeff用户,则可能获得ms08067.hk的访问权限。

—  实验室旗下直播培训课程  —

7c0bcc77fd3d2f0839ba833bf4f47136.png

abc07ee2cd823a1724cffebb32bd6dfa.jpeg

5343420e3a7968d6483d44e0b74a8661.jpegbb4abe36e86ce1dd02198f6187391184.png

d59c6ce6e3119551300dee7dcaaf5be5.png

6f1fee581ec75e9e0ebe907d2d457490.jpeg

5debf5189e51f0e763cbecd4d14d65a8.jpeg

97e482d3c121e6a4b7aaaa1b97093fa7.jpeg

fda3a54a0aa31c6e28ae0a11b116ed4b.png

和20000+位同学加入MS08067一起学习

a996212aa3b3f1613f05a1e8a233fea4.gif

  • 19
    点赞
  • 30
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值