
Script di exploit per CVE-2021-27211
Stegcrack è un programma open-source per sfruttare una vulnerabilità in Steghide (nello specifico CVE-2021-27211).
Stegcrack rileva se un dato file contiene dati nascosti con Steghide e, a volte, può estrarre completamente i dati nascosti, il tutto senza password.
Clona questo repository
git clone https://github.com/b4shfire/stegcrack
Spostati nella directory del sorgente
cd stegcrack/src
Compila il programma
clang++ main.cc utils.cc file_handling.cc ui.cc Extractor.cc -ljpeg -pthread -lz -std=c++11 -O2 -o ../stegcrack
Esci dalla directory del sorgente
cd ..
./stegcrack <filepath> <number of threads> (default: 4)
./stegcrack flowers.jpg
./stegcrack ../images/rocket.jpg 8
Per nascondere dati all'interno di un file di copertura, Steghide converte prima la password fornita in un seed a 32 bit.
Il seed viene creato come segue:
Questo seed viene poi utilizzato per generare una sequenza di posizioni nel file in cui nascondere i dati.
Il difetto di questo metodo è che, per quanto complessa sia la password, deve generare uno dei 2^32 seed possibili. Ciò significa che la password può essere aggirata del tutto forzando la variabile seed.
Una volta generato il seed, Steghide incorpora prima i metadati (magic bytes, versione di Steghide, dimensione dei dati...) nel file di copertura.
Questi metadati possono essere utilizzati per determinare se ogni seed è stato usato per nascondere dati. Ad esempio, i primi 3 byte incorporati sono sempre 0x73 0x68 0x8d (quasi la stringa ascii "shm" - StegHide Magic). Se un dato seed non genera questi byte, può essere scartato perché sicuramente non è stato usato per nascondere dati. Questo processo continua finché tutti i seed non vengono scartati o non viene trovato un seed valido. Un seed valido indica la presenza di dati nascosti.
Per impostazione predefinita, Steghide crittografa i dati usando la password completa prima di incorporarli. Ciò significa che nella maggior parte dei casi, Stegcrack potrà solo estrarre questi dati crittografati. Tuttavia, se la crittografia è stata disabilitata durante l'incorporamento, Stegcrack può estrarre completamente i dati nascosti in chiaro.