
Exploit-Skript für CVE-2021-27211
Stegcrack ist ein Open-Source-Programm zur Ausnutzung einer Sicherheitslücke in Steghide (insbesondere CVE-2021-27211).
Stegcrack erkennt, ob eine bestimmte Datei mit Steghide versteckte Daten enthält, und kann die versteckten Daten manchmal vollständig extrahieren, alles ohne Passwort.
Klonen Sie dieses Repository
git clone https://github.com/b4shfire/stegcrack
Wechseln Sie in das Quellverzeichnis
cd stegcrack/src
Kompilieren Sie das Programm
clang++ main.cc utils.cc file_handling.cc ui.cc Extractor.cc -ljpeg -pthread -lz -std=c++11 -O2 -o ../stegcrack
Verlassen Sie das Quellverzeichnis
cd ..
./stegcrack <dateipfad> <anzahl der threads> (Standard: 4)
./stegcrack flowers.jpg
./stegcrack ../images/rocket.jpg 8
Um Daten in einer Cover-Datei zu verstecken, wandelt Steghide zunächst das bereitgestellte Passwort in einen 32-Bit-Seed um.
Der Seed wird wie folgt erstellt:
Dieser Seed wird dann verwendet, um eine Folge von Positionen in der Datei zu generieren, an denen Daten versteckt werden sollen.
Der Fehler in dieser Methode besteht darin, dass das Passwort, egal wie komplex es ist, einen der 2^32 möglichen Seeds erzeugen muss. Dies bedeutet, dass das Passwort vollständig umgangen werden kann, indem die Seed-Variable brute-forced wird.
Sobald der Seed erzeugt wurde, bettet Steghide zunächst Metadaten (Magic Bytes, Steghide-Version, Datengröße …) in die Cover-Datei ein.
Diese Metadaten können verwendet werden, um zu bestimmen, ob jeder Seed zum Verstecken von Daten verwendet wurde. Beispielsweise sind die ersten 3 eingebetteten Bytes immer 0x73 0x68 0x8d (fast der ASCII-String "shm" – StegHide Magic). Wenn ein bestimmter Seed diese Bytes nicht erzeugt, kann er verworfen werden, da er definitiv nicht zum Verstecken von Daten verwendet wurde. Dies wird fortgesetzt, bis entweder alle Seeds verworfen wurden oder ein gültiger Seed gefunden wurde. Ein gültiger Seed weist auf versteckte Daten hin.
Standardmäßig verschlüsselt Steghide Daten mit dem vollständigen Passwort, bevor sie eingebettet werden. Dies bedeutet, dass Stegcrack in den meisten Fällen nur diese verschlüsselten Daten extrahieren kann. Wenn jedoch die Verschlüsselung beim Einbetten deaktiviert wurde, kann Stegcrack die versteckten Daten vollständig im Klartext extrahieren.