Wachtwoorden kraken: hoe hackers te werk gaan en hoe je je kunt beschermen
Elke dag worden wereldwijd miljoenen wachtwoorden gekraakt. Dat is geen verrassing als je ziet hoeveel gegevens er online circuleren en hoe vaak mensen zwakke wachtwoorden gebruiken. Eén zwak wachtwoord kan al genoeg zijn om een heel netwerk te compromitteren – zo leidde in 2020 een standaard wachtwoord “kiosk/kiosk” bij een Londense gemeente tot een grote ransomware-aanval. Recent nog moest een Brits bedrijf van 158 jaar oud zijn deuren sluiten nadat hackers eenvoudig het wachtwoord van één medewerker hadden geraden. Of je nu een CISO, IT-beheerder of pentester bent, het is cruciaal om te begrijpen hoe wachtwoordkraken (oftewel “password hacking”) in zijn werk gaat en hoe je je organisatie hiertegen kunt verdedigen. In deze deep-dive bekijken we de technische én praktische kanten: van hoe wachtwoorden worden opgeslagen en gekraakt, tot waar het vaak misgaat in de praktijk en wat je kunt doen om dit te voorkomen.
Hoe worden wachtwoorden opgeslagen (en waarom geen platte tekst)
Moderne systemen slaan wachtwoorden niet als leesbare tekst op, maar in versleutelde vorm. Wanneer je een wachtwoord instelt, wordt het door het systeem door een cryptografische hashfunctie gehaald – een éénrichting-versleuteling – en pas die hash wordt opgeslagen. Bijvoorbeeld: het simpele wachtwoord "thriller" wordt na hashing iets als 9360404e4f35ac2090...f20d28e3 – een lange reeks die niet terug te lezen is naar het origineel. Bij het inloggen voert de gebruiker weer "thriller" in; het systeem hasht deze invoer en vergelijkt de uitkomst met de opgeslagen hash. Alleen als ze exact matchen, is het wachtwoord correct. Zo hoeft het echte wachtwoord nooit op de schijf te staan en kan zelfs een beheerder of aanvaller die de database in handen krijgt niet direct de wachtwoorden lezen.
Deze aanpak voorkomt rampzalige lekken zoals in het verleden, toen wachtwoorden soms nog in platte tekst werden bewaard. Als een website of applicatie jouw wachtwoord onbeveiligd weergeeft (bijvoorbeeld via e-mail of een admin die alle gebruikerswachtwoorden kan zien), is dat een gigantische rode vlag anno 2025. Gelukkig hanteren vrijwel alle serieuze diensten hashing – vaak in combinatie met extra beveiliging zoals salting – om wachtwoorden veilig(er) te bewaren.
Wat is een salt en waarom is het belangrijk?
Een salt is een willekeurige toevoeging aan een wachtwoord voordat het wordt gehashd. Het zorgt ervoor dat identieke wachtwoorden toch verschillende hashes opleveren per account. Zonder salt zou iedereen met bijvoorbeeld het wachtwoord "Thriller" exact dezelfde hashwaarde hebben. Voor een hacker zou dat betekenen dat één gevonden hash meteen voor meerdere accounts geldig is. Bovendien maakte dat vroeger zogeheten rainbow table-aanvallen mogelijk: hackers berekenden enorme tabellen met veelgebruikte wachtwoorden en hun hashes, zodat ze bij een datalek heel snel alle wachtwoorden konden opzoeken.
Door bij elke gebruiker een unieke salt te gebruiken, wordt dit ondervangen. Stel twee mensen hebben het wachtwoord "thriller". Het systeem kan voor de ene automatisch de string "thrillerwqiQAW" genereren en voor de andere "thrillerritPON" (waar die toegevoegde stukjes de salts voorstellen) en die vervolgens hashen. Beide gebruikers blijven gewoon "thriller" invoeren bij het inloggen, maar de opgeslagen hashes zijn totaal verschillend. Dit betekent dat een hacker elke hash apart moet kraken, zelfs als het oorspronkelijke wachtwoord hetzelfde was. Salts geven zo een extra laag beveiliging.
Let op: Niet alle systemen gebruiken salts. Windows Active Directory hanteert bijvoorbeeld de NTLM-hash voor wachtwoorden, welke geen salt bevat. Dat betekent dat als twee medewerkers hetzelfde wachtwoord kiezen, hun NTLM-hash identiek is. Voor een aanvaller is dat gunstig: hij hoeft maar één keer dat wachtwoord te kraken om beide accounts te krijgen. Het benadrukt hoe belangrijk het is om unieke, sterke wachtwoorden te hebben – en liever nog helemaal geen statische wachtwoorden voor kritieke accounts.
Brute-force aanvallen (alle combinaties proberen)
Bij een brute-force aanval proberen hackers alle mogelijke tekencombinaties totdat de juiste gevonden is. Theoretisch garandeert dit dat elk wachtwoord uiteindelijk kraakt; in de praktijk loopt het aantal mogelijkheden echter exponentieel op naarmate het wachtwoord langer wordt. Zo zijn er grofweg ~70 mogelijke tekens per positie (26 kleine letters, 26 hoofdletters, 10 cijfers en speciale symbolen). Een wachtwoord van één karakter zou je in een oogwenk hebben, maar een wachtwoord van 10 tekens kent 70^10 ≈ 2,8×10^18 combinaties – bijna drie quintiljoen! Een gemiddelde PC-processor zou daar eeuwen onophoudelijk voor moeten rekenen (de schatting is ~500.000 jaar).
Toch zijn brute-force aanvallen allesbehalve fictie. Dankzij moderne hardware en slim rekenwerk kunnen hackers drastisch veel sneller gokken dan “een gemiddelde CPU”. Vooral grafische kaarten (GPU’s) excelleren in het parallel berekenen van hashes. Een enkele high-end GPU zoals de NVIDIA RTX 4090 kan bijvoorbeeld rond de 288,5 miljard NTLM-hashes per seconde proberen. Een cluster van tientallen GPU’s haalt zelfs triljoenen hashes per seconde. Dat betekent dat wat ooit ondenkbaar was – miljarden pogingen per seconde – nu realiteit is voor goed uitgeruste aanvallers. Het Amerikaanse Hive Systems publiceert jaarlijks een tabel met schattingen hoelang brute-forcen duurt onder de huidige technologie. Hierin zie je dat eenvoudige, korte wachtwoorden tegenwoordig in luttele seconden te kraken zijn, terwijl zeer lange en complexe wachtwoordzinnen praktisch onkraakbaar blijven binnen een mensenleven:
Onderzoek laat zien dat korte wachtwoorden razendsnel kunnen worden gekraakt, terwijl het bij lange, complexe wachtwoordzinnen astronomisch langer duurt (bron: Hive Systems tabel 2024). Simpele 4-letter wachtwoorden zijn “instant” gekraakt, 5 kleine letters in ~3 seconden, maar een wachtwoordzin van 18 willekeurige letters zou theoretisch 350 miljard jaar vergen.
In bovenstaande schema is wel aangenomen dat elk mogelijk teken geprobeerd moet worden. In werkelijkheid ontwijken hackers vaak een volledige brute-force door slimmer te werk te gaan (zie verderop). Toch is brute-force een belangrijk wapen: zeker voor korte wachtwoorden of als men ongeveer de structuur weet, kan een geoptimaliseerde brute-force razendsnel resultaat boeken. Brute-force wordt meestal toegepast op offline vergaarde hashes (bijv. uit een databaselek of een Active Directory dump). Een belangrijk verschil is namelijk dat bij online pogingen (zoals inloggen op een account via internet) er bijna altijd blokkades zijn na enkele foutieve pogingen. Bij offline kraken, wanneer een hacker de hash in handen heeft, zijn er geen limieten – hij kan onbeperkt blijven proberen zonder dat iemand wordt geblokkeerd of een alarm afgaat.
Woordenboekaanvallen (dictionary attacks)
Omdat brute-forcen van lange wachtwoorden zelfs met GPU’s lang kan duren, kiezen aanvallers vaak voor een woordenboekaanval. Hierbij wordt een lijst met veelvoorkomende wachtwoorden en woordcombinaties uitgeprobeerd. In plaats van elk mogelijke willekeurige string te testen, beperkt de hacker zich tot bijvoorbeeld de top 10 miljoen meest gebruikte wachtwoorden. Deze woorden(lijsten) worden door de cracker software gehasht en vergeleken met de doelwit-hash. Als er een match is, heeft men het wachtwoord gevonden.
Woordenboekattacks zijn zo effectief omdat gebruikers wereldwijd veel op elkaar lijkende wachtwoorden kiezen. Bekende voorbeelden als 123456, qwerty of Welkom01 staan uiteraard hoog in de lijsten, maar ook voetbalclubs, seizoenen + jaartal, eigen namen en simpele patronen komen schrikbarend vaak voor. Bovendien beschikken hackers inmiddels over gigantische databases aan echte wachtwoorden uit eerdere datalekken. Denk aan compilaties als RockYou2021 met 8,4 miljard gelekte wachtwoorden, die in 2024 nog verder groeide tot bijna 10 miljard unieke wachtwoorden (RockYou2024). Met zulke lijsten van miljarden items in de achterzak kunnen aanvallers een zeer groot deel van de “wachtwoordruimte” slim afdekken, zonder letterlijk alle combinaties te hoeven brute-forcen. Uit onderzoek blijkt dan ook dat als een wachtwoord vaak gebruikt of voorspelbaar is, het in enkele uren te kraken is met woordenboekmethodes – of zelfs seconden, als het in de top van de lijst staat. Is jouw wachtwoord daarentegen écht uniek en complex, dan is de kans klein dat het via een woordenboekaanval wordt geraden.
Een variant hierop is credential stuffing: daarbij gebruiken hackers combinaties van uitgelekte gebruikersnamen en wachtwoorden om in te loggen op andere diensten. Als mensen hun zakelijke inlogwachtwoord bijvoorbeeld ook ergens anders hebben gebruikt en dat is ooit gelekt, kan een aanvaller met één druk op de knop testen of die combinatie ook toegang geeft tot de bedrijfsomgeving. Dit is in feite een woordenboekaanval op gebruikersniveau en een goede reden om nooit wachtwoorden te hergebruiken.
Hybride aanvallen en masks: slim gokken met patronen
Niet alle wachtwoorden staan kant-en-klaar in een lijst en niet alle zijn volledig random – veel bevinden zich ergens in het midden. Mensen maken vaak wachtwoorden die bestaan uit herkenbare woorden of namen met wat variaties, bijvoorbeeld Winter2023! (seizoensnaam + jaartal + uitroepteken) of Samantha@123 (naam met een apenstaartje en cijfers). Hier komen hybride aanvallen in beeld: combinaties van woordenboekstrategie en brute-force.
Een veelgebruikte techniek is de mask attack. Hierbij wordt een bepaald patroon verondersteld, zodat je gericht alleen combinaties binnen dat patroon brute-forcet. Een eenvoudig voorbeeld: je vermoedt dat een wachtwoord uit een naam van 6 letters bestaat, gevolgd door een 4-cijferig jaartal (bijv. Naam1234). In plaats van alle 10^ karakters door te lopen, beperk je de poging tot [A-Z][a-z][a-z][a-z][a-z][a-z][0-9][0-9][0-9][0-9] – een fractie van de totale zoekruimte. Hashcat (een toonaangevende passwordcracker-tool) laat zien hoeveel dit uitmaakt: het wachtwoord “Julia1984” (een hoofdletter + naam + vier cijfers) heeft een zoekruimte van 62^9 ≈ 1,35×10^16 combinaties als je elk teken positioneel vrij laat, wat op een snelle rig jaren zou duren. Maar door het patroon te beperken (hoofdletter, dan 4 kleine letters, dan 4 cijfers) krimpt de ruimte naar ongeveer 2,37×10^11 mogelijkheden – iets wat in dit geval in ~40 minuten door te ploegen is op 100 miljoen hashes/sec. 40 minuten vs. 4 jaar voor hetzelfde wachtwoord, puur door menselijk patroongebruik te exploiteren.
Hybride aanvallen combineren dus woordlijsten met zulke maskers en rules. Een hacker kan bijvoorbeeld een woordenlijst nemen met duizenden veelgebruikte basiswoorden, en daar automatisch variaties op proberen: eerste letter hoofdletter, een cijfer of symbool erachter, veelvoorkomende vervangingen (e→3, a→@, i→1, enz.). Deze aanpak is buitengewoon effectief, omdat hij lijkt op hoe mensen wachtwoorden kiezen. Uit gelekte wachtwoordstatistieken weten we dat bijvoorbeeld een hoofdletter vaak vooraan staat, cijfers achteraan, en dat bepaalde jaartallen of speciale tekens favoriet zijn. Pentesters (zoals wij bij Rootsec) maken hier dankbaar gebruik van: we combineren uitgebreide lijsten met namen en woorden met slimme maskers en regelsets. In plaats van alle 14-karakter combinaties blind te brute-forcen (onmogelijk binnen een normale pentestperiode), richten we ons op plausibele patrooncategorieën. Het resultaat is dat we in bijna elke pentest wel één of meerdere wachtwoorden kraken – zelfs in organisaties met ogenschijnlijk strenge policies, zoals minimaal 14 tekens. Vaak blijken die lange wachtwoorden namelijk stiekem samenstellingen van bekende woorden of patronen te zijn, die met een hybrid-aanpak binnen afzienbare tijd te raden zijn.
De zwakste schakel: veelvoorkomende wachtwoordproblemen in de praktijk
In de praktijk zien we dat er bijna altijd ergens een zwak wachtwoord of accountsituatie is die het hele netwerk in gevaar brengt. Hieronder enkele klassieke zwakke schakels die we als pentesters regelmatig tegenkomen:
-
Verouderde service-accounts: Accounts voor diensten/applicaties waarvan het wachtwoord al jaren niet is gewijzigd. Vaak staan deze op “wachtwoord verloopt nooit” en ontsnappen ze aan het beleid. Een aanvaller die zo’n hash te pakken krijgt, heeft alle tijd om ‘m te kraken – en vaak is het wachtwoord ook nog eenvoudig (bijv. Welkom2020 dat al 5 jaar zo staat).
-
Standaardwachtwoorden niet aangepast: Het gebeurt verbazend vaak dat software of apparatuur in gebruik is met het fabriekswachtwoord nog actief. Bijvoorbeeld een leveranciersaccount of adminconsole die nog “admin/admin” als inlog heeft, of een tool-account met gebruikersnaam
kiosken wachtwoordkiosk. Zulke standaardcombinaties zijn publiek bekend en worden door hackers als eerste geprobeerd. -
Vergeten gast/testaccounts: Accounts die ooit voor tests of externen zijn aangemaakt en nooit opgeruimd. Bijvoorbeeld een tijdelijke gebruiker voor een consultant die niet meer inlogt. Als het wachtwoord daarvan nooit veranderd is of iets simpel zoals Test123 was, blijft het een sluipgevaar.
-
Accounts buiten de password manager: Veel bedrijven gebruiken een password manager of kluis (zoals CyberArk) voor hun beheerders- en service-account wachtwoorden. Maar er is steevast wel een account dat (nog) niet onder deze veilige paraplu valt. Denk aan een applicatieaccount dat nog niet is gemigreerd of waarvan integratie moeilijk was – vaak blijven die op een statisch, mensbedacht wachtwoord staan. Eén zo’n vergeten account kan een zwakke schakel vormen.
-
Te gemakkelijke persoonlijke wachtwoorden: Ondanks beleid glipt er bijna altijd een gebruiker doorheen met een wachtwoord dat nét aan de complexiteitseisen voldoet maar toch makkelijk te raden is. Bijvoorbeeld Welkom@123 of Winter2023! – voldoet aan lengte en speciale tekens, maar ongelooflijk voorspelbaar. Hackers hebben lijsten met dit soort patronen en proberen die als eerste.
-
Wachtwoordhergebruik door medewerkers: Een ander risico is dat medewerkers hun zakelijke wachtwoord hergebruiken van elders. Als hun e-mail+wachtwoord ooit is gelekt bij een andere site, kan een aanvaller dat via credential stuffing in het bedrijfsaccount proberen. Zo hoef je niet eens te kraken – het wachtwoord was al bekend. Volgens het Verizon Data Breach Investigations Report vormen gestolen/gelekte inloggegevens elk jaar een groot percentage van de oorzaken van breaches.
Kortom: er is altijd wel iets. Een goed doordacht wachtwoordbeleid kan teniet worden gedaan door één vergeten account of één persoon die een eenvoudig wachtwoord kiest. Voor een aanvaller is dat genoeg om binnen te komen en vervolgens vaak verder privileges te escaleren. Het Hackney-incident laat dit duidelijk zien: een slapend account uit 2005 met gebruikersnaam kiosk en hetzelfde wachtwoord kiosk wist jaren later een heel netwerk plat te leggen
Hoe bescherm je je organisatie tegen wachtwoordkraken?
Gezien de bovenstaande informatie lijkt het misschien een hopeloze strijd – maar er is veel dat organisaties kunnen (en moeten) doen om het risico drastisch te verlagen. Enkele essentiële maatregelen:
-
Gebruik sterke, unieke wachtwoorden: Klinkt als een open deur, maar het blijft regel nummer één. Forceer een minimaal voldoende lengte (bij voorkeur 12 tekens of meer) en stimuleer daadwerkelijk willekeurige wachtwoorden of wachtzin-combinaties. Een password manager voor medewerkers is hierbij onmisbaar om gemak te bieden zonder zwakke wachtwoorden.
-
Elimineer voorspelbaarheid: Stel waar mogelijk geen eisen die voorspelbare patronen uitlokken (zoals verplichte speciale tekens én cijfers én hoofdletters – dit leidt tot veel Welkom@2023 achtige keuzes). Liever heb je lange wachtzinnen die makkelijker te onthouden maar moeilijker te raden zijn (bijv. vier willekeurige woorden). Als er complexiteitseisen zijn, leer gebruikers hoe ze die creatief kunnen invullen zonder voor de hand liggende substituties.
-
Zet alle accounts onder beheer: Inventariseer alle accounts in de omgeving – inclusief service accounts, legacy systemen, tool-accounts, gastgebruikers, etc. – en breng ze onder in een beheerd wachtwoordsysteem. Voor service-accounts biedt iets als CyberArk of de ingebouwde Windows Managed Service Accounts uitkomst, zodat wachtwoorden regelmatig roteren en niet door mensen worden hergebruikt.
-
Verwijder of wijzig standaardcredentials meteen: Nieuwe software, hardware of cloudservice in gebruik? Check direct op default logins en verander die voordat het systeem live gaat. Fabriekswachtwoorden zijn publiek geheim – sommige malware scant automatisch netwerken op apparaten met default creds. Laat zo’n open deur niet in je netwerk zitten.
-
Monitor op zwakke of gelekte wachtwoorden: Overweeg technische maatregelen zoals een banned-password list bij Active Directory (bijvoorbeeld via Azure AD Password Protection) om bekende veelvoorkomende wachtwoorden te blokkeren. Je kunt ook proactief hashes van nieuwe wachtwoorden vergelijken met databases van gelekte wachtwoorden (zoals HaveIBeenPwned) – als er een match is, weet je dat de gebruiker een compromise risico loopt en stel je een reset verplicht.
-
Multi-factor authenticatie (MFA): MFA is een van de beste verdedigingslinies als toch een wachtwoord wordt geraden of gestolen. Met een tweede factor (bijvoorbeeld een authenticator-app of hardware token) kan een aanvaller met alleen het wachtwoord nog niet inloggen op je systemen. Dit is met name cruciaal voor externe toegang (VPN, RDP, webmail, etc.). In het Hackney-voorbeeld wisten de hackers binnen te komen via een RDP-poort – MFA had dat kunnen voorkomen zelfs al was het wachtwoord zwak.
-
Security awareness en training: Menselijke fouten liggen vaak aan de basis. Train medewerkers om geen wachtwoorden te hergebruiken en om verdachte activiteiten te melden. Maak duidelijk waarom bepaalde wachtwoordregels bestaan. Een cultuur waarin iedereen zich bewust is van hun rol in beveiliging helpt om nalatigheid (zoals het nooit veranderen van dat ene wachtwoord) te voorkomen.
-
Regelmatig testen en auditen: Wacht niet tot een echte aanvaller de zwakke plekken vindt. Laat periodiek een pentest of interne audit uitvoeren gericht op wachtwoordveiligheid. Hierbij kunnen gespecialiseerde testers (zoals Rootsec) proberen om hashes te bemachtigen en te kraken – zo ontdek je in een gecontroleerde setting welke accounts gevaar lopen. De resultaten bieden inzicht om gericht je beleid bij te stellen en die zwakke schakels te dichten voordat een echte aanvaller toeslaat.
Tot slot: wachtwoorden zijn al decennia dé sleutel tot onze IT-omgevingen, en daarmee een favoriet doelwit voor kwaadwillenden. Hackers ontwikkelen steeds geavanceerdere methoden – van GPU-cracking clusters tot AI die patroonanalyses doet – om wachtwoorden te kraken. Aan de defensieve kant zien we ook beweging richting passwordless authenticatie (denk aan biometrie of fysieke security keys) om de afhankelijkheid van het menselijk wachtwoord te verminderen. Zover is jouw organisatie misschien nog niet, maar je kunt nú al grote winst boeken door de basics op orde te hebben. Begrijp hoe hackers te werk gaan, leer van real-world gevallen, en neem proactief maatregelen. Zo voorkom je dat jouw bedrijf de volgende statistiek wordt in de rij van geslaagde aanvallen. Zoals een Britse security-expert treffend zei: “We need organisations to take steps to secure their systems… Keer op keer zien we datalekken die niet hadden plaatsgevonden als dit soort eenvoudige fouten waren voorkomen.”. Zorg dus dat jouw wachtwoordbeleid geen loze formaliteit is, maar een levende praktijk – het kan het verschil betekenen tussen een afgewende aanval of een kostbare breach. Veiligheid begint bij het kiezen van het juiste wachtwoord, maar valt of staat bij het volhouden van de juiste discipline eromheen. Wees de hacker een stap voor! Neem contact nog vandaag met ons op.