前言
本文接上篇文章探究子域如何横向移动到父域的Enterprise Admin组,并给出防御方法。
Enterprise Admins组
在父子域中,最重要的莫过于Enterprise Admins组了,并且该组只存在于林根域中,其成员有权管理林内的所有域,这是因为在添加子域后,Enterprise Admins组会自动添加到林中每个域中的Administrators组成员中。但是该组在其他域树中是不存在的,所以在子域中是看不到有Enterprise Admins组。本文也是基于Enterprise Admins组来提权。
跨域访问流程
用户在登录某台客户机的时候,系统必须验证用户的身份,除了账号密码之外,还会为用户建立一个access token(访问令牌),其中包含用户账户的SID、用户所隶属的所有组的SID等数据。当用户取得access token后,如果他要访问计算机内的资源时,便会出示access token,而系统会根据access token内的SID数据来决定用户拥有何种权限。 同理当用户连接网络上其他计算机时,这台计算机也会为该用户建立一个access token,当用户需要访问资源的时候,便会出示access token,这台计算机便会根据出示的access token的SID数据,来决定用户拥有何种的访问权限
SID History
根据微软的解释,SID History 是一个支持迁移方案的属性,每个用户帐户都有一个关联的安全标识符 (SID),用于跟踪安全主体和帐户在连接到资源时的访问权限。SID 历史记录允许将另一个帐户的访问有效地克隆到另一个帐户,并且对于确保用户在从一个域移动(迁移)到另一个域时保留访问权限非常有用。 而一个账户可以在SID-History Active Directory 属性中保存额外的 SID ,从而允许域之间进行可相互操作的帐户迁移(例如,SID-History 中的所有值都包含在访问令牌中)。 为了达到SID History攻击的目的,我们的将使用域管理员权限,将获取到的有权限的SID值插入到SID历史记录中,以实现模拟任意用户/组(例如Enterprise Admins)的权限,达到跨域提权目的。
枚举域信任
1、用全局编录的方式进行域信任查看
Get-DomainTrust -SearchBase “GC://( ((ENV:USERDNSDOMAIN)”