Brute force’un tam tersi

Brute force tek bir hesabı binlerce parolayla döver ve kırılana kadar durmaz. Bu yaklaşım hesap kilitleme eşiğini dakikalar içinde tetikler; üstelik savunmacıların en kolay fark ettiği şey de tam olarak budur. Password spraying mantığı tersine çevirir: tek bir yaygın parola seçip domain’deki her hesaba, her birine yalnızca bir kez olacak şekilde dene. Denemeler tek bir hesapta birikmediği için kimse kilitlenmez ve yeniden kullanılmış tek bir parola hedefe ulaşmak için yeter.

Bu yüzden spraying’in başarısı hızla değil, dağıtımla ilgilidir: aynı parolayı çok sayıda hesaba yaymak, tek bir hesabı zorlamaktan hem daha sessiz hem de kilitleme açısından çok daha güvenlidir.

Tekniğin tamamı, ilk adımda kilitleme politikasını bilmeye bağlıdır. Eşiği bilmeden atmaca davranırsan hesapları kilitleyip dikkat çekebilirsin. nxc --pass-pol bu politikayı doğrudan DC’den okur:

$ nxc smb 192.168.56.11 -u samwell.tarly -p Heartsbane --pass-pol
SMB  192.168.56.11  445  WINTERFELL  Account Lockout Threshold: 5
SMB  192.168.56.11  445  WINTERFELL  Password Complexity Flags: 000000

Burada iki sayı önemlidir. Eşik 5 olduğu için bir hesapta kilitleme devreye girmeden önce güvenle 4 giriş deneyebilirsin; ancak spray sırasında her hesabı parola başına yalnızca bir kez denediğin için bu sınır zaten hiçbir zaman riske girmez. Karmaşıklık bayraklarının 000000 olması (yani karmaşıklığın kapalı olması) ise zayıf ve tahmin edilebilir parolaların bu domain’de gerçekten kabul edildiğini söyler. Bu ikisi bir arada spray için yeşil ışıktır: hem kilitlenme riski yoktur hem de tahmin edilebilir parolaların var olma ihtimali yüksektir.

Spray’in kendisi

Onu güvenli kılan şey yönüdür: tek maddelik bir parola listesi, çok maddelik bir kullanıcı listesi. nxc kullanıcıları tek tek gezer ve yalnızca sen açıkça söylersen durur (--continue-on-success, yani bir isabet bulunduğunda koşunun kesilmemesi için):

$ nxc smb 192.168.56.11 -u users.txt -p "Password1" --continue-on-success
SMB  192.168.56.11  445  WINTERFELL  [-] arya.stark:Password1 STATUS_LOGON_FAILURE
SMB  192.168.56.11  445  WINTERFELL  [-] eddard.stark:Password1 STATUS_LOGON_FAILURE
... (all twelve fail) ...

$ nxc smb 192.168.56.11 -u users.txt -p "Winter2022" --continue-on-success
SMB  192.168.56.11  445  WINTERFELL  [+] north.sevenkingdoms.local\rickon.stark:Winter2022

İlk spray (Password1) temiz bir şekilde sonuçsuz kalır — bu normal bir sonuçtur. İkinci spray (Winter2022) ise mevsimsel bir parolayı yeniden kullanan tek bir hesap yakalar. O tek [+] satırı bir dayanak noktasıdır: az önce on bir hesapta başarısız olan aynı parola bir hesapta işe yaramıştır ve artık 5 denemelik eşiği hiç tetiklemeden geçerli bir domain girişimiz vardır.

Parola seçimi bu işin asıl ustalık kısmıdır. Gerçek spray’lerde sıradan kullanıcıların aklına ilk gelen mevsimsel ve kuruma özgü tahminler kullanılır — Summer2024!, CompanyName1, Welcome123 gibi — çünkü karmaşıklık kapalı olduğunda bu tür tahminler domain’de gerçekten yaşayabilir. Birkaç yüz kullanıcıya karşı bir düzine böyle paroladan oluşan bir liste genellikle tek bir isabet için yeterlidir ve neredeyse hiç kilitleme trafiği üretmez. Bu da saldırıyı hem ucuz hem de savunma tarafında gözden kaçması kolay hale getirir.

PASSWORD SPRAYING · TEK PAROLA, HER HESAP, BİR KEZ 1 parola Winter2022 lockout eşiği: 5 her hesap, bir kez arya · eddard · catelyn … 1 deneme → kilitlenme yok tek isabet rickon.stark:Winter2022 geçerli domain girişi
Bir spray, tek bir parolanın birçok hesaba karşı her birine bir kez denenmesidir — 5'lik bir eşiği tetiklemesi matematiksel olarak imkânsızdır ve bir hesap aynı parolayı yeniden kullandığında yeterli olur.

Tespit ve çözüm

Tespit: Bir spray, tek bir kaynaktan kısa süre içinde farklı kullanıcı adlarına ait 4625 (başarısız giriş) olaylarının patlaması gibi görünür — bu, tek bir kullanıcı adı için çok sayıda başarısızlık üreten brute force’un tam tersidir. Tek bir IP’den farklı TargetUserName değerleriyle gelen çok sayıda 4625 kaydını izle; spray’in imzası budur. Yalnızca hesap bazında değil, kaynak bazında da desen aramak gerekir, çünkü tek tek bakıldığında her başarısızlık sıradan görünür.

Kontrol: Parola karmaşıklığını zorunlu kıl (bu domain’de kapalıydı), yaygın ve mevsimsel parolaları yasaklı parola listesiyle engelle ve tahmin edilen bir parolanın tek başına yetmemesi için MFA iste. İzleme tarafında ise yalnızca hesap başına değil, tek bir kaynaktan farklı kullanıcı adlarına gelen N sayıda başarısız giriş için alarm ver; böylece spray’in dağıtık yapısı yakalanabilir.

Özet

AdımAraçNot
Politikayı okunxc smb <dc> --pass-poleşik 5 → 4 güvenli deneme
Kullanıcı listesini kurnxc smb <dc> -u user -p pass --usersher hesap bir hedef
Tek parolayı spreylenxc smb <dc> -u users.txt -p "<tahmin>" --continue-on-success1 parola × çok kullanıcı
İsabette kır—dayanak noktası geri kalan her şeyi besler

Kanıt ve sınırlar

Parola politikası sorgusu (--pass-pol) ve tek adaylı parola spreyleme (Hod0r!, Winter2022!), izole GOAD laboratuvarındaki WINTERFELL (192.168.56.11) üzerinde yürütülmüştür. Buradaki tüm hesaplar ve parolalar GOAD’ın sentetik north.sevenkingdoms.local dizinine aittir; yani gerçek bir kurumda karşılaşacağın parola dağılımını değil, kontrollü bir test ortamını temsil eder.

Referanslar

Kaynaklar ve güncellik

Bu teknik not ne kadar güncel?

Kontrol edilen kaynaklar3 Kasım 2026

En son kaynak incelemesi, içerik güncellemesi veya yayın tarihi gösterilmektedir.

İnceleme DurumuKamuya açık kaynaklar incelendi

Birincil kamu kayıtları kontrol edildi. Ortama özgü davranış, ayrıca yeniden üretilmedikçe iddianın dışındadır.