Maandelijkse vulnerability scanning: Eerste maand kosteloos! Meer informatie →
Hero

WIJ ZIJN

HACKIFY

Pass-the-Hash

Pass-the-Hash

18 juni 2026 · 5 min leestijd · begrippen

active-directory credentials post-exploitation

Wat is Pass-the-Hash?

Pass-the-Hash (PtH) is een aanvalstechniek waarbij een aanvaller met de hash van een Windows-wachtwoord op een ander systeem inlogt, zonder dat hij dat wachtwoord ooit kraakt. Het werkt omdat NTLM, het oude authenticatieprotocol van Windows, onder de motorkap controleert met de hash en niet met het wachtwoord zelf. Wie de hash bezit, logt dus in alsof hij die gebruiker is.

MITRE ATT&CK volgt de techniek als T1550.002, onderdeel van Use Alternate Authentication Material. Pass-the-Hash slaat de stap over die om een leesbaar wachtwoord vraagt en gaat rechtstreeks naar het deel van de authenticatie dat de hash gebruikt. De techniek bestaat al sinds 1997, toen Paul Ashton een aangepaste Samba-client publiceerde die hashes accepteerde in plaats van wachtwoorden. Vandaag hoort Pass-the-Hash bij vrijwel elke Active Directory pentest.

Hoe werkt het?

Windows bewaart een wachtwoord niet als platte tekst, maar als hash. De NT-hash is een MD4-hash van het wachtwoord in UTF-16 LE, zonder salt. Juist dat ontbreken van een salt is waar alles om draait. Er zit geen per-gebruiker variatie in, dus twee identieke wachtwoorden leveren altijd dezelfde hash op, op elke machine en in elke sessie. De hash is daarmee een vaste sleutel die blijft werken tot het wachtwoord verandert.

Bij NTLM-authenticatie verstuurt de client geen wachtwoord, maar een antwoord op een uitdaging van de server, berekend uit de hash. Iemand die de hash bezit, reproduceert dat antwoord zonder het wachtwoord ooit te kennen of te kraken. Een gestolen NT-hash is in de praktijk dus net zo waardevol als het wachtwoord zelf.

Die hash komt op drie plekken vandaan. Op een werkstation waar net een beheerder heeft ingelogd, ligt zijn hash in het LSASS-geheugen, en daar trekken aanvallers hem uit met tools als Mimikatz of Lsassy. Op een systeem zonder actieve sessies staan de hashes van lokale accounts in de SAM-database. Op een domain controller leven alle hashes van het domein in de NTDS.dit. Pass-the-Hash werkt tegen NTLM, niet rechtstreeks tegen Kerberos. Voor Kerberos bestaan de varianten Overpass-the-Hash en Pass-the-Ticket, waarbij de NT-hash dient om een Kerberos-ticket aan te vragen.

Pass-the-Hash in een pentest

Eenmaal in bezit van een hash proberen wij hem met NetExec op de rest van het netwerk. Tegen een lokaal account gebruiken we --local-auth, tegen een domein-account laten we die vlag weg.

# Probeer een lokale admin-hash op een hele range. (Pwn3d!) betekent lokaal beheer
nxc smb 10.0.0.0/24 -u administrator -H 32ed87bdb5fdc5e9cba88547376818d4 --local-auth

# Of binnen het domein, met een domein-account
nxc smb 10.0.0.0/24 -u jdoe -H 32ed87bdb5fdc5e9cba88547376818d4 -d acme.local

# Vinden we beheer, dan meteen een commando uitvoeren op elke host waar de hash werkt
nxc smb 10.0.0.0/24 -u administrator -H 32ed87bdb5fdc5e9cba88547376818d4 --local-auth -x "whoami"

De -H van NetExec accepteert de NT-hash rechtstreeks. Werkt u liever met Impacket, dan wil dat het volledige hashpaar LMHASH:NTHASH, met de LM-helft leeg.

# Impacket: een interactieve shell via Pass-the-Hash, lege LM-helft
psexec.py -hashes :32ed87bdb5fdc5e9cba88547376818d4 acme.local/[email protected]

Eén werkstation is meestal genoeg om te beginnen. Daar ligt de hash van een ingelogde beheerder in LSASS, en met die hash loggen we in op andere machines waar diezelfde beheerder rechten heeft. Op elke nieuwe machine lezen we opnieuw LSASS uit, bijvoorbeeld met de Lsassy-module van NetExec (-M lsassy), en pakken we de hashes van de gebruikers die daar zijn ingelogd. Zo werken we stap voor stap omhoog tot we bij een domain admin uitkomen, en dan ligt het hele domein open.

Wat Pass-the-Hash voor een aanvaller aantrekkelijk maakt, is dat de voor de hand liggende alarmen uitblijven. We raden geen wachtwoorden, dus er zijn geen mislukte logins en er gaat geen account-lockout af. We spelen alleen een bestaande hash opnieuw af. Maar onzichtbaar is het niet. Een omgeving met fatsoenlijke logging, een EDR of een MDR-dienst ziet het uitlezen van LSASS en de afwijkende NTLM-aanmeldingen (LogonType 3) prima. Of het opvalt, hangt er vooral van af of iemand meekijkt.

Hoe voorkomt u Pass-the-Hash?

Pass-the-Hash helemaal uitzetten kan alleen door NTLM af te schaffen, en dat is in een gegroeid netwerk zelden haalbaar. De keten die een aanvaller doorloopt is wel op meerdere plekken te breken:

  • LAPS (of Windows LAPS) geeft elk werkstation een uniek, willekeurig lokaal admin-wachtwoord. Eén gekraakte machine geeft dan geen toegang meer tot de rest, omdat die hash daar niet werkt. Dat haalt het klassieke probleem weg waarbij elk werkstation uit hetzelfde image dezelfde lokale admin-hash deelt.
  • Een tiering-model houdt privileged accounts weg van werkstations. Een domain admin hoort thuis op een domain controller, niet op een laptop, zodat zijn hash nooit in het geheugen van een minder vertrouwde machine belandt.
  • Credential Guard isoleert de NTLM-hashes en Kerberos-tickets in een door de hardware afgeschermd deel van Windows, los van LSASS. Let op dat het de SAM van lokale accounts niet beschermt, waardoor LAPS daarnaast nodig blijft.
  • NTLM beperken via de GPO “Network security: Restrict NTLM” haalt het protocol weg dat Pass-the-Hash misbruikt. Begin in audit-modus, bekijk het event log en bouw uitzonderingen op voordat u afdwingt. De groep Protected Users blokkeert NTLM voor leden, maar kan accounts buitensluiten, dus test voor u hem op beheeraccounts zet.
  • Monitoring vangt op wat preventie laat liggen. Een EDR of SIEM die LSASS-toegang en afwijkende NTLM-aanmeldingen correleert, ziet de keten waar één los event onschuldig oogt.

Twee veelgehoorde oplossingen werken hier niet. Het roteren van wachtwoorden stopt alleen de oude hash. De nieuwe ligt meteen weer klaar zolang de besmette machine niet is opgeschoond. En MFA helpt niet, want NTLM kent geen tweede factor op protocolniveau, waardoor hash-replay er gewoon langs gaat. In de praktijk voorkomt een gelaagde aanpak met tiering en LAPS als kern verreweg de meeste incidenten.

Veelgestelde vragen over Pass-the-Hash

Werkt Pass-the-Hash ook bij Kerberos?

Niet rechtstreeks. Pass-the-Hash werkt tegen NTLM, niet tegen Kerberos. De varianten voor Kerberos heten Overpass-the-Hash en Pass-the-Ticket. Bij Overpass-the-Hash gebruikt een aanvaller de NT-hash om een Kerberos-ticket (een TGT) aan te vragen, en met dat ticket beweegt hij vervolgens verder via Pass-the-Ticket. In moderne omgevingen waar RC4 is uitgeschakeld en alleen AES is toegestaan, lukt die truc met een kale NT-hash steeds vaker niet meer.

Is een wachtwoord wijzigen genoeg om Pass-the-Hash te stoppen?

Nee. Een wachtwoord-wijziging maakt alleen de oude hash ongeldig. De nieuwe hash is meteen weer bruikbaar en ligt direct opnieuw in het geheugen of in de NTDS.dit. Wijzigen werkt dus alleen als u tegelijk de besmette machine schoonmaakt of isoleert, anders trekt een aanvaller die er nog op zit gewoon de nieuwe hash eruit.

Helpt MFA tegen Pass-the-Hash?

Nee. NTLM kent geen tweede factor op protocolniveau, dus er is geen moment in de uitwisseling waar Windows om een code of pushmelding kan vragen. MFA die u op een interactieve login of in een applicatie instelt, wordt bij hash-replay simpelweg overgeslagen. Zolang NTLM aan staat, beschermt MFA dus niet tegen laterale beweging met een gestolen hash.

Hoe ernstig is een Pass-the-Hash-bevinding?

In een pentest scoort een werkende keten van Pass-the-Hash naar domain admin vrijwel altijd kritiek. De aanvaller heeft daarmee volledige controle over uw Active Directory-omgeving. We beschrijven in het rapport het afgelegde pad, maar leggen de nadruk op de configuratiefouten die de keten mogelijk maakten.

Gerelateerde artikelen