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.
- 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 passwordspray -d {{DOMAIN}} --dc {{DC_IP}} users.txt '{{PASS}}' nxc smb {{DC_IP}} -u users.txt -p '{{PASS}}' --continue-on-success nxc ldap {{DC_IP}} -u users.txt -p '{{PASS}}' --continue-on-success nxc smb {{DC_IP}} -u '{{USER}}' -p passwords.txt --continue-on-success nxc smb {{DC_IP}} -u '' -p '' --pass-pol kerbrute passwordspray -d {{DOMAIN}} --dc {{DC_IP}} users.txt '{{PASS}}' --safe nxc smb {{DC_IP}} -u users.txt -H {{NTHASH}} --continue-on-success Invoke-PasswordSprayOWA -ExchHostname {{RHOST}} -UserList users.txt -Password '{{PASS}}' o365spray --spray -U users.txt -p '{{PASS}}' --domain {{DOMAIN}} Invoke-MSOLSpray -UserList users.txt -Password '{{PASS}}' 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—--safebayrağı kilitleme algılarsa durur. - SMB:
nxc smb ... --continue-on-success—Pwn3d!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 / Exchange →
MailSniper Invoke-PasswordSprayOWA(kullanıcı enum içinInvoke-UsernameHarvestOWA). - Office 365 / Azure AD →
o365spray(önce--validateile 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ılkalı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_SKEWalırsınız;sudo ntpdate {{DC_IP}}veyasudo 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.