Wachtwoord kraken met John the Ripper op Linux
John the Ripper is een van de krachtigste tools voor het kraken van wachtwoorden die beschikbaar zijn op Linux-systemen. Het blijft zo populair omdat het relatief eenvoudig te gebruiken is, het ondersteunt veel verschillende soorten wachtwoordhashes en zal bijna elk type wachtwoord brute forcen.
In deze zelfstudie ziet u hoe u John the Ripper op verschillende Linux-distributies installeert en aan de slag gaat met het gebruik van het programma om wachtwoorden te kraken via Linux-opdrachten. U leert ook de basisprincipes van hashing-algoritmen, het gebruik van woordenlijsten voor brute force-kraakpogingen en best practices om ervoor te zorgen dat uw wachtwoorden moeilijk te verkrijgen zijn voor aanvallers.
waarschuwing!
U mag John the Ripper alleen gebruiken en proberen wachtwoorden te kraken voor testdoeleinden en tegen wachtwoordhashes die van u zijn. Het schenden van accountbeveiliging en het verkrijgen van wachtwoorden voor het account van iemand anders kan u in de problemen brengen met de wet, dus gebruik het programma op uw eigen systeem, uitsluitend om uzelf te informeren over cyberbeveiliging en om de werkzaamheid van uw eigen accountwachtwoorden te testen.
In deze tutorial leer je:
- Hoe John the Ripper op de belangrijkste Linux-distributies te installeren
- Waar wordt John the Ripper voor gebruikt en hoe werkt het?
- Hoe worden wachtwoordhashes verkregen?
- Waar worden woordenlijsten voor gebruikt?
- Wat is de brute force-methode?
- Lijst met methoden voor het hashen van wachtwoorden
- Hoe het wachtwoord van een Linux-account te kraken met John the Ripper
- Hoe versleutelde zip-archieven te kraken met John the Ripper
Video
John the Ripper installeren
De meeste Linux-distributies worden niet standaard geleverd met John the Ripper geïnstalleerd. Op beveiliging gebaseerde en penetratietestdistributies zoals Kali Linux en Parrot OS zullen de tool echter al hebben geïnstalleerd.
U kunt de juiste opdracht hieronder gebruiken om John the Ripper te installeren met de pakketbeheerder van uw systeem.
John the Ripper installeren op Ubuntu, Debian en Linux Mint:
sudo apt updatesudo apt install john
Om John the Ripper te installeren op Fedora, CentOS, AlmaLinux, Rocky Linux en Red Hat:
sudo dnf install john
Om John the Ripper op Arch Linux en Manjaro Linux te installeren:
sudo pacman -S john
Aan de slag met John the Ripper
Nu John the Ripper is geïnstalleerd, zijn we klaar om het te gaan gebruiken. Maar laten we eerst enkele basisprincipes bespreken van hoe het programma werkt. Het is beter om enig begrip te hebben van hoe John the Ripper wachtwoorden kraakt en hoe wachtwoorden in de eerste plaats kwetsbaar zijn, voordat je meteen in running John duikt.
Hoe werkt John the Ripper?
Op dit punt begrijp je zeker dat John the Ripper wordt gebruikt om wachtwoorden te kraken. Maar, hoe werkt dat precies?
We zullen John the Ripper gebruiken om te proberen wachtwoorden te kraken via wachtwoordhashes. Tijdens een penetratietest zal een beveiligingsexpert proberen wachtwoordhashes te bemachtigen, die vervolgens aan John kunnen worden doorgegeven voor kraakpogingen.
Wachtwoordhashes verkrijgen
Wachtwoordhashes kunnen op een aantal manieren worden verkregen. Het hangt allemaal af van het besturingssysteem in kwestie, of het programma, of het protocol dat wordt gebruikt. Linux slaat bijvoorbeeld wachtwoordhashes voor systeemaccounts op in het bestand /etc/shadow. We kunnen John tegen deze wachtwoordhashes laten draaien om te proberen wachtwoorden voor gebruikers op het systeem te kraken. Zip-bestanden zijn een ander voorbeeld van het kraken van wachtwoorden via een hash. Het hulpprogramma zip2john kan de wachtwoordhash van een beveiligd zip-bestand detecteren zodat John het vervolgens kan kraken.
Een andere veelgebruikte manier om wachtwoordhashes te verkrijgen, is door middel van packet sniffing, met name op minder veilige en verouderde protocollen zoals HTTP, FTP en Telnet. Van deze protocollen is bekend dat ze wachtwoordhashes in leesbare tekst verzenden, zodat de hashes gemakkelijk kunnen worden vastgelegd op apparaten die zich tussen twee eindpunten bevinden.
WIST JE DAT?
Wachtwoordhashes zijn geen versleutelde wachtwoorden. Elk wachtwoord levert een unieke hash op en de hashes zijn zo ontworpen dat ze niet kunnen worden reverse-engineered. In plaats van het wachtwoord direct te kraken, hasht John the Ripper duizenden (of miljoenen, of meer, afhankelijk van de complexiteit van het wachtwoord) aan strings en vergelijkt die hashes met een wachtwoordhash. Als de twee hashes overeenkomen, weet John wat je wachtwoord is.
Woordenlijsten en brute forcing
John vertrouwt op woordenlijsten en brute force-methoden om een wachtwoord te verkrijgen. Woordenlijsten zijn gewoon tekstbestanden met een reeks tekst op elke regel. Doorgaans hebben de meest effectieve woordenlijsten de meest gevonden wachtwoorden bovenaan. Iedereen kan een woordenlijst maken, en veel daarvan zijn online te vinden. Ze hebben vaak tienduizenden lijnen, of in sommige gevallen zelfs miljoenen. Een van de zeer populaire woordenlijsten heet rockyou.txt. Laten we eens kijken naar de eerste 10 regels van het bestand:
zcat /usr/share/wordlists/rockyou.txt.gz | head -10
123456
12345
123456789
password
iloveyou
princess
1234567
rockyou
12345678
abc123
De bovenstaande tekenreeksen zijn enkele van de meest voorkomende wachtwoorden. Wanneer je John aan het werk zet voor een hash-bestand en rockyou als de te gebruiken woordenlijst levert, zou het deze wachtwoorden in een oogwenk kraken, omdat het deze eenvoudige en veelgebruikte wachtwoorden eerst probeert.
OPMERKING Zelfs
met alle technologische vooruitgang van de afgelopen 10 jaar en de campagnes om gebruikers bewuster te maken van accountbeveiliging, zijn eenvoudige en voorspelbare wachtwoorden zoals hierboven weergegeven nog steeds zeer gebruikelijk, ook in bedrijfsomgevingen.
John the Ripper wordt standaard geleverd met een eigen woordenlijst, meestal te vinden op /usr/share/john/password.lst. Het zou automatisch moeten worden gedownload wanneer u John installeert. Meer toegewijde hackers gebruiken doorgaans een verscheidenheid aan woordenlijsten. Kali Linux wordt geleverd met tientallen, en ze kunnen worden gevonden door uit te voeren:
locate wordlist
Brute forcing is waar John zijn toevlucht toe zal nemen als hij klaar is met het proberen van elk wachtwoord uit de meegeleverde woordenlijst. Met deze methode zal John gewoon willekeurige strings genereren in de hoop dat er uiteindelijk een zal werken. Het is veel minder effectief dan het gebruik van een woordenlijst, maar het is een veelgebruikte tactiek bij het kraken van een zeer veilig wachtwoord.
Merk op dat brute force-aanvallen een enorme hoeveelheid rekenkracht vergen. Het zal ook veel tijd kosten, afhankelijk van de hardware en de complexiteit van het wachtwoord. Geavanceerde systemen met krachtige hardware zullen in staat zijn om meer wachtwoordcombinaties in een kortere tijdspanne uit te proberen, waardoor de kans groter wordt dat een gekraakt wachtwoord wordt gevonden. Cyberbeveiligingsbedrijven hebben vaak "supercomputers" met een dozijn of meer videokaarten die uitsluitend zijn bedoeld voor het bruut forceren van wachtwoorden met John the Ripper.
Hashing-methoden
Verschillende software gebruikt verschillende hashing-algoritmen om wachtwoordhashes te genereren. Enkele veelgebruikte algoritmen waar je waarschijnlijk wel eens van hebt gehoord, zijn MD5, SHA-256, SHA-512, HMAC en vele andere. Daarnaast zijn er verschillende implementaties van deze algoritmen, wat ook zal resulteren in unieke hashes ten opzichte van andere implementaties van hetzelfde algoritme.
John the Ripper is ontwikkeld om tientallen verschillende hasing-methoden en implementaties aan te kunnen. Vaak hoeven we niet eens te weten welke hashing-methode voor een wachtwoord wordt gebruikt, omdat John deze zonder onze hulp kan identificeren en het juiste kraakproces kan toepassen. Maar dit is niet altijd het geval. Het helpt om te weten met wat voor soort hashing-methode je te maken hebt, zodat je John kunt vertellen wat hij moet gebruiken. Hieronder zie je een voorbeeld daarvan.
Je kunt zien welke hashing-methoden John aankan door de --list=formats optie te gebruiken:
john --list=formats
Hoe een wachtwoord te kraken met John the Ripper
Nu we een fundamenteel begrip hebben van het kraken van wachtwoorden en John the Ripper, laten we onze handen vuil maken! Er zijn een groot aantal scenario's waarin we John kunnen inzetten, maar we zullen twee gevallen behandelen die u nu op uw eigen Linux-systeem kunt gebruiken.
Laten we eerst eens kijken hoe we John the Ripper kunnen uitvoeren op het /etc/shadow-bestand van ons systeem, dat de wachtwoordhashes voor gebruikers op het lokale systeem bevat. Vervolgens zullen we zien hoe we John the Ripper kunnen uitvoeren op een versleuteld .zip-bestand.
Kraken /etc/schaduw
Delen van de wachtwoordhashes voor accounts op een Linux-systeem bestaan zowel in de
/etc/passwd-als in de/etc/shadow-bestanden. John wordt geleverd met deunshadow-tool, waarmee we deze twee bestanden kunnen combineren tot een formaat dat we kunnen proberen te kraken. Gebruik de onderstaande opdracht om een nieuw bestandhashes.outte genereren van deze twee bestanden.sudo unshadow /etc/passwd /etc/shadow > hashes.out-
Het hash-bestand is klaar. Nu kunnen we John op het bestand uitvoeren om te zien of er een wachtwoord wordt gevonden. Dit bestand maakt gebruik van de
cryptehashing-methode, die we moeten specificeren zodat John weet hoe hij het moet kraken.john --format=crypt hashes.out Nu is het afwachten. Als John een wachtwoord vindt, ziet u de onderstaande uitvoer:
Relevante bestanden worden opgeslagen in het
.john-bestandvan de huidige map.ls .john john.log john.potHet
john.pot-bestandbevat de gekraakte wachtwoorden. Voor het geval u ze moet raadplegen en de vorige console-uitvoer bent kwijtgeraakt.cat .john/john.potAls er geen wachtwoord wordt gevonden, kun je John zijn toevlucht laten nemen tot brute forcering, of proberen een andere woordenlijst op te geven:
john --format=crypt --wordlist=/usr/share/wordlists/rockyou.txt hashes.outnotitie
Het is ook mogelijk om regels met deoptie --rulesaan John te leveren, waardoor het een configuratiebestand kan lezen dat John vertelt welke regels moeten worden toegepast op elke string in de woordenlijst. We kunnen Jan bijvoorbeeld configureren om te proberen de getallen 0-9 aan elke tekenreeks toe te voegen. Dit valt buiten het bestek van onze inleidende tutorial en zou alleen in geavanceerde scenario's worden gebruikt door penetratietesters met high-end hardware.
Een zip-bestand kraken
Video
Zoals altijd hebben we eerst een hash-bestand nodig om mee te werken. Laten we een hash-bestand genereren van het met een wachtwoord beveiligde zip-bestand met behulp van het
hulpprogramma zip2john.zip2john archive.zip > hash.outLaten we vervolgens John gebruiken om te zien of we het wachtwoord kunnen kraken:
john hash.outOf lever een aangepaste woordenlijst aan:
john --wordlist=/usr/share/wordlists/rockyou.txt hash.out
Afsluitende gedachten
In deze tutorial hebben we gezien hoe je wachtwoorden kunt kraken met John the Ripper op een Linux-systeem. We hebben ook de basisprincipes van het kraken van wachtwoorden geleerd en hoe het proces werkt met hashingmethoden, woordenlijsten en brute forcering. John the Ripper is eenvoudig te gebruiken, maar is een zeer krachtig en effectief hulpmiddel. In wezen omvat het proces het verkrijgen van een hash-bestand - via methoden zoals unshadow, zip2john of andere middelen - en het gebruik van John tegen het hash-bestand, het vertellen welk soort hash-algoritme wordt gebruikt en optioneel het verstrekken van een woordenlijst. Kali Linux wordt geleverd met veel gerelateerde tools voor het kraken van wachtwoorden, evenals veel woordenlijsten, dus we raden aan om het te gebruiken voor het kraken van wachtwoorden.



