20 mei 2026 · 4 min leestijd · begrippen
Pass-the-Hash (PtH) is een aanvalstechniek waarbij een aanvaller met de hash van een Windows-wachtwoord op het netwerk inlogt, zonder dat hij dat wachtwoord ooit kraakt. Windows verifieert gebruikers via een uitdaging-antwoord protocol dat onder de motorkap gebaseerd is op de NTLM-hash van een wachtwoord, niet op het wachtwoord zelf. Wie de hash bezit, kan zich dus authentiseren alsof hij die gebruiker is.
De techniek bestaat al sinds 1997. Paul Ashton publiceerde toen een aangepaste Samba-versie die dit aantoonde. Vandaag hoort Pass-the-Hash bij vrijwel elke Active Directory pentest, met tools als NetExec, Mimikatz en Lsassy.
Windows slaat wachtwoorden niet op als platte tekst maar als hash. De NTLM-hash is een MD4-hash van het wachtwoord in UTF-16 LE, zonder salt. Identieke wachtwoorden produceren dus identieke hashes, een eigenschap die verderop in dit artikel belangrijk wordt. De oudere LM-hash is sinds Windows Vista standaard uitgeschakeld.
Bij NTLM-authenticatie verstuurt de client geen wachtwoord, maar een antwoord op een server-uitdaging dat is berekend uit de hash. Iemand die de hash bezit, reproduceert dat antwoord zonder ooit het wachtwoord te kennen.
Het bemachtigen van die hash gebeurt op verschillende plekken. Op een werkstation waar zojuist een beheerder is ingelogd, leeft zijn hash in het LSASS-proces van Windows. Aanvallers trekken hem daar uit via Mimikatz, Lsassy of vergelijkbare tools. Op een systeem zonder actieve sessies staan de hashes van lokale accounts in de SAM-database. Op de domain controller leven alle hashes in de NTDS.dit.
Eenmaal in bezit van de hash gebruiken wij in een pentest standaard NetExec voor het volgende stuk van de keten:
# Probeer de hash op een range systemen voor lokale admin-toegang
netexec smb 10.0.0.0/24 -u administrator -H 32ed87bdb5fdc5e9cba88547376818d4 --local-auth
# Of binnen het domein, met een domain-account
netexec smb 10.0.0.0/24 -u jdoe -H 32ed87bdb5fdc5e9cba88547376818d4 -d acme.local
# Vinden we admin-toegang, dan direct commando's uitvoeren
netexec smb 10.0.0.5 -u administrator -H 32ed87bdb5fdc5e9cba88547376818d4 --local-auth -x "whoami /all"
Belangrijke flags:
| Flag | Doel |
|---|---|
-H <hash> |
NTLM-hash i.p.v. wachtwoord |
--local-auth |
Auth tegen lokaal SAM-account, niet tegen het domein |
-d <domain> |
Domain voor de account-context |
-x "<cmd>" |
Voer commando uit via SMB als auth slaagt |
Pass-the-Hash is geen op zichzelf staande aanval, maar de motor onder laterale beweging. Eén gecompromitteerde laptop is meestal voldoende om hashes van privileged accounts uit het geheugen te halen. Vanaf dat punt verspreidt de aanvaller zich door het netwerk zonder ooit een wachtwoord te kraken. Er is geen password spray die rate-limits laat afgaan en geen rij failed-login meldingen die het blue team in de gaten houdt.
De stille keten ziet er typisch zo uit:
Het probleem zit zelden in NTLM zelf, maar in twee onderliggende fouten. Eén: lokale admin-wachtwoorden die op meerdere systemen identiek zijn. Twee: privileged accounts die op werkstations werken in plaats van alleen op beheerservers.
In een Active Directory pentest beginnen wij vrijwel altijd met initiële toegang tot een werkstation, bijvoorbeeld via phishing of via een onveilig geconfigureerd service-account. Daarna dumpen we NTLM-hashes uit LSASS en proberen ze met NetExec op de rest van het netwerk.
Lukt het inloggen op een tweede systeem met lokale admin-rechten, dan dumpen we ook daar de hashes. Zo “hoppen” we door het netwerk totdat we hashes van privileged accounts vinden, met een domain admin als eindstation. In ons rapport staan de gevonden hashes en het afgelegde pad, maar de nadruk ligt op de configuratie-fouten die deze keten mogelijk maakten. Daar zit namelijk de oplossing.
Pass-the-Hash volledig uitschakelen vereist NTLM vervangen door Kerberos, wat in een gegroeide AD-omgeving zelden praktisch is. De aanvalsketen kan echter op meerdere plekken gebroken worden:
Geen van deze maatregelen werkt op zichzelf. In de praktijk voorkomt een gelaagde aanpak met tiering en LAPS als kern verreweg de meeste Pass-the-Hash incidenten.
Kerberoasting kraakt offline service-account-wachtwoorden uit Kerberos TGS-tickets. Wij vinden er in een AD-pentest vrijwel altijd zwakke service-accounts mee.
NTLM is het oudere Microsoft challenge-response authenticatieprotocol in Windows-netwerken. Wij tonen waar het lekt in uw AD en hoe u het kunt uitfaseren.
SSRF (Server-Side Request Forgery) laat een aanvaller uw server HTTP-verzoeken laten doen naar zelf-gekozen adressen. Wij testen waar dat mogelijk is.