Nuit du Hack 2012 Quals –
Unknown zip archive

Nuit du Hack 2012 - Unknown zip archive - task description

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.

Nuit du Hack 2012 - Unknown zip archive - solution

Nachdem Jessica sich nett bei uns bedankt hat, ist diese Challenge beendet.

Leave a Reply

Your email address will not be published. Required fields are marked *