Skip to content
KitploitKITPLOIT
ToolsBlog
Einreichen
ToolsBlog
Einreichen

Hacking-, PenTest- und Cybersicherheits-Tools für Ihr Sicherheitsarsenal!

Kitploit ist ein Verzeichnis von Hacking-, Cybersicherheits- und Pentesting-Tools. Entdecken Sie die neuesten Projekt-Updates, um Schwachstellen zu finden, Systeme zu analysieren, Tests zu automatisieren und Ihre Sicherheit zu stärken.

··Feeds·Kontakt·Datenschutz·© 2026 Kitploit

Tool-Verzeichnis

Kategorien

Alle Kategorien anzeigen
Loading categories
bkcrack — Knacken der Legacy-Zip-Verschlüsselung mit dem Known-Plaintext-Angriff von Biham und Kocher. | Kitploit
Tools/GitHubGitHub/kimci86/bkcrack
Passwort-CrackingVerschlüsselungs-/EntschlüsselungstoolsSchwachstellenanalyseKryptographie
GitHubkimci86/bkcrack

bkcrack

Knacken der Legacy-Zip-Verschlüsselung mit dem Known-Plaintext-Angriff von Biham und Kocher.

Repository anzeigen
2.2k1886vor 2 MonatenVon Kitploit geprüft

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen

bkcrack

CI badge coverage badge release badge license badge GitHub Sponsors badge

Cracke ältere Zip-Verschlüsselung mit dem Known-Plaintext-Angriff von Biham und Kocher.

Überblick

Ein ZIP-Archiv kann viele Einträge enthalten, deren Inhalt komprimiert und/oder verschlüsselt sein kann. Insbesondere können Einträge mit einem passwortbasierten symmetrischen Verschlüsselungsalgorithmus verschlüsselt sein, der als traditionelle PKWARE-Verschlüsselung, Legacy-Verschlüsselung oder ZipCrypto bezeichnet wird. Dieser Algorithmus erzeugt einen pseudozufälligen Bytestrom (Keystream), der mit dem Inhalt des Eintrags (Klartext) XOR-verknüpft wird, um verschlüsselte Daten (Chiffretext) zu erzeugen. Der Zustand des Generators, bestehend aus drei 32-Bit-Integern, wird mit dem Passwort initialisiert und dann während der Verschlüsselung kontinuierlich mit Klartext aktualisiert. Dieser Verschlüsselungsalgorithmus ist anfällig für Known-Plaintext-Angriffe, wie von Eli Biham und Paul C. Kocher in der Forschungsarbeit A known plaintext attack on the PKZIP stream cipher gezeigt wurde. Mit gegebenem Chiffretext und 12 oder mehr Bytes des entsprechenden Klartextes kann der interne Zustand des Keystream-Generators wiederhergestellt werden. Dieser interne Zustand reicht aus, um den Chiffretext vollständig zu entschlüsseln sowie andere Einträge, die mit demselben Passwort verschlüsselt wurden. Er kann auch verwendet werden, um das Passwort mit einer Komplexität von nl-6 zu bruteforcen, wobei n die Größe des Zeichensatzes und l die Länge des Passworts ist.

bkcrack ist ein Kommandozeilenwerkzeug, das diesen Known-Plaintext-Angriff implementiert. Die Hauptfunktionen sind:

  • Interne Zustände aus Chiffretext und Klartext wiederherstellen.
  • Passwort eines ZIP-Archivs mit dem internen Zustand entfernen oder ändern.
  • Das ursprüngliche Passwort aus dem internen Zustand wiederherstellen.

Installation

Vorkompilierte Pakete

Die neueste offizielle Version erhalten Sie auf GitHub.

Vorkompilierte Pakete für Ubuntu, MacOS und Windows stehen zum Download bereit. Extrahieren Sie das heruntergeladene Archiv an einen beliebigen Ort.

Unter Windows werden Microsoft-Laufzeitbibliotheken benötigt, damit bkcrack ausgeführt werden kann. Falls sie nicht bereits auf Ihrem System installiert sind, laden Sie das neueste Microsoft Visual C++ Redistributable-Paket herunter und installieren Sie es.

Aus dem Quellcode kompilieren

Alternativ können Sie das Projekt mit CMake kompilieren.

Laden Sie zunächst die Quelldateien herunter oder klonen Sie das Git-Repository. Dann wird durch Ausführen der folgenden Befehle im Quellbaum eine Installation im Ordner install erstellt.

root@kitploit:~
cmake -S . -B build -DCMAKE_INSTALL_PREFIX=install
cmake --build build --config Release
cmake --build build --config Release --target install

