---
title: "Pass-the-Hash ve Overpass-the-Hash: Parolayla Değil, Hash'lerle Hareket Etmek"
description: "DCSync elimizde NTLM hash'leri bıraktı ama parola yoktu. Pass-the-hash ham hash'i doğrudan NTLM'e verir; overpass-the-hash ise aynı hash'i bir Kerberos TGT'sine çevirir. İkisi de hiçbir şey kırmadan Administrator olarak giriş yapar — ve aslında iki farklı sorunu çözer."
date: 2026-11-04
author: Sevban Dönmez (@jankesec)
canonical: https://jankesec.com/tr/yazilar/pass-the-hash-overpass-the-hash/
---

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

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

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

<figure class="diagram">
<svg viewBox="0 0 760 220" xmlns="http://www.w3.org/2000/svg" role="img" aria-label="Pass-the-hash ile overpass-the-hash karşılaştırması. Pass-the-hash NTLM hash'ini doğrudan hedefe karşı NTLM kimlik doğrulamasına besler. Overpass-the-hash hash ile pre-authentication yaparak KDC'ye bir AS-REQ gönderir, TGT alır ve Kerberos üzerinden hareket eder.">
<defs><marker id="pth1" 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">PASS-THE-HASH VS OVERPASS-THE-HASH</text>
<rect x="0" y="40" width="360" height="140" rx="8" class="dg-box-danger" />
<text x="16" y="64" class="dg-label">Pass-the-hash (NTLM)</text>
<text x="16" y="86" class="dg-mono dg-compact">nxc smb -H &lt;hash&gt;</text>
<text x="16" y="106" class="dg-mono dg-compact">hash → NTLM challenge → hedef</text>
<text x="16" y="126" class="dg-crit">yalnızca NTLM izinliyse çalışır</text>
<rect x="390" y="40" width="370" height="140" rx="8" class="dg-box-accent" />
<text x="406" y="64" class="dg-label">Overpass-the-hash (Kerberos)</text>
<text x="406" y="86" class="dg-mono dg-compact">getTGT -hashes &lt;hash&gt;</text>
<text x="406" y="106" class="dg-mono dg-compact">hash → AS-REQ → TGT → Kerberos</text>
<text x="406" y="126" class="dg-accent">NTLM kapalıyken çalışır</text>
<rect x="0" y="196" width="760" height="16" rx="4" class="dg-box" />
<text x="14" y="208" class="dg-muted dg-compact">aynı hash · iki protokol · düz metin parola yok</text>
</svg>
<figcaption>Aynı NTLM hash'i, iki kapı: pass-the-hash bir NTLM challenge'ına doğrudan yanıt verir, overpass-the-hash hash'i bir Kerberos TGT'siyle takas edip KDC üzerinden hareket eder.</figcaption>
</figure>

## 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](https://orange-cyberdefense.github.io/GOAD/)
- **The Hacker Recipes, Pass-the-hash:** [thehacker.recipes/ad/movement/ntlm/pth](https://www.thehacker.recipes/ad/movement/ntlm/pth)
- **HackTricks, Over Pass the Hash/Pass the Key:** [hacktricks.wiki](https://hacktricks.wiki/en/windows-hardening/active-directory-methodology/over-pass-the-hash-pass-the-key.html)
- **MITRE ATT&CK, Pass the Hash (T1550.002):** [attack.mitre.org/techniques/T1550/002](https://attack.mitre.org/techniques/T1550/002/)
- **MITRE ATT&CK, Pass the Ticket (T1550.003):** [attack.mitre.org/techniques/T1550/003](https://attack.mitre.org/techniques/T1550/003/)
