---
title: "Password Spraying: Tek Parola, Her Hesap"
description: "Hesap kilitlemeye takılmayan kimlik bilgisi saldırısı: tek bir yaygın parola, domain'deki her hesaba karşı yalnızca bir kez denenir ve kilitleme eşiği aşılmaz. GOAD'ın north domain'i sürecin tamamını gösteriyor — parola politikasını okumaktan Winter2022'yi yeniden kullanan tek hesabı bulmaya kadar."
date: 2026-11-03
author: Sevban Dönmez (@jankesec)
canonical: https://jankesec.com/tr/yazilar/password-spraying/
---

## 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:

```bash
$ 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):

```bash
$ 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.

<figure class="diagram">
<svg viewBox="0 0 760 220" xmlns="http://www.w3.org/2000/svg" role="img" aria-label="Password spraying: tek parola Winter2022 domain'deki her hesaba birer kez denenir, lockout eşiği 5'in altında kalır ve bir hesap rickon.stark eşleşir.">
<defs><marker id="sp1" viewBox="0 0 8 8" refX="7" refY="4" markerWidth="7" markerHeight="7" orient="auto"><path d="M0,0 L8,4 L0,8 z" class="dg-arrow-crit" /></marker></defs>
<text x="0" y="16" class="dg-muted">PASSWORD SPRAYING · TEK PAROLA, HER HESAP, BİR KEZ</text>
<rect x="0" y="40" width="200" height="120" rx="8" class="dg-box" />
<text x="14" y="66" class="dg-label">1 parola</text>
<text x="14" y="88" class="dg-mono dg-compact">Winter2022</text>
<text x="14" y="108" class="dg-muted">lockout eşiği: 5</text>
<line x1="200" y1="100" x2="242" y2="100" class="dg-line-crit" marker-end="url(#sp1)" />
<rect x="246" y="40" width="240" height="120" rx="8" class="dg-box-accent" />
<text x="260" y="66" class="dg-label">her hesap, bir kez</text>
<text x="260" y="88" class="dg-mono dg-compact">arya · eddard · catelyn …</text>
<text x="260" y="108" class="dg-muted">1 deneme → kilitlenme yok</text>
<line x1="486" y1="100" x2="528" y2="100" class="dg-line-crit" marker-end="url(#sp1)" />
<rect x="532" y="40" width="228" height="120" rx="8" class="dg-box-danger" />
<text x="546" y="66" class="dg-label">tek isabet</text>
<text x="546" y="88" class="dg-mono dg-compact">rickon.stark:Winter2022</text>
<text x="546" y="108" class="dg-crit">geçerli domain girişi</text>
</svg>
<figcaption>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.</figcaption>
</figure>

## 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ım | Araç | Not |
| --- | --- | --- |
| Politikayı oku | `nxc smb <dc> --pass-pol` | eşik `5` → `4` güvenli deneme |
| Kullanıcı listesini kur | `nxc smb <dc> -u user -p pass --users` | her hesap bir hedef |
| Tek parolayı spreyle | `nxc smb <dc> -u users.txt -p "<tahmin>" --continue-on-success` | 1 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

- **Orange Cyberdefense, GOAD:** [orange-cyberdefense.github.io/GOAD](https://orange-cyberdefense.github.io/GOAD/)
- **The Hacker Recipes, Password Spraying:** [thehacker.recipes/ad/movement/credentials/bruteforcing/spraying](https://www.thehacker.recipes/ad/movement/credentials/bruteforcing/spraying)
- **HackTricks, Password Spraying:** [book.hacktricks.xyz](https://book.hacktricks.xyz/windows-hardening/active-directory-methodology/password-spraying)
- **NetExec documentation:** [netexec.wiki](https://www.netexec.wiki/)
- **MITRE ATT&CK, Password Spraying (T1110.003):** [attack.mitre.org/techniques/T1110/003](https://attack.mitre.org/techniques/T1110/003/)