Pakete von Drittanbietern

bkcrack ist in den unten aufgeführten Paket-Repositorien verfügbar. Diese Pakete werden von externen Betreuern bereitgestellt.

Packaging status

Verwendung

Einträge auflisten

Sie können eine Liste der Eintragsnamen und Metadaten in einem Archiv namens archive.zip wie folgt anzeigen:

root@kitploit:~
bkcrack -L archive.zip

Einträge, die ZipCrypto-Verschlüsselung verwenden, sind anfällig für einen Known-Plaintext-Angriff.

Interne Schlüssel wiederherstellen

Der Angriff erfordert mindestens 12 Bytes bekannten Klartext. Mindestens 8 davon müssen zusammenhängend sein. Je größer der zusammenhängende bekannte Klartext, desto schneller der Angriff.

Daten aus Zip-Archiven laden

Mit einem Zip-Archiv encrypted.zip, dessen Eintrag cipher der Chiffretext ist, und plain.zip mit dem Eintrag plain als bekanntem Klartext, kann bkcrack wie folgt ausgeführt werden:

root@kitploit:~
bkcrack -C encrypted.zip -c cipher -P plain.zip -p plain

Daten aus Dateien laden

Mit einer Datei cipherfile, die den Chiffretext enthält (beginnend mit den 12 Bytes, die dem Verschlüsselungs-Header entsprechen), und plainfile mit dem bekannten Klartext, kann bkcrack wie folgt ausgeführt werden:

root@kitploit:~
bkcrack -c cipherfile -p plainfile

Offset

Wenn der Klartext einem anderen Teil als dem Anfang des Chiffretextes entspricht, können Sie einen Offset angeben. Er kann negativ sein, wenn der Klartext einen Teil des Verschlüsselungs-Headers enthält.

root@kitploit:~
bkcrack -c cipherfile -p plainfile -o offset

Spärlicher Klartext

Wenn Sie nur wenig zusammenhängenden Klartext kennen (zwischen 8 und 11 Bytes), aber einige Bytes an anderen bekannten Offsets kennen, können Sie diese Informationen angeben, um die Anforderung von insgesamt 12 bekannten Bytes zu erfüllen. Verwenden Sie dazu das Flag -x gefolgt von einem Offset und Bytes in hexadezimaler Darstellung.

root@kitploit:~
bkcrack -c cipherfile -p plainfile -x 25 4b4f -x 30 21

Entschlüsseln

Wenn der Angriff erfolgreich ist, können die entschlüsselten Daten, die dem für den Angriff verwendeten Chiffretext zugeordnet sind, gespeichert werden:

root@kitploit:~
bkcrack -c cipherfile -p plainfile -d decipheredfile

Wenn die Schlüssel aus einem vorherigen Angriff bekannt sind, ist es möglich, bkcrack zum Entschlüsseln von Daten zu verwenden:

root@kitploit:~
bkcrack -c cipherfile -k 12345678 23456789 34567890 -d decipheredfile

Dekomprimieren

Die entschlüsselten Daten könnten komprimiert sein, je nachdem, ob beim Erstellen der Zip-Datei eine Komprimierung verwendet wurde oder nicht. Wenn die Deflate-Komprimierung verwendet wurde, kann ein im Ordner tools bereitgestelltes Python-3-Skript verwendet werden, um die Daten zu dekomprimieren.

root@kitploit:~
python3 tools/inflate.py < decipheredfile > decompressedfile

Passwort entfernen

Um in einem Schritt Zugriff auf alle Einträge des verschlüsselten Archivs zu erhalten, können Sie ein neues Archiv mit demselben Inhalt, aber ohne Verschlüsselung erzeugen. Es wird davon ausgegangen, dass alle Einträge ursprünglich mit demselben Passwort verschlüsselt wurden.

root@kitploit:~
bkcrack -C encrypted.zip -k 12345678 23456789 34567890 -D decrypted.zip

Passwort ändern

Es ist auch möglich, ein neues verschlüsseltes Archiv mit Ihrem gewünschten Passwort zu erzeugen:

root@kitploit:~
bkcrack -C encrypted.zip -k 12345678 23456789 34567890 -U unlocked.zip new_password

Sie können das neue Passwort auch durch seine entsprechende interne Darstellung definieren.

root@kitploit:~
bkcrack -C encrypted.zip -k 12345678 23456789 34567890 --change-keys unlocked.zip 581da44e 8e40167f 50c009a0

