08 März 2014

Ich bin Hacker

CC-BY-SA 3.0 Baggage Master
Auf der Apache OpenOffice Mailing Liste ist es eine FAQ: Ich habe mein Dokument verschlüsselt und das Passwort vergessen, jetzt möchte ich das wieder öffnen. Die Standard-Antwort schreib's neu - die Verschlüsselung ist nicht von Microsoft lag mir auf der Zunge, aber die Dame hatte ein ganzes selbsgeschriebenes Buch in den Limbo gecryptet.

Wie bekommt man also das Passwort zu einer bisher als sicher angesehenen Verschlüsselung raus?
  • Dictionary Attack
  • Brute Force
Also hab' ich mal geantwortet, dass man da einen Passwort Cracker verwendet und einen Link auf John the Ripper. Und eine Kurzanleitung, wie man damit umgeht.

Was wirklich klar war: wer ein ganzes Buch wegcryptet ist kein Computernerd. Der hätte das nicht gemacht und außerdem 20 Sicherungen auf verschiedenen Medien gehalten. Unsere Autorin hatte das nicht - und ihr gutgemeinter Versuch mit der vorcompilierten Windows-Variante (da passiert nix mit einem Doppelklick) endete, wie er enden musste.

Nachdem ich mit der Kurzanleitung auch gepostet hatte, dass sie sich vielleicht vertrauensvoll damit an einen Nerd wenden soll, tat sie mit ihrem Schlamassel das einzig Folgerichtige: sie fragt natürlich mich. Da hätte ich auch selbst draufkommen können.

Zu ihrem nicht enden wollenden Glück war ich aber interessiert genug, um einen Versuch zu wagen, also hab' ich mich mal dran gemacht.
  1. John compilieren. Und da fangen sie schon an, die Probleme: John ist in erster Linie mal Single Thread. Das kann auf Multicores immer nur einen Prozessor benutzen. Ich hab' 4 Kerne mit Hyperthreading, kann also gleichzeitig 8 rechenintensive Prozesse laufen lassen. Das Wiki erklärt aber, wie es geht: MPI benutzen. Dazu muss man schonmal am Makefile rumfummeln und eine Menge Zeug nachinstallieren.
  2. MPI Umgebung installieren:
    apt-get install mpi-default-dev mpi-default-bin
    Naja, war ja nicht schwer.
  3. Wörterbücher finden und installieren. Ich hab' mich für Englisch und eine Liste mit einigen 1000 Passwörtern entschieden, nachdem ich nochmal nachgefragt habe, welche Sprache für das Passwort in Frage kommt.
  4. Den Passwort Hash aus dem ODF-Dokument holen - da hat John schon ein Tool dabei:
    ./odf2john.py Livro.odt > passwd
  5. John starten. Auf 7 Prozessoren, ich möchte ja noch Katzenvideos gucken können:
    mpiexec -np 7 ./john --format=odf passwd
  6. Sehr lange warten. Dabei zuhören, wie die Lüfter in meinem Rechner auf Anschlag drehen. Die Logdatei john.log klärt mich nach einer Minute darüber auf, dass der Singles Shot Mode nichts gebracht hat und nach einer weiteren Stunde, dass der Dictionary Attack fehlgeschlagen ist. Ab jetzt ist es Brute Force.
  7. Nach weiteren 10 Stunden meldet Prozess #4, dass er das Passwort gefunden hat, dass man aber wegen MPI die anderen Prozesse von Hand anhalten muss. Man erkennt also nicht am Rechnergeräusch, dass John was gefunden hat.
Naja, 11 Stunden auf 7 Prozessoren, für ein Passwort mit 7 Kleinbuchstaben - hässlich. Bei 10 Buchstaben kanns wirklich so sein, dass neu schreiben schneller geht.


Kommentar veröffentlichen