Credential Harvesting — GPP cpassword, SYSVOL, LSA Secrets, SAM
Domain icinde dolasan kimlik bilgilerini topla: SYSVOL'deki Groups.xml GPP cpassword (statik AES anahtariyla decrypt edilir), paylasimlardaki/registrydeki/dosyalardaki sifreler, ve makine uzerinde LSA secrets + SAM hash'leri. Tek bir cleartext sifre veya hash genelde yatay/dikey hareketin anahtaridir.
- En az bir gecerli domain hesabi (SYSVOL/paylasim okuma) ya da hedef makinede local admin (LSA/SAM dump)
- GPP icin: eski (2008 R2 oncesi olceklerde) ya da yanlis konfigure edilmis GPO'lar
Komutlar
nxc smb {{DC_IP}} -u {{USER}} -p {{PASS}} -M gpp_password nxc smb {{DC_IP}} -u {{USER}} -p {{PASS}} -M gpp_autologin impacket-Get-GPPPassword -dc-ip {{DC_IP}} {{DOMAIN}}/{{USER}}:{{PASS}}@{{DC_HOST}} smbclient //{{DC_IP}}/SYSVOL -U '{{DOMAIN}}/{{USER}}%{{PASS}}' -c 'recurse ON; prompt OFF; mget *' gpp-decrypt 'edBSHOwhZLTjt/QS9FeIcJ83mjWA98gw9guKOhJOdcqh+ZGMeXOsQbCpZ3xUjTLfCuNH8pG5aSVYdYw/NglVmQ' nxc smb {{RHOST}} -u {{USER}} -p {{PASS}} --local-auth --lsa nxc smb {{RHOST}} -u {{USER}} -p {{PASS}} --local-auth --sam impacket-secretsdump {{DOMAIN}}/{{USER}}:{{PASS}}@{{RHOST}} nxc smb {{RHOSTS}} -u {{USER}} -p {{PASS}} --spider C\$ --content --pattern password pass cpassword Neden cred harvesting?
Active Directory’de yatay/dikey hareket cogu zaman tek bir sizmis sifre veya NTLM hash’le baslar. Bu sayfa, makineye girdikten (ya da sadece dusuk yetkili bir domain hesabin oldugunda) gidip toplayabilecegin tum kredansiyel kaynaklarini kapsar.
1. GPP cpassword (SYSVOL’un altin madeni)
Eski Group Policy Preferences (GPP), mapped drive / scheduled task / local user gibi ayarlarda sifreleri cpassword alaninda saklardi. Sorun: Microsoft, sifreleyen AES-256 anahtarini MSDN’de public olarak yayinladi. Yani SYSVOL’u okuyabilen herkes (her domain user okuyabilir) bu sifreleri decrypt edebilir.
Aranacak dosyalar: Groups.xml, Services.xml, Scheduledtasks.xml, DataSources.xml, Printers.xml, Drives.xml. cpassword="" (bos) ise sifre yok demektir.
Otomatik yol: nxc ... -M gpp_password ya da impacket-Get-GPPPassword. Bulunan string’i ayrica gpp-decrypt ile offline cozebilirsin.
2. Autologon (Registry.xml)
gpp_autologin modulu, otomatik oturum acan makinelerin DefaultUserName/DefaultPassword degerlerini cikarir. Genelde kiosk/ortak makinelerde temiz parola dusurur.
3. LSA Secrets
Makinede local admin isen --lsa ile LSA secret store’u dumplarsin. Burada cached domain logon (DCC2/MSCash2 — sadece kirilabilir, pass edilemez), servis hesabi cleartext sifreleri (_SC_<service>), ve DPAPI machine masterkey bulunur. Servis hesabi sifresi cogu zaman domain hesabidir = direkt yatay hareket.
4. SAM
--sam local kullanicilarin (Administrator dahil) NTLM hash’lerini verir. Bu hash’ler pass-the-hash icin kullanilir; ayni local admin sifresi parola yeniden kullaniliyorsa tum ag boyunca PtH ile yayilirsin (LAPS yoksa).
5. Paylasim/dosya/registry tarama
--spider --content --pattern ile dosya icerigi tara; config dosyalari, PowerShell scriptleri, unattend.xml, web.config connection string’leri sik hedeftir.
Sik hatalar
- GPP modern domainlerde (2012+) cogu zaml temizdir; yine de eski GPO artiklari kalmis olabilir, SYSVOL’u manuel tara.
- SAM/LSA dump icin local auth bayraginı (
--local-auth) unutma; domain hesabi local admin degilse erisemezsin. - LSA’daki DCC2 hash’i pass edilemez, yalnizca hashcat ile kirilir (mode 2100).