Skip to main content

DACL

DACL揭DACL 揭露了域内对象与对象之间的权限关系,可以是用户对用户的,用户对主机的,主机对主机的,等等诸如此类。例如,用户A对组B具 John 对用户 app_security 具GenericWrite的 GenericWrite 权限,那么用户A可 John 可更改组B的成员。DACL无为其设置一个 SPN。DACL 无疑是域内最值得我们关注的信息利用之一,因为它与我们的利用息息相关

对于DACL的 DACL 的枚举,最直观的就是使用SharpHound进 SharpHound 进枚举信息搜集然后使用BloodHound进 BloodHound 行查看,虽然SharpHound在枚举 BloodHound 有的时候,因为请求过多可能引起防御方的警惕。也会遗漏一些 DACL。

image.png

除此之外,我们也可以组合 PowerView中的命令,查看某个用户的DACL,以及我们当前用户对其他用户的DACL:

 

枚举特定用户的DACL

指定目标用户,可以看到其他域对象作用于其的 DACL (对该用户具有 DACL 的对象以及权限)

Get-ObjectAcl -Identity offsec<用户名> -ResolveGUIDs | Foreach-Object {$_ | Add-Member -NotePropertyName Identity -NotePropertyValue (ConvertFrom-SID $_.SecurityIdentifier.value) -Force; $_} | Select Identity,AceType,ObjectCN,ActiveDirectorys | findstr '\'

我们可以看到,用户 john 对 app_security 具有 WriteProperty 权限。

image.png

枚举当前用户对其他用户的权限

Get-DomainUser | Get-ObjectAcl -ResolveGUIDs | Foreach-Object {$_ | Add-Member -NotePropertyName Identity -NotePropertyValue (ConvertFrom-SID $_.SecurityIdentifier.value) -Force; $_} | Foreach-Object {if ($_.Identity -eq $("$env:UserDomain\$env:Username")) {$_}}

枚举当前用户对其他组的权限

Get-DomainGroup | Get-ObjectAcl -ResolveGUIDs | Foreach-Object {$_ | Add-Member -NotePropertyName Identity -NotePropertyValue (ConvertFrom-SID $_.SecurityIdentifier.value) -Force; $_} | Foreach-Object {if ($_.Identity -eq $("$env:UserDomain\$env:Username")) {$_}}