Skip to content

LUKS- und BitLocker-Festplattenverschlüsselung mit hashcat knacken

Extrahiere einen knackbaren Hash aus einem LUKS-Header oder einem BitLocker-Volume, wähle den richtigen hashcat-Modus und starte den Angriff.

Veröffentlicht am 3 Min. Lesezeit

Vollständige Festplatten- oder Volume-Verschlüsselung macht ein verlorenes Passwort zu einem anderen Problem als ein geknackter Online-Account: Es gibt keinen Server, der die Rate begrenzt, aber auch keine Abkürzung an der Schlüsselableitungsfunktion vorbei, die das Volume schützt. LUKS (Linux) und BitLocker (Windows) reduzieren sich beide auf dieselbe Angriffsform wie jeder andere Passwort-Hash — Schlüsselableitungsmaterial extrahieren, es hashcat oder John füttern, ein Wörterbuch oder eine Maske laufen lassen —, aber jedes hat seinen eigenen Extraktionsschritt und seine eigene Falle bei der Modus-Wahl.

LUKS: den Header extrahieren, nicht die Partition anfassen

Ein LUKS-Volume muss nicht entschlüsselt werden, um angegriffen zu werden — es muss nur der Header gelesen werden, der die PBKDF2-Key-Slots (LUKS1) oder Argon2/PBKDF2-Key-Slots (LUKS2) enthält. Extrahiere ihn mit dd:

sudo dd if=/dev/sdXN of=header.luks bs=512 count=4097

Kläre zuerst, womit du es zu tun hast — cryptsetup luksDump /dev/sdXN zeigt die LUKS-Version und das verwendete KDF an. Diese Unterscheidung ist wichtig, weil sich die hashcat-Modi genau danach aufteilen:

  • LUKS1 → -m 14600, direkt mit dem extrahierten Header:

    hashcat -m 14600 header.luks /usr/share/wordlists/rockyou.txt
    
  • LUKS2 verwendet in aktuellen cryptsetup-Versionen standardmäßig Argon2id und hat ein anderes Plattenlayout als LUKS1, weshalb Modus 14600 es nicht liest. hashcat unterstützt LUKS2 durchaus, aber die genaue Modusnummer hängt davon ab, mit welchem KDF und welcher Chiffre das Volume erstellt wurde; statt hier eine Nummer zu raten, prüfe, was deine installierte hashcat-Version unterstützt:

    hashcat --example-hashes | grep -i luks
    

    und gleiche den Eintrag mit der Ausgabe von luksDump ab.

Sobald hashcat die Passphrase gefunden hat, mountest du das Volume ganz normal — das Knacken beweist nur, dass du das Passwort hast, entsperrt selbst aber nichts:

sudo cryptsetup luksOpen /dev/sdXN recovered

Da die PBKDF2/Argon2-Iterationszahlen von LUKS bei der Einrichtung so kalibriert werden, dass sie auf der ursprünglichen Hardware etwa eine Sekunde dauern, liegt der Durchsatz weit unter dem eines schnellen, ungesalzenen Hashes — eine kurze Wörterbuch-Passphrase bleibt realistisch, eine lange zufällige nicht. Die LUKS-Hash-Seite enthält die vollständigen Details zur Identifikation.

BitLocker: bitlocker2john, dann das richtige Präfix

BitLocker speichert seine Schlüsselableitungs-Metadaten (die FVE/VMK-Daten) an einer festen Stelle des Volumes, und bitlocker2john.py aus John the Ripper extrahiert sie in dasselbe $bitlocker$-Format, das hashcat erwartet — richte es auf das rohe Gerät oder ein Image:

python3 bitlocker2john.py -i /dev/sdXN > hash.txt

Bevor du irgendetwas startest, schau dir das Präfix an — es verrät, welche Art von Geheimnis du eigentlich angreifst:

PräfixWas es istRealistisch knackbar?
$bitlocker$0$BenutzerpasswortJa — Wörterbuch-/Regel-Angriff
$bitlocker$1$Numerische PIN (TPM+PIN)Ja — kurzer Schlüsselraum, Masken-Angriff
$bitlocker$3$ / $bitlocker$4$48-stelliger WiederherstellungsschlüsselNein — praktisch nicht per Brute-Force knackbar

Ein Benutzerpasswort oder eine PIN ist ein normaler hashcat-Job:

hashcat -m 22100 hash.txt /usr/share/wordlists/rockyou.txt

Für eine PIN schlägt ein Masken-Angriff ein Wörterbuch — BitLocker-PINs haben typischerweise 4 bis 20 Ziffern, sodass eine Maske im Stil von -a 3 -1 ?d hash.txt ?1?1?1?1?1?1 den realistischen Raum schnell abdeckt. Die Wiederherstellungsschlüssel-Hashes ($3$/$4$) kodieren den von BitLocker selbst generierten 48-stelligen Schlüssel; dessen Schlüsselraum ist groß genug, dass ihn weder hashcat noch John in nützlicher Zeit durchlaufen — wenn das vorliegt, ist der Wiederherstellungsschlüssel selbst der einzige Weg hinein, es gibt keinen Hash, den man umgehen könnte. Siehe die BitLocker-Hash-Seite für die vollständige Aufschlüsselung der Präfixe und hashcat für echten GPU-Durchsatz einstellen, um aus dem tatsächlich möglichen Angriff das Maximum herauszuholen.

Fazit

Beide Formate folgen demselben Identifizieren-Extrahieren-Modus-Muster wie überall sonst auf dieser Seite: Bestätige die genaue Variante, bevor du einen hashcat-Modus wählst, denn LUKS1 gegenüber LUKS2 und BitLockers vier Präfixe sind nicht austauschbar, und den falschen in Modus 14600 oder 22100 zu füttern führt nur zu einem abgelehnten Hash. Wo das zugrunde liegende Geheimnis ein von Menschen gewähltes Passwort oder eine kurze PIN ist, ist ein Wörterbuch- oder Masken-Angriff realistisch; wo es ein maschinell erzeugter Wiederherstellungsschlüssel ist, ändert keine noch so große GPU-Leistung die Mathematik des Schlüsselraums.

Verwandte Artikel

Extrahiere den Hash eines verschlüsselten id_rsa mit ssh2john, wähle den richtigen hashcat-Modus für PEM-Schlüssel, und erfahre, wann nur John moderne OpenSSH-Schlüssel knackt.
Extrahiere den Hash aus einem geschützten ZIP-, RAR- oder 7-Zip-Archiv mit zip2john / rar2john / 7z2john, wähle den richtigen hashcat-Modus und knacke ihn ohne zu raten.
Extrahiere den Hash aus einem verschlüsselten Word-, Excel- oder PDF-Dokument mit office2john / pdf2john und wähle den richtigen hashcat-Modus — 9400 bis 10700 — um das Passwort wiederherzustellen.