域内ACL攻防

域内ACL攻防

windows 访问控制模型

在 Active Directory 中设置权限,其方式与在文件中设置权限的方式几乎相同。权限控制都是使用windows 访问控制模型。

windows 访问控制模型是由两部分组成。

访问令牌(Access Token)

包含用户的标识(User SID,Group SIDS),以及特权列表。

安全描述符(security identifiers)。

被访问的安全对象的相关安全信息。

这里的安全对象包括但不限于

  • NTFS卷上的文件和目录
  • 注册表项
  • 网络共享
  • 服务
  • Active Directory对象
  • 进程等等

Access Token

当线程与安全对象交互或尝试执行需要特权的系统任务时,系统使用访问令牌来标识用户,访问令牌包括用户的SID、所在组的SID等等信息

Security Descriptors安全描述符

SID(Security Identifiers)即安全描述符。
安全描述符标识对象的所有者,并包含以下访问控制列表:
1、Discretionary Access Control List (DACL) 自由访问控制列表
2、System Access Control List (SACL) 系统访问控制列表

每一种控制列表中都存在若干条ACE(Access Control Entries)

安全描述符由Header、SID和DACL、SACL组成

查看domain user属性-->安全-->高级

高级安全设置中的权限就是DACL的列表

高级安全设置中的审核就是SACL的列表

其中红色圈出来的每一条都是一条ACE

ACE是针对特定用户或特定组的单个权限授予(或拒绝权利)的配置结构。ACE有许多不同类型,但是在Active Directory的权限中,只有四种不同的含义,两种分别用于授予和拒绝权限。

Access Mask

Access Mask在ACE中有Access Mask这个字段,它代表着此条ACE所对应的权限,比如完全控制(GenericAll)、修改密码(ResetPassword)、写入属性(WriteMembers)等等。

Trustees

Trustees的意思为受委托人,受托者是一个ACE所应用到的用户账户,组账户或者是登录会话。也就是说,谁是某一个ACE的受托者,那么这条ACE中的Access Mask所对应的权限(可能是拒绝可能是通过)就会赋予受托者。比如下面这一条的受委托人实际上就是zhangs账号。

域里常见可利用的ACL

  • GenericAll :拥有一个可以完全控制用户/组的权限
  • GenericWrite :此权限能够更新目标对象的属性值
  • Self-Membership :这条权限指的是某个账户能够把自身添加到某个组的权限(需要在某个组的高级权限中添加ACE,也就是说针对的是组对象)
  • WriteProperty :WriteProperty直译为写所有权。这个权限利用针对的对象为组对象,能够赋予账户对于某个组的可写权限
  • WriteOwner :WriteProperty on Group说的是对一个组具有WriteProperty权限的情况下,“写入全部属性”除了WriteProperty还包括了其他的权限
  • WriteDacl :WriteDacl允许委托人修改受影响对象的DACL。这意味着攻击者可以添加或删除特定的访问控制项,从而使他们可以授予自己对对象的完全访问权限。因此,WriteDacl是在链中启用其他权利的权利。

GenericAll

Add-DomainObjectAcl -TargetIdentity testuser -PrincipalIdentity test2user -Rights All
 -Verbose

给予了test2user对testuser用户完全控制的权限,在查看testuser的时候可以发现test2user的SID在查询里出现

也可以对一个组进行设置

powerview将yayi用户添加到domain admins用户添加

Add-DomainObjectAcl  -TargetIdentity "domain admins" -PrincipalIdentity test2user -Ri
ghts  all -Verbose

这样的话可以用test2用户控制domain admins用户组

GenericWrite

GenericWrite也是在Access Mask中进行标识,此权限能够更新目标对象的属性值,可以使用PowerView中的Set-DomainObject方法设置目标属性的值。

WriteDacl

WriteDacl允许委托人修改受影响对象的DACL。这意味着攻击者可以添加或删除特定的访问控制项,从而使他们可以授予自己对对象的完全访问权限。因此,WriteDacl是在链中启用其他权利的权利。

Self-Membership

这条权限指的是某个账户能够把自身添加到某个组的权限(需要在某个组的高级权限中添加ACE,也就是说针对的是组对象)
重点:主体、添加/删除自身作为成员

Add-DomainObjectAcl  -TargetIdentity "dnsadmins" -PrincipalIdentity test2user -Rights
  all -Verbose

Add-DomainObjectAcl  -TargetIdentity "dnsadmins" -PrincipalIdentity test2user -Rights
  all -Verbose

image-20220210141653969

WriteProperty (Self-Membership)

WriteProperty直译为写所有权。这个权限利用针对的对象为组对象,能够赋予账户对于某个组的可写权限,在Domain Admins组里设置zhangs账户的WriteProperty权限:

WriteProperty on Group

WriteProperty还包括了其他的权限:
CreateChild, DeleteChild, Self, WriteProperty, ExtendedRight, GenericRead, WriteDacl, WriteOwner
设置一个组的写入全部属性
(相当于获取了这个组的所有权限)

在Domain Admins组的列表中添加写入全部属性,会生成一条新的ACE

ACL攻击方式

DCSync权限

使用dcsync获取dump 域hash需要域对象或者是域内的高权限组中有以下三种权限的其中一个:

  1. 复制目录更改 Replicating Directory Changes (DS-Replication-Get-Changes)
  2. 复制目录更改所有 Replicating Directory Changes All (DS-Replication-Get-Changes-All)(Exchange用的就是这个)
  3. 正在复制筛选集中的目录更改 Replicating Directory Changes In Filtered Set (rare, only required in some environments)

用户添加DCSync权限

Add-DomainObjectAcl -TargetIdentity "DC=nncm,DC=com" -PrincipalIdentity test2user -Ri
ghts DCSync

mimikatz.exe "lsadump::dcsync /user:nncm\krbtgt" "exit"

Invoke-ACLpwn

https://github.com/fox-it/Invoke-ACLPwn

 ./Invoke-ACL.ps1 -SharpHoundLocation .\sharphound.exe -NoDCSync
    ./Invoke-ACL.ps1 -SharpHoundLocation .\sharphound.exe -mimiKatzLocation .\mimikatz.exe
    ./Invoke-ACL.ps1 -SharpHoundLocation .\sharphound.exe -mimiKatzLocation .\mimikatz.exe -userAccountToPwn 'Administrator'
    ./Invoke-ACL.ps1 -SharpHoundLocation .\sharphound.exe -mimiKatzLocation .\mimikatz.exe -LogToFile
    ./Invoke-ACL.ps1 -SharpHoundLocation .\sharphound.exe -mimiKatzLocation .\mimikatz.exe -NoSecCleanup
    ./Invoke-ACL.ps1 -SharpHoundLocation .\sharphound.exe -mimiKatzLocation .\mimikatz.exe -Username 'testuser' -Domain 'xenoflux.local' -Password 'Welcome01!'

参考

AD域里的ACL攻防

AD域中的ACL攻防探索

posted @ 2022-02-10 16:14  nice_0e3  阅读(1451)  评论(0编辑  收藏  举报