Einleitung
In diesem Lab werden Sie den Prozess des Knackens von passwortgeschützten Microsoft Office-Dokumenten (DOCX, XLSX, PPTX) mit dem leistungsstarken Passwort-Cracking-Tool John the Ripper untersuchen. Wir werden office2john.py verwenden, um den Passwort-Hash aus den Office-Dateien zu extrahieren und diesen Hash dann an John the Ripper zum Knacken weiterzuleiten. Dieses Lab demonstriert die Schritte, die in einem praktischen Szenario involviert sind, und hilft Ihnen, die Sicherheitsimplikationen schwacher Passwörter auf Office-Dokumente zu verstehen.
Erstellen einer passwortgeschützten DOCX-Datei
In diesem Schritt erstellen Sie eine einfache DOCX-Datei und schützen sie mit einem Passwort. Diese Datei wird dann in den folgenden Schritten verwendet, um ihren Passwort-Hash zu extrahieren und zu knacken.
Zuerst installieren wir libreoffice-writer, um die DOCX-Datei zu erstellen.
sudo apt install -y libreoffice-writer
Nach der Installation öffnen Sie LibreOffice Writer.
libreoffice --writer &
Ein neues LibreOffice Writer-Fenster wird geöffnet.
- Geben Sie etwas Text ein, z. B. "This is a test document."
- Gehen Sie zu
Datei->Speichern unter.... - Navigieren Sie im Dialogfeld
Speichern unterzu/home/labex/project/. - Geben Sie
secret.docxals Dateinamen ein. - Aktivieren Sie das Kontrollkästchen
Mit Passwort speichern. - Klicken Sie auf
Speichern. - Geben Sie im Dialogfeld
Passwort festlegenpassword123sowohl in das FeldPasswort eingebenals auch in das FeldPasswort bestätigenein. - Klicken Sie auf
OK. - Schließen Sie LibreOffice Writer.
Überprüfen Sie, ob die Datei secret.docx in Ihrem Verzeichnis ~/project vorhanden ist.
ls -l ~/project/secret.docx
-rw-r--r-- 1 labex labex XXXX Month XX XX:XX /home/labex/project/secret.docx
Hash aus DOCX mit office2john extrahieren
In diesem Schritt verwenden Sie das Skript office2john.py, das Teil der John the Ripper-Suite ist, um den Passwort-Hash aus der von Ihnen erstellten Datei secret.docx zu extrahieren. Dieser Hash ist es, den John the Ripper zu knacken versuchen wird.
Zuerst lokalisieren Sie das Skript office2john.py. Es befindet sich normalerweise im Verzeichnis /usr/share/john/.
find /usr/share/john/ -name office2john.py
/usr/share/john/office2john.py
Verwenden Sie nun office2john.py, um den Hash aus secret.docx zu extrahieren und ihn in einer Datei namens hash.txt zu speichern.
python3 /usr/share/john/office2john.py ~/project/secret.docx > ~/project/hash.txt
Zeigen Sie den Inhalt von hash.txt an, um den extrahierten Hash zu sehen.
cat ~/project/hash.txt
secret.docx:$office$*2007*100000*256*16*XXXXXXXXXXXXXXX*XXXXXXXXXXXXXXX*XXXXXXXXXXXXXXX*XXXXXXXXXXXXXXX
Die Ausgabe zeigt eine lange Zeichenkette, die mit secret.docx:$office$... beginnt, was der Hash Ihres Passworts ist.
DOCX-Hash mit John the Ripper knacken
Nachdem Sie den Hash extrahiert haben, verwenden Sie John the Ripper, um ihn zu knacken. Für diese Demonstration verwenden wir eine einfache Wortliste, da unser Passwort "password123" ist, was ein gängiges Wort ist.
John the Ripper wird mit einer Standard-Wortliste geliefert, die sich unter /usr/share/john/password.lst befindet. Lassen Sie uns diese Wortliste verwenden.
john --wordlist=/usr/share/john/password.lst ~/project/hash.txt
John the Ripper beginnt mit der Verarbeitung des Hashes. Wenn das Passwort in der Wortliste enthalten ist, wird es schnell gefunden.
Using default input encoding: UTF-8
Loaded 1 password hash (Office, 2007/2010/2013/2016 [MD5/SHA1/SHA256/SHA512 RC4/AES])
Will run till all hashes are cracked, by default
Press 'q' or Ctrl-C to abort, almost any other key for status
password123 (secret.docx)
1g 0:00:00:00 DONE (20XX-XX-XX XX:XX) 100.0g/s 100.0p/s 100.0c/s 100.0C/s password123
Session completed.
Nach dem Knacken können Sie die geknackten Passwörter mit der Option --show anzeigen.
john --show ~/project/hash.txt
secret.docx:password123
1 password hash cracked, 0 left
Diese Ausgabe bestätigt, dass John the Ripper das Passwort für secret.docx erfolgreich als password123 geknackt hat.
Wiederholung für XLSX- und PPTX-Dateien
In diesem Schritt wenden Sie denselben Prozess auf XLSX- (Excel) und PPTX- (PowerPoint) Dateien an, um zu demonstrieren, dass office2john.py und John the Ripper bei verschiedenen Office-Dokumenttypen ähnlich funktionieren.
Installieren Sie zuerst libreoffice-calc und libreoffice-impress.
sudo apt install -y libreoffice-calc libreoffice-impress
Erstellen einer passwortgeschützten XLSX-Datei:
- Öffnen Sie LibreOffice Calc:
libreoffice --calc & - Geben Sie etwas Text ein, z. B. "Spreadsheet data."
- Gehen Sie zu
Datei->Speichern unter.... - Navigieren Sie zu
/home/labex/project/. - Geben Sie
secret.xlsxals Dateinamen ein. - Aktivieren Sie
Mit Passwort speichern. - Klicken Sie auf
Speichern. - Legen Sie das Passwort auf
password123fest und bestätigen Sie. - Klicken Sie auf
OKund schließen Sie LibreOffice Calc.
Hash aus XLSX extrahieren:
python3 /usr/share/john/office2john.py ~/project/secret.xlsx >> ~/project/hash.txt
Erstellen einer passwortgeschützten PPTX-Datei:
- Öffnen Sie LibreOffice Impress:
libreoffice --impress & - Fügen Sie einen Titel hinzu, z. B. "Presentation Title."
- Gehen Sie zu
Datei->Speichern unter.... - Navigieren Sie zu
/home/labex/project/. - Geben Sie
secret.pptxals Dateinamen ein. - Aktivieren Sie
Mit Passwort speichern. - Klicken Sie auf
Speichern. - Legen Sie das Passwort auf
password123fest und bestätigen Sie. - Klicken Sie auf
OKund schließen Sie LibreOffice Impress.
Hash aus PPTX extrahieren:
python3 /usr/share/john/office2john.py ~/project/secret.pptx >> ~/project/hash.txt
Alle Hashes knacken:
Führen Sie nun John the Ripper auf der aktualisierten Datei hash.txt aus, die nun Hashes für DOCX, XLSX und PPTX enthält.
john --wordlist=/usr/share/john/password.lst ~/project/hash.txt
Using default input encoding: UTF-8
Loaded 3 password hashes (Office, 2007/2010/2013/2016 [MD5/SHA1/SHA256/SHA512 RC4/AES])
Will run till all hashes are cracked, by default
Press 'q' or Ctrl-C to abort, almost any other key for status
password123 (secret.xlsx)
password123 (secret.pptx)
password123 (secret.docx)
3g 0:00:00:00 DONE (20XX-XX-XX XX:XX) 100.0g/s 100.0p/s 100.0c/s 100.0C/s password123
Session completed.
Überprüfen Sie alle geknackten Passwörter:
john --show ~/project/hash.txt
secret.xlsx:password123
secret.pptx:password123
secret.docx:password123
3 password hashes cracked, 0 left
Verständnis der Office-Dokumentverschlüsselung
In diesem Schritt werden wir kurz die Verschlüsselungsmechanismen von Microsoft Office-Dokumenten und die Effektivität von Tools wie John the Ripper erläutern.
Moderne Microsoft Office-Dokumente (DOCX, XLSX, PPTX) verwenden XML-basierte Formate (Open XML). Wenn ein Passwort festgelegt wird, wird der Inhalt des Dokuments verschlüsselt. Der Verschlüsselungsprozess beinhaltet die Ableitung eines Verschlüsselungsschlüssels aus dem Passwort des Benutzers mithilfe einer Key Derivation Function (KDF) wie PBKDF2 (Password-Based Key Derivation Function 2).
office2john.py extrahiert die notwendigen Parameter aus der XML-Struktur des Office-Dokuments, wie z. B. das Salt, die Iterationsanzahl und den verschlüsselten Verifier-Hash. Diese Parameter bilden zusammen mit dem Hash-Typ (z. B. Office 2007/2010/2013/2016) die "Hash"-Zeichenkette, die John the Ripper versteht.
John the Ripper führt dann einen Brute-Force- oder Wörterbuchangriff durch. Für jedes Wort in seiner Wortliste (oder jede Kombination bei einem Brute-Force-Angriff) wendet er dieselbe KDF mit den extrahierten Parametern an, um einen Kandidatenschlüssel zu generieren. Wenn dieser Kandidatenschlüssel mit dem verschlüsselten Verifier-Hash übereinstimmt, wird das Passwort gefunden.
Die Stärke der Verschlüsselung hängt stark von der Komplexität und Länge des Passworts ab. Schwache oder gängige Passwörter wie "password123" können mit Wörterbuchangriffen leicht geknackt werden, wie in diesem Lab gezeigt. Starke Passwörter, die lang, zufällig und mit einer Mischung aus Zeichen sind, erhöhen die für das Knacken erforderliche Zeit und Rechenressourcen erheblich und machen sie dadurch wesentlich sicherer.
Diese Übung unterstreicht die Bedeutung der Verwendung starker, eindeutiger Passwörter für sensible Dokumente, um sie vor unbefugtem Zugriff zu schützen.
Zusammenfassung
In diesem Lab haben Sie gelernt, wie Sie mit office2john.py Passwort-Hashes aus passwortgeschützten Microsoft Office-Dokumenten (DOCX, XLSX, PPTX) extrahieren. Anschließend haben Sie John the Ripper verwendet, um diese extrahierten Hashes zu knacken, und damit die Anfälligkeit von Dokumenten demonstriert, die mit schwachen Passwörtern geschützt sind. Diese praktische Erfahrung gab Einblicke in den Prozess des Passwortknackens und unterstrich die Bedeutung der Verwendung starker, komplexer Passwörter zur Sicherung Ihrer digitalen Vermögenswerte.


