In der Email von Jessica erhalten wir als weitere Challenge (Unknown zip archive) die Information, dass zusätzlich ein passwortgeschütztes Zip-Archive gefunden und bisher nicht entpackt werden konnte. Hierbei handelt es sich um eine RAR-Datei, bei der wir nun selbst versuchen werden, dass Passwort zu cracken und somit an den Inhalt zu gelangen.
rup0rt@lambda:~/privDatas$ ls -lh sp112.rar -rw-r--r-- 1 rup0rt rup0rt 26K Mar 16 15:33 sp112.rar rup0rt@lambda:~/privDatas$ file sp112.rar sp112.rar: RAR archive data, vca, rup0rt@lambda:~/privDatas$ unrar x sp112.rar UNRAR 3.93 freeware Copyright (c) 1993-2010 Alexander Roshal Enter password (will not be echoed) for sp112.rar: Encrypted file: CRC failed in sp112.rar (password incorrect ?) No files to extract
Eine kurze Untersuchung der Datei ergibt nichts Auffälliges und bestätigt vielmehr die uns genannten Informationen, dass es sich tatsächlich um eine “normale” RAR-Datei handelt, die mit einem Passwort geschützt ist. Welche Möglichkeiten haben nur nun, dieses Archiv anzugreifen?
Auch wenn frühere RAR-Versionen für “Known-Plaintext-Angriffe” anfällig waren, brauchen wir hier diese Möglichkeit kaum zu prüfen, da es einerseits sehr unwahrscheinlich ist, dass eine solch alte RAR-Version (< 2.0) hier verwendet wurde und andererseits uns auch überhaupt kein Klartext für diese Art von Angriff zu Verfügung steht.
Seit RAR-Archiven der Version 2.0 wird zudem eine recht starke Verschlüsselung verwendet, die seitdem immer weiter verbessert wurde und selbst auf heutigen CPUs die per Sekunde möglichen Crack-Versuche auf einige Hundert Passwörter minimiert. Als Option, ein solches RAR-Archive anzugreifen, bleibt uns also nur eine möglichst gut gewählte Wörterliste oder aber einen parallelen Angriff, zum Beispiel unter Verwendung der Grafikkarte, durchzuführen.
Auch wenn ich zum Cracken grundsätzlich das Werkzeug “John the Ripper” verwende, habe ich besonders für Angriffe gegen RAR-Archive mit dem Werkzeug “cRARk” die besten Erfahrungen gemacht. Zusätzlich bietet “cRARk” out-of-the-box die für meine NVidia-Grafikkarte notwendige CUDA-Unterstützung an, um Passwörter um ein Vielfaches schneller, parallel auf der Grafikkarte zu berechnen.
Da der parallele Angriff über die Grafikkarte leider nur via “Brute-Force” funktioniert und eine Verwendung des gesamten ASCII-Zeichensatzes sehr lange dauern könnte, konfiguriere ich “cRARk” dahingehend, zunächst nur Passwörter mit Kleinbuchstaben zu überprüfen. Dazu genügt es, die folgenden Zeilen in die Datei “password.def” einzutragen.
$a = [abcdefghijklmnopqrstuvwxyz] $a *
“cRARk” bietet unglaublich gute Möglichkeiten, die zu prüfenden Passwörter sehr flexibel zu spezifizieren. Wir geben hier den (bereits vordefinierten) Zeichenvorrat für die Variable “$a” mit Kleinbuchsten an und lassen den Cracker mittels “$a *” alle Wörter aus diesem Zeichenvorrat abbilden. Sollte dieser Angriff nicht funktionieren, lässt sich der zu verwendende Zeichenvorrat leicht erweitern oder Notfalls doch auf den Angriff mittels eines Wörterbuches zurückgreifen.
Nun starten wir “cRARk” mit den Optionen “-l1” und “-g5” um nur Passwörter der Länge von eins bis fünf Zeichen prüfen zu lassen. Der Versuch, längere Passwörter zu cracken, würde bei RAR-Archiven zu lange dauern, so dass wir uns eine andere Strategie überlegen müssten.
rup0rt@lambda:~/privDatas/crark$ ./crark-hp -l1 -g5 ../sp112.rar cRARk-HP (Encrypted Headers) CUDA enabled v. 3.4a Freeware Copyright 1995-2001, 2006-11 by P. Semjanov, http://www.crark.net portions (c) 1993-2005 Eugene Roshal (c) PSW-soft Password Cracking Library PCL v. 2.0d by P. Semjanov CUDA device GeForce GTS 450 found, CUDA cores = 192, GPU rate = 0.80 Choosing best crypto functions............................................................. Chosen: ASM (Northwood/Core 2/iX), SSE2 (Core 2/iX) (-f1555) Ticks per password expected = 16689534, theoretical = 27000000, CPU rate = 1.62 Processing line 2 of password definition file... Testing 1-chars passwords ... Testing 2-chars passwords ... Device #0, Block size is: 96 x 128 (-m96), step = 1/2 (-d2) Testing 3-chars passwords ... Device #0, Block size is: 96 x 128 (-m96), step = 1/2 (-d2) Testing 4-chars passwords ... Device #0, Block size is: 96 x 128 (-m96), step = 1/2 (-d2) Testing 5-chars passwords ... Device #0, Block size is: 96 x 128 (-m96), step = 1/2 (-d2) smith - Header CRC Ok Testing archive ../sp112.rar Testing sciproc.tgz smith - CRC OK In hex (PCL style): \73 \6D \69 \74 \68 Passwords tested = 3498102 (time = 21:53.48, rate = 2663 p/s)
Erfreulicherweise meldet und “cRARk” nach schon 21 Minuten, dass das Passwort “smith” erfolgreich ausfindig gemacht werden konnte und unsere erste Strategie eines Brute-Force-Angriffes nur mit Kleinbuchstaben anscheinend genau richtig war. Alternativ wäre man allerdings auch mit einer Wörterliste recht schnell zum Ziel gekommen, dass “smith” in fast jeder halbwegs brauchbaren Liste enthalten sein sollte.
rup0rt@lambda:~/privDatas$ unrar x sp112.rar UNRAR 3.93 freeware Copyright (c) 1993-2010 Alexander Roshal Enter password (will not be echoed) for sp112.rar: Extracting from ../sp112.rar Extracting sciproc.tgz OK All OK
Der erneute Versuch das RAR-Archiv, diesmal mit dem Passwort “smith”, zu entpacken funktioniert problemlos und wir erhalten eine weitere gepackte “tar.gz”-Datei. Da uns der Inhalt des Archivs für diese Challenge nicht weiter zu interessieren braucht, senden wir die erhaltene Datei ohne weitere Begutachtung direkt an Jessica zurück.
Nachdem Jessica sich nett bei uns bedankt hat, ist diese Challenge beendet.