22 oktober 2026 · 5 min leestijd · tools
Hashcat is een tool die wachtwoordhashes kraakt. Een systeem slaat je wachtwoord namelijk niet op, maar een onomkeerbare berekening ervan: de hash. Wie die hash bemachtigt, kan het wachtwoord niet terugrekenen, maar wel gokken. Je probeert een kandidaat, berekent de hash, en kijkt of die overeenkomt.
Dat gokken is precies waar Hashcat goed in is. De tool gebruikt de grafische kaart, die duizenden berekeningen tegelijk uitvoert. Afhankelijk van het hashtype gaat dat van enkele duizenden tot tientallen miljarden pogingen per seconde. Hashcat is open source, draait op Linux, Windows en macOS, en ondersteunt honderden hashformaten.
Belangrijk om te begrijpen: Hashcat breekt geen encryptie. Het raadt wachtwoorden heel snel. Of dat lukt hangt volledig af van hoe het wachtwoord gekozen is.
Hashcat is het sluitstuk van veel van ons werk. Tijdens een pentest komen we regelmatig aan hashes, en die zeggen pas iets zodra we weten of ze te kraken zijn.
Na een WiFi pentest zetten we Hashcat op de handshakes die we met wifit3 of Wifite2 hebben opgevangen. Binnen een Windows-domein kraken we er de NTLM-hashes mee die uit een NTDS-dump komen, en de tickets uit Kerberoasting en AS-REP Roasting. Bij een webapplicatie met een gelekte gebruikersdatabase laat het zien hoe goed de wachtwoordopslag is gekozen.
De uitkomst is in alle gevallen hetzelfde soort bevinding: hoeveel procent van de wachtwoorden is binnen een realistische tijd te raden, en welke patronen zitten erin. Dat is bruikbaarder voor een organisatie dan een losse opmerking over wachtwoordbeleid.
Op Kali Linux zit Hashcat in de standaard-repositories:
sudo apt install hashcat
Voor serieus kraakwerk wil je de nieuwste versie plus de juiste GPU-drivers. Download die van hashcat.net. Controleer daarna of je kaart herkend wordt:
hashcat -I # welke apparaten ziet Hashcat?
hashcat -b -m 1000 # benchmark voor NTLM
Ziet Hashcat alleen je processor en niet je grafische kaart, dan ontbreken de OpenCL- of CUDA-drivers. In een virtuele machine is de GPU meestal niet beschikbaar, dus draai Hashcat bij voorkeur op het hostsysteem.
Elk commando bestaat uit vier delen: het hashtype (-m), de aanvalsmodus (-a), het bestand met hashes, en de bron van je kandidaten.
hashcat -m 1000 -a 0 hashes.txt /usr/share/wordlists/rockyou.txt
Dit zegt: het zijn NTLM-hashes (-m 1000), gebruik een woordenlijstaanval (-a 0), de hashes staan in hashes.txt, en probeer alles uit rockyou. Gekraakte wachtwoorden onthoudt Hashcat in een potfile, zodat je ze later terugziet met --show.
hashcat -m 1000 hashes.txt --show # toon wat al gekraakt is
hashcat -m 1000 hashes.txt --show --username # inclusief gebruikersnaam
-m |
Type | Waar je het tegenkomt |
|---|---|---|
22000 |
WPA-PBKDF2-PMKID+EAPOL | WiFi-handshakes uit wifit3 of Wifite2 |
1000 |
NTLM | Windows-wachtwoorden uit een NTDS-dump of uit het geheugen |
5600 |
NetNTLMv2 | Opgevangen inlogpogingen tijdens een netwerkpentest |
13100 |
Kerberos TGS-REP | Service-tickets uit Kerberoasting |
18200 |
Kerberos AS-REP | Tickets uit AS-REP Roasting |
1800 |
sha512crypt | /etc/shadow op Linux |
3200 |
bcrypt | Wachtwoordopslag van moderne webapplicaties |
0 / 100 |
MD5 / SHA1 | Oudere applicatiedatabases |
Het verschil tussen die types is groter dan het lijkt. NTLM en MD5 zijn razendsnel te berekenen, waardoor miljarden pogingen per seconde haalbaar zijn. bcrypt is met opzet traag en remt je af tot enkele tienduizenden pogingen. Daarom is de keuze van het hashalgoritme in een applicatie zo bepalend.
-a |
Modus | Wanneer je het gebruikt |
|---|---|---|
0 |
Woordenlijst | De standaardaanpak, eventueel met regels erbij |
1 |
Combinator | Plakt woorden uit twee lijsten aan elkaar |
3 |
Masker | Gericht bruteforcen van een bekend patroon |
6 |
Hybride | Woord uit een lijst met een masker erachter |
7 |
Hybride | Masker vooraan, woord erachter |
Een masker beschrijft de vorm van een wachtwoord. ?u is een hoofdletter, ?l een kleine letter, ?d een cijfer en ?s een leesteken. Het masker ?u?l?l?l?l?l?d?d zoekt dus naar woorden als Zomer24. Dat is veel efficiënter dan alles proberen, zolang je het patroon goed inschat.
# Bekend patroon: hoofdletter, vijf kleine letters, twee cijfers
hashcat -m 1000 -a 3 hashes.txt '?u?l?l?l?l?l?d?d'
Mensen kiezen zelden een kaal woord uit een lijst. Ze maken er Welkom2026! van. Met regels laat je Hashcat die varianten zelf genereren: hoofdletters toevoegen, cijfers erachter plakken, letters vervangen door cijfers.
hashcat -m 1000 -a 0 hashes.txt rockyou.txt -r /usr/share/hashcat/rules/best64.rule
best64.rule is de standaardkeuze en kost weinig extra tijd. Wil je dieper graven, dan is OneRuleToRuleThemAll populair, al loopt de looptijd dan flink op. Voor woordenlijsten gebruiken wij naast rockyou vooral SecLists, aangevuld met lijsten die we uit de organisatie zelf afleiden, zoals de bedrijfsnaam en plaatsnamen.
Hashcat draait op je eigen machine, dus er valt niets te detecteren. De verdediging zit volledig aan de kant van het wachtwoord en de opslag ervan.
Voor gebruikers geldt: lengte verslaat complexiteit. Een wachtwoordzin van vier willekeurige woorden is veel sterker dan P@ssw0rd!, ook al voldoet dat laatste aan meer complexiteitsregels. Juist die regels zorgen voor voorspelbare patronen, en precies die patronen vangen Hashcat-regels af.
Voor ontwikkelaars geldt: kies een langzaam hashalgoritme. bcrypt, scrypt of Argon2 zijn ontworpen om het kraken duur te maken, in tegenstelling tot MD5 of SHA1. Gebruik altijd een salt, zodat gelijke wachtwoorden niet dezelfde hash opleveren en rainbow tables waardeloos zijn.
En voor de organisatie als geheel: zorg dat een gekraakt wachtwoord niet meteen toegang geeft. Multifactorauthenticatie is de maatregel die de meeste schade voorkomt op het moment dat een wachtwoord toch bekend wordt.
Gebruik Hashcat alleen op hashes die van jou zijn of die je binnen een afgesproken opdracht hebt verkregen. Het kraken van wachtwoorden van anderen is zonder toestemming strafbaar.
-m-optie bepaalt het hashtype en die moet precies kloppen, anders vindt Hashcat niets. Het volledige overzicht staat in hashcat --help of in de voorbeeldenlijst op de site van het project. Weet je het type niet, dan kan een tool als hashid of name-that-hash meekijken, maar vaak weet je het al uit de context: komt de hash uit een WiFi-vangst, dan is het 22000, komt hij uit een Windows-domein, dan is het 1000.
Aircrack-ng is de klassieke suite voor het testen van draadloze netwerken: scannen, handshakes opvangen, deauthenticeren en WEP- of WPA-sleutels kraken.
Wifite2 automatiseert het testen van draadloze netwerken: het brengt WiFi-netwerken in kaart en past per netwerk handshake-, PMKID- en WPS-aanvallen toe.
wifit3 (vaak gezocht als wifite3) is de opvolger van Wifite2: een WiFi pentest tool die zonder aircrack-ng werkt en op Linux, Windows en macOS draait.