Parolasız kapı açan hash’ler
Şimdiye kadar secretsdump elimize uid:rid:lmhash:nthash satırlarıyla dolu bir klasör bıraktı; bunların çoğu için tek bir düz metin parola bile yok. Bir Active Directory engagement’ında NTLM hash’inin asıl değeri de burada yatar: çoğu zaman parolaya hiç ihtiyacın olmaz, çünkü hash’in kendisi kimlik doğrulaması için yeterlidir. Ham bir hash’i harekete dönüştüren iki teknik vardır ve bunlar birbirinden ayrı tutulmayı hak edecek kadar farklıdır:
- Pass-the-hash (PTH) hash’i doğrudan NTLM kimlik doğrulamasına verir.
- Overpass-the-hash (OPTH) hash’i bir Kerberos TGT’siyle takas eder ve Kerberos üzerinden hareket eder.
İkisi de hiçbir şey kırmadan Administrator olarak giriş yapar. Fark, seni sonunda hangi protokolün taşıdığıdır — ve bu fark, hangi ortamda hangi tekniğin işe yarayacağını belirler. Aynı hash’i iki farklı kapıdan kullanmak gibi düşünebilirsin: biri doğrudan NTLM’in kapısını çalar, diğeri ise Kerberos’tan geçerli bir bilet alıp o biletle ilerler.
Pass-the-hash: NTLM, hash’in nereden geldiğini umursamaz
NTLM kimlik doğrulaması, parolayı bildiğini aslında hash’i bildiğini kanıtlayarak ispatlar — protokol gerçekte yalnızca hash’i görür, düz metni asla. Dolayısıyla NTLM hash’ini elinde tutuyorsan, NTLM challenge’ına doğrudan yanıt verebilirsin. nxc bunu -H parametresiyle yapar:
$ nxc smb 192.168.56.10 -u Administrator -H c66d72021a2d4744409969a581a1705e -d sevenkingdoms.local
SMB 192.168.56.10 445 KINGSLANDING [+] sevenkingdoms.local\Administrator:c66d72... (Pwn3d!)
-p yok, parola yok. Çıktıdaki Pwn3d!, nxc’in hash’in SMB üzerinden bir Domain Admin olarak kimlik doğruladığını teyit etmesidir. Aynı -H parametresi kod çalıştırmak için impacket-psexec, impacket-wmiexec ve evil-winrm ile de çalışır — hash, NTLM tabanlı her araçta parolanın birebir yerine geçer. Bu yüzden tek bir hash’i ele geçirmek, o hesabın parolasını bilmekle pratikte aynı kapıları açar.
İşin püf noktası protokoldür. PTH yalnızca NTLM’e izin verilen yerlerde çalışır. Ortam NTLM’i tamamen kapatmışsa ya da bir kontrol NTLM girişlerini işaretliyorsa bu yol kapanır — tam da Kerberos sürümüne uzandığın an budur.
Overpass-the-hash: hash’i bir biletle takas etmek
Overpass-the-hash, hash’i “öteye” (over) kullanır. Onu NTLM’e vermek yerine, Kerberos AS-REQ pre-authentication’ını yanıtlamak için kullanırsın — bu, hesabın uzun vadeli anahtarını bildiğini kanıtlar — ve karşılığında gerçek bir TGT alırsın. Oradan itibaren, tıpkı normal bir giriş gibi Kerberos üzerinden hareket edersin:
$ impacket-getTGT sevenkingdoms.local/Administrator -hashes :c66d72021a2d4744409969a581a1705e
[*] Saving ticket in Administrator.ccache
$ export KRB5CCNAME=Administrator.ccache
$ nxc smb kingslanding.sevenkingdoms.local -k --use-kcache
SMB kingslanding.sevenkingdoms.local 445 KINGSLANDING [+] SEVENKINGDOMS.LOCAL\Administrator from ccache (Pwn3d!)
Bu sefer -k parametresine dikkat: kimlik doğrulama Kerberos’tur ve hash’ten bastığımız bilet tarafından yürütülür. Çıktı yine aynı Pwn3d!, ama bu kez KDC’nin etrafından değil, içinden geçerek gelir.
Pratik fark önemlidir. NTLM engellenmişse veya ağır şekilde denetleniyorsa, OPTH yine çalışır çünkü Kerberos zaten varsayılan ve meşru yoldur; bu yüzden savunma tarafında anormal görünme olasılığı daha düşüktür. Üstelik bir TGT’yi elinde tuttuğunda, hesabın erişebildiği her servis için servis bileti talep edebilirsin — hash artık resimden tamamen çıkar.
Tespit ve çözüm
Tespit: PTH, beklenmedik hostlardan gelen NTLM girişleri olarak görünür (Event 4624, logon type 3 ve paket olarak NTLM) — yani bir kullanıcının daha önce hiç giriş yapmadığı bir makineden kimlik doğrulaması. OPTH ise normal bir Kerberos girişi gibi görünür; ancak standart dışı bir iş istasyonundan gelen bir Tier-0 hesabı için 4768 AS-REQ kaydı ya da parolasının yakın zamanda kullanılmadığını bildiğin bir hesaba verilmiş bir TGT ipucudur.
Kontrol: Kök neden her zaman DCSync’tekiyle aynıdır: DA hash’ine sahip bir saldırgan. Bu nedenle asıl odak elde etmeyi engellemek olmalı — Protected Users (üyeleri için NTLM’i engeller), LAPS ve Credential Guard, hash’i almayı belirgin şekilde zorlaştırır. Hareket tarafında ise NTLM’i tamamen kısıtla, yalnızca AES kullanan Kerberos’u zorunlu kıl ve Tier-0 hesapların alışılmadık kaynaklardan kimlik doğrulamasını izle. Bu iki katman birlikte anlam kazanır: hash’i ele geçirmeyi zorlaştırmak saldırının başlangıcını, NTLM’i kapatmak ise elinde hash olsa bile yanal hareketin en kolay yolunu engeller.
Özet
| Özellik | Pass-the-hash | Overpass-the-hash |
|---|---|---|
| Protokol | NTLM | Kerberos |
| Girdi | NTLM hash | NTLM hash |
| Çıktı | doğrudan NTLM girişi | TGT → servis biletleri |
| Ne zaman | NTLM izinliyken | NTLM kapalı/denetlenirken |
| İpucu | garip host’tan 4624 NTLM | garip host’tan Tier-0 için 4768 |
Kanıt ve sınırlar
Hem Pass-the-Hash (nxc smb/winrm -H) hem de Overpass-the-Hash (impacket-getTGT -hashes ve ardından -k --use-kcache) adımları, DCSync sırasında elde edilen Domain Admin NT hash’leri kullanılarak izole GOAD laboratuvarındaki KINGSLANDING, WINTERFELL ve MEEREEN makinelerinde doğrulanmıştır. Bu testler, gerçek bir ortamda NTLM kısıtlamalarının ve denetimlerinin sonucu nasıl değiştirebileceğini görmek için değil, iki tekniğin çalışma biçimini karşılaştırmak için yapılmıştır.
Referanslar
- Orange Cyberdefense, GOAD: orange-cyberdefense.github.io/GOAD
- The Hacker Recipes, Pass-the-hash: thehacker.recipes/ad/movement/ntlm/pth
- HackTricks, Over Pass the Hash/Pass the Key: hacktricks.wiki
- MITRE ATT&CK, Pass the Hash (T1550.002): attack.mitre.org/techniques/T1550/002
- MITRE ATT&CK, Pass the Ticket (T1550.003): attack.mitre.org/techniques/T1550/003
Bu teknik not ne kadar güncel?
En son kaynak incelemesi, içerik güncellemesi veya yayın tarihi gösterilmektedir.
Birincil kamu kayıtları kontrol edildi. Ortama özgü davranış, ayrıca yeniden üretilmedikçe iddianın dışındadır.