Diese beiden Befehle können zusammen verwendet werden, um den Inhalt eines verschlüsselten Archivs zu ändern, ohne das Passwort zu kennen, aber mit Kenntnis der internen Schlüssel: Sie können eine Kopie mit dem von Ihnen gewählten Passwort verschlüsseln, dann die Kopie mit einem Archiv-Manager bearbeiten, wobei Sie bei Aufforderung das gewählte Passwort eingeben, und schließlich eine Kopie des modifizierten Archivs mit den ursprünglichen Verschlüsselungsschlüsseln zurückerstellen.

Passwort wiederherstellen

Mit den internen Schlüsseln kann bkcrack versuchen, das ursprüngliche Passwort zu finden.

Brute-Force-Passwort-Wiederherstellung

Sie können nach einem Passwort suchen, indem Sie Zeichen in einem bestimmten Zeichensatz verwenden:

root@kitploit:~
bkcrack -k 1ded830c 24454157 7213b8c5 -b ?p

Sie können die Suche auf Passwörter einer bestimmten Länge oder einen Längenbereich einschränken:

root@kitploit:~
bkcrack -k 1ded830c 24454157 7213b8c5 -b ?p -l 9
bkcrack -k 1ded830c 24454157 7213b8c5 -b ?p -l 8..10

Die Option -r <Länge> <Zeichensatz> ist eine Abkürzung für -l 0..<Länge> -b <Zeichensatz>:

root@kitploit:~
bkcrack -k 1ded830c 24454157 7213b8c5 -r 10 ?p

Maskenbasierte Passwort-Wiederherstellung

Wenn Sie einige Kenntnisse darüber haben, wie das Passwort aufgebaut ist, können Sie eine Maske angeben, um den Suchraum einzuschränken und die Wiederherstellung viel schneller zu machen. Dies ist relevant für lange Passwörter (wie solche mit 12 oder mehr Zeichen), bei denen Brute-Force sehr zeitaufwändig wird.

Angenommen, Sie erinnern sich vage, dass Ihr Passwort aus 8 Kleinbuchstaben, einem Bindestrich und 6 Dezimalziffern besteht, können Sie diesen Befehl verwenden:

root@kitploit:~
bkcrack -k 1940e266 d3fd3d89 71ce9871 -m ?l?l?l?l?l?l?l?l-?d?d?d?d?d?d

Dies läuft in Millisekunden, während die Brute-Force-Alternative Stunden dauert.

Zeichensätze

Der Suchraum für sowohl Brute-Force als auch maskenbasierte Passwort-Wiederherstellung wird mit Zeichensätzen definiert. Ein Zeichensatz ist eine Folge von Zeichen oder Abkürzungen für vorhandene Zeichensätze. Vordefinierte Zeichensätze sind unten aufgeführt.

Zusätzlich zu den vordefinierten Zeichensätzen können Sie mit der Option -s benutzerdefinierte Zeichensätze definieren. Benutzerdefinierte Zeichensätze können auf vordefinierte Zeichensätze oder andere benutzerdefinierte Zeichensätze verweisen. Benutzerdefinierte Zeichensätze sind besonders nützlich für die präzise Angabe des Suchraums der maskenbasierten Wiederherstellung.

Wenn Sie zum Beispiel wissen, dass Ihr Passwort aus 10 Buchstaben (Groß- oder Kleinbuchstaben) und 5 Binärziffern besteht, können Sie diesen Befehl verwenden:

root@kitploit:~
bkcrack -k b8c377a6 f603160f 1832a78b -m ?x?x?x?x?x?x?x?x?x?x?y?y?y?y?y -s x ?u?l -s y 01

Lernen

Ein Tutorial wird im Ordner example bereitgestellt.

Für weitere Informationen werfen Sie einen Blick in die Dokumentation und lesen Sie den Quellcode.

Mitwirken

Zögern Sie nicht, Verbesserungen vorzuschlagen oder Pull-Requests auf GitHub einzureichen.

Wenn Sie Ihre Unterstützung für das Projekt zeigen möchten, können Sie gerne eine Spende tätigen oder das Projekt über GitHub Sponsors sponsern.

Lizenz

Dieses Projekt wird unter den Bedingungen der zlib/png-Lizenz bereitgestellt.

Tool herunterladen
ShortcutBeschreibungWert
?lKleinbuchstabenabcdefghijklmnopqrstuvwxyz
?uGroßbuchstabenABCDEFGHIJKLMNOPQRSTUVWXYZ
?dDezimalziffern0123456789
?sSonderzeichen !"#$%&'()*+,-./:;<=>?@[\]^_`{|}~
?aAlphanumerische Zeichenwie ?l?u?d
?pDruckbare ASCII-Zeichenwie ?l?u?d?s
?bAlle Bytes0x00 .. 0xff