Veel mensen hebben vaak de neiging om wachtwoorden te verzinnen met woorden die ze vaak of regelmatig gebruiken. Dit maakt de wachtwoorden makkelijker te onthouden, maar ook makkelijker te kraken. Stel een cybercrimineel heeft het gemunt op iemand die een blog heeft waar hij over zijn passie over modelspoorbanen vertelt, kan een wachtwoordenlijst laten genereren op basis van de content op die website. Deze wachtwoordenlijst kan gebruikt worden voor een dictionary attack.

cewl help

CeWL – Custom Word List generator

CeWL is een tool waarmee je zo’n wachtwoordenlijst kunt maken. CeWL zoekt op de website naar woorden en maakt hier een lijst van welke gebruikt kan worden om een dictionary attack uit te voeren.

root@kali:~# cewl https://rosenbahn.wordpress.com/ -m 6 -d 1 -w ./cewl-list.txt
CeWL 5.4.6 (Exclusion) Robin Wood (robin@digi.ninja) (https://digi.ninja/)

root@kali:~# head -15 cewl-list.txt 
Rosenbahn
Rosental
station
Scratch
Märklin
building
Cementfabriek
Construction
websites
weatheren
WordPress
buildings
Making
Goederenloodsen
Diorama
root@kali:~# 

In het bovenstaande voorbeeld heb ik cewl de webiste https://rosenbahn[.]wordpress[.]com/ laten scannen op woorden. Hier is een hele lijst aan woorden uitgekomen. met het head commando laat ik de eerste 15 zien. De opties die ik gebruikt heb zijn:

  1. De minimale lengte van het wachtwoord (-m 6)
  2. Hoe diep CeWL moet scannen (-d 1)
  3. Het bestand dat weggeschreven moet worden (-w ./cewl-list.txt)

Moeilijke wachtwoorden

Deze lijst zal tegenwoordig niet heel veel juiste wachtwoorden gaan opleveren. Veel systemen vragen je namelijk om moeilijke wachtwoorden te gebruiken met cijfers en leestekens er bij. Gelukkig zijn hier natuurlijk ook tools voor waarmee je redelijk eenvoudig de woordenlijst kan aanpassen. Hier onder laat ik de tool john zien.

root@kali:~# john --wordlist=cewl-list.txt --stdout --rules:LowercaseNumsChars > cewl-list-john.txt 
Using default input encoding: UTF-8
Press 'q' or Ctrl-C to abort, almost any other key for status
300915p 0:00:00:00 100.00% (2019-09-16 18:08) 1770Kp/s diorama99??

Deze rules kunnen worden aangemaakt in het bestand /etc/john/john.conf. Hierin kunnen meerdere rules gemaakt worden. John heeft hier een handleiding voor. Hier onder de rules list die ik gebruikt heb in het bovenstaande voorbeeld.

# Lowercases with nubs and chars
[List.Rules:LowercaseNumsChars]

l
l$[0-9]
l$[0-9]$[0-9]
l$[!@#$%^&*()+=.?]
l$[!@#$%^&*()+=.?]$[!@#$%^&*()+=.?]
l$[0-9]$[!@#$%^&*()+=.?]
l$[0-9]$[0-9]$[!@#$%^&*()+=.?]$[!@#$%^&*()+=.?]

Het resultaat zijn vele wachtwoorden zoals hier onder. Op deze manier kan er op een eenvoudige manier een wachtwoordenlijst gemaakt worden die gericht gebruikt kan worden tijdens een dictionary attack.

-- snip --
building25$.
cementfabriek25$.
construction25$.
websites25$.
weatheren25$.
wordpress25$.
buildings25$.
making25$.
goederenloodsen25$.
diorama25$.
rosenbahn25$?
rosental25$?
station25$?
scratch25$?
-- snip --

rockyou.txt

Natuurlijk zijn er andere wachtwoordlijsten die gebruikt kunnen worden en vele malen langer kunnen zijn. Een bekend wachtwoordenbestand is rockyou.txt. Dit bestand is een verzameling van wachtwoorden van de 30 miljoen accounts die zijn uitgelekt van het bedrijf RockYou.

Handige links: