Inhaltsangabe:
1.) Wie ist es zu diesem Tut gekommen ?
2.) "Bruteforce" - was ist das ?
3.) Was sind "Word List Attacks" ?
4.) Sinn und Unsinn von Bruteforce ?
5.) Und es hat
DOCH Sinn - Programme die mit Bruteforce und / oder Wordlist Attacks arbeiten
6.) Weiterführende Informationen
1.) Wie ist es zu diesem Tut gekommen ?
In dem Forum unter www.hackeinsteiger-board.de und diversen anderen Foren kam es in letzter Zeit andauernd wieder zu der Frage, ob Bruteforce eine sinnvolle Angriffsmethode ist.. Auf die Dauer isses etwas nervig das ganze immer wieder im Forum zu beantworten, also hab ich dieses Handout geschrieben um den Leuten mal zu erklären, WARUM eigentlich Bruteforce meistens keine sinnvolle "Angriffsmethode" ist.
2.) "Bruteforce" - was ist das ?
Bruteforce ist Englisch und bedeutet soviel wie "Rohe Gewalt".
Was anderes ist Bruteforce eigentlich auch nicht.
Sagen wir mal wir kennen
einen Benutzernamen von einem Mailserver, aber leider fehlt uns das Paßwort
dazu.
Wie kommt man da jetzt ran ? Viele glauben dass das mit Bruteforce
kein Problem ist. Bruteforce probiert einfach alle Zeichenkombinationen die sich
in einer vom Benutzer festgelegten Maske bewegen durch.
Sagen wir einfach
mal, wir wissen dass der Benutzer (dessen Loginnamen wir kennen) ein Paßwort
benutzt, das 5 Zeichen hat und nur aus Kleinbuchstaben besteht. Dann geben wir
das in unser Programm ein ("lowercase", "5 chars"), und es probiert einfach alle
Kombinationen durch:
aaaaaa
aaaaab
aaaaac
aaaaad
....
aaaaba
aaaabb
aaaabc
.....
...
zzzzzx
zzzzzy
zzzzzz
Wenn
das gestimmt hat was wir "wußten" (eben dass das Paßwort aus 5 Zeichen, und zwar
nur Kleinbuchstaben besteht), dann haben wir das Paßwort SPÄTESTENS bei "zzzzzz"
gefunden, wahrscheinlich aber noch früher.
Hinzuzufügen ist nur noch: Mit
Bruteforce kommt man IMMER ans Ziel (ausser der Server ist ausreichend gegen
Angriffe dieser Art geschützt), man braucht jedoch eine Menge Zeit.
3.) Was sind "Word List Attacks" ?
"Word List Attacks" funktionieren ähnlich wie Bruteforce mit
"Ausprobieren aller möglichen Paßwörter". Nur wird dabei nicht jedes Paßwort von
"aaaaaa" bis "zzzzzz" durchprobiert, sondern es wird eine Datei mit Wörtern
verwendet (die sogenannten "Wordlists" eben). Dieses Verfahren basiert auf der
Annahme, das Menschen sich einfach schwierige Paßwörter nicht so leicht merken
können und deshalb einfache Paßwörter nehmen wie z.B. den Namen der Frau,
Gegenstände oder ähnliches. Nun gibt es im Internet extra "Wordlists" mit
gesammelten Vornamen, Gegenständen und einfach vielen Worten aus verschiedenen
Sprachen.
Mit "Wordlist"-Attacks kommt man nicht immer zum Ziel, hat dafür
aber meist höhere Chancen das Paßwort in weniger Zeit zu finden als mit
Bruteforce.
4.) Sinn und Unsinn von Bruteforce ?
Gehen wir gleich mal vom wichtigsten Argument aus, und zwar von
der "Zeit." Der Faktor "Zeit" verringert sich um so mehr Informationen man
besitzt.
Dazu gleich mehr, fangen wir einfach mal mit einer Beispielrechnung
an.
Wir kennen den Benutzernamen eines Users von einem nicht gegen Bruteforce
geschützten Servers. Gehen wir mal davon aus, man kann dort fürs Paßwort die 26
Kleinbuchstaben, 26 Großbuchstaben, die Ziffern 1 bis 0 sowie zehn Sonderzeichen
verwenden (sind aber mehr). Das sind summa summarum 72 mögliche
Zeichen.
In der Tabelle sehen wir, wie lange es mit Bruteforce maximal
dauert ein Paßwort herauszufinden, wenn man 60 Versuche pro Sekunde schafft (ein
Wert der über eine Internetverbindung nicht gerade realistisch
ist):
|
Stellen |
Möglichkeiten |
Dauer in Sekunden |
Dauer in Stunden |
Dauer in Jahren |
|
1 |
72 |
1 |
||
|
2 |
5184 |
86 |
||
|
3 |
3373248 |
6221 |
1 ¾ |
|
|
4 |
26873856 |
447898 |
124 |
|
|
5 |
1934917632 |
32248627 |
8958 |
1 |
|
6 |
1,393140695*10^11 |
2321901158 |
644973 |
73,6 |
|
7 |
1,0030613*10^13 |
... |
46438023 |
5301 |
|
8 |
7,222041363*10^14 |
... |
3343537668 |
381682 |
Wie ihr seht benötigt
ihr bei einem 8-stelligem Paßwort im schlechtesten Fall 381682 Jahre... Lohnt
sich das wirklich für euch ?
Oben habe ich gesagt, dass Informationen zum
Faktor Zeit beitragen können. Wißt ihr zum Beispiel, dass euer "Ziel" ein
8-stelliges Paßwort benutzt mit 72 Zeichen, benötigt ihr eben die schon
genannten 381682 Jahre. Wißt ihr es aber NICHT, dann benötigt ihr im
schlechtesten Falle 1+73,6+5301+381682 = 387057,6 Jahre, das sind immerhin fast
2 % mehr. Wenn ihr wißt dass euer "Ziel" nicht 72 verschiedene Buchstaben
verwendet, sondern "nur" 26 und ihr wißt auch, dass er ein Paßwort mit 8 Zeichen
verwendet, dann dauert das "nur" ungefähr 110 Jahre....
Vielleicht versteht
ihr JETZT, warum alle immer sagen dass man ein "möglichst langes Paßwort mit
möglichst vielen verschiedenen Zeichen" verwenden soll.
Aber das war’s
noch nicht ganz, eine kleine Info folgt: Viele Provider sperren einen
Benutzernamen oder ein IP-Adresse von der aus versucht wird sich einzuloggen
nach 3 (oder mehr) Fehleingaben für eine gewisse Zeit (oft ca. 15 Minuten) oder
ganz, bis der Admin ihn wieder entsperrt. Hier hat man mit Bruteforce keine
Chance
5.) Und es hat DOCH Sinn - Programme die mit Bruteforce und / oder Wordlist Attacks arbeiten
Es gibt nicht nur Programme die über eine Netzwerkverbindung
beziehungsweise eine Internetverbindung Bruteforce betreiben, sondern auch
Programme die verschlüsselte Paßwortdateien versuchen zu knacken. Paßwortdateien
werden zumeist mit sogenannten "One-Way Hash"-Verschlüsselungen verschlüsselt,
eine Verschlüsselung, die nach heutigen Erkenntnissen nicht rückgängig machbar
ist. (Für Infos darüber könntet ihr euch z.B. mal das RFC 1321 zum "Message
Digest MD5 Algorithm" ansehen).
Wenn man sich nun einloggt wird das
eingegebene Paßwort mit dem gleichen Algorithmus verschlüsselt und dann mit dem
in der Paßwortdatei gespeicherten verglichen. Stimmen diese beiden überein, war
es das gleiche Paßwort, stimmen sie nicht überein, dann war es das
falsche.
Kommt man nun in den Besitz einer Passwortdatei dann bleibt einem
nichts anderes übrig als sie per Bruteforce oder per Wordlist zu knacken. Da das
ganze lokal abläuft und nicht auf eine Internetverbindung angewiesen ist geht
das ganze sehr viel schneller, je nach Hardware, Algorithmus und verwendetem
Programm werden bis zu 1 000 000 Paßwörter und mehr die Minute durchprobiert.
Dabei verkürzt sich die Wartezeit natürlich drastisch.
Für
Unix-Passwortdateien wird meist das exzellente Programm "John the Ripper"
verwendet. Es unterstützt sowohl Bruteforce, Wordlist als auch eine Art
"intelligentes Ausprobieren". Am besten einfach mal runterladen und
ansehen.
Für Windows NT/2000 Passwortdateien wird oft das Programm "LC3"
beziehungsweise "L0phtcrack" von "L0pht Heavy Industries" verwendet. Auch dieses
unterstützt sowohl Wordlists als auch Bruteforce.
Für das Ausprobieren
über Netzwerkverbindungen erweist sich "Brutus AET2" als eines der besten seines
Fachs.
6.) Weiterführendes
Für weitere Infos darüber und anderes empfehle ich folgende Seiten:
http://www.it-checkpoint.net/
BlueScreen's Home
http://www.hackeinsteiger-board.de/
Falls ihr mir Anregungen oder Kritik o.ä. hinterlassen wollt, dann tut das bitte auf
www.Hackeinsteiger-Board.de
(Copyright by Florian
Hobelsberger / BlueScreen)