DACL
DACL揭露了域内对象与对象之间的权限关系,可以是用户对用户的,用户对主机的,主机对主机的,等等。例如,用户A对组B具有GenericWrite的权限,那么用户A可以更改组B的成员。DACL无疑是域内最值得我们关注的信息之一,因为它与我们的利用息息相关。
对于DACL的枚举,最直观的就是使用SharpHound进行枚举然后使用BloodHound进行查看,虽然SharpHound在枚举的时候,因为请求过多可能引起防御方的警惕。
除此之外,我们也可以组合PowerView中的命令,查看某个用户的DACL,以及我们当前用户对其他用户的DACL:
枚举特定用户的DACL
Get-ObjectAcl -Identity offsec -ResolveGUIDs | Foreach-Object {$_ | Add-Member -NotePropertyName Identity -NotePropertyValue (ConvertFrom-SID $_.SecurityIdentifier.value) -Force; $_}
枚举当前用户对其他用户的权限
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")) {$_}}