
Script de exploit para CVE-2021-27211
Stegcrack é um programa de código aberto para explorar uma vulnerabilidade no Steghide (especificamente CVE-2021-27211).
Stegcrack detecta se um determinado arquivo contém dados ocultos com Steghide e, às vezes, pode extrair completamente os dados ocultos, tudo sem senha.
Clone este repositório
git clone https://github.com/b4shfire/stegcrack
Entre no diretório de origem
cd stegcrack/src
Compile o programa
clang++ main.cc utils.cc file_handling.cc ui.cc Extractor.cc -ljpeg -pthread -lz -std=c++11 -O2 -o ../stegcrack
Saia do diretório de origem
cd ..
./stegcrack <caminho_do_arquivo> <número_de_threads> (padrão: 4)
./stegcrack flowers.jpg
./stegcrack ../images/rocket.jpg 8
Para ocultar dados dentro de um arquivo de cobertura, o Steghide primeiro transforma a senha fornecida em uma semente de 32 bits.
A semente é criada da seguinte forma:
Essa semente é então usada para gerar uma sequência de posições no arquivo onde os dados serão ocultados.
A falha nesse método é que, independentemente da complexidade da senha, ela deve gerar uma das 2^32 sementes possíveis. Isso significa que a senha pode ser completamente ignorada ao forçar a variável da semente por brute force.
Uma vez que a semente é gerada, o Steghide primeiro incorpora metadados (bytes mágicos, versão do Steghide, tamanho dos dados...) no arquivo de cobertura.
Esses metadados podem ser usados para determinar se cada semente foi usada para ocultar dados ou não. Por exemplo, os primeiros 3 bytes incorporados são sempre 0x73 0x68 0x8d (muito próximos da string ASCII "shm" - StegHide Magic). Se uma determinada semente não gerar esses bytes, ela pode ser descartada, pois definitivamente não foi usada para ocultar dados. Isso continua até que todas as sementes sejam descartadas ou que uma semente válida seja encontrada. Uma semente válida indica dados ocultos.
Por padrão, o Steghide criptografa os dados usando a senha completa antes de incorporá-los. Isso significa que, na maioria dos casos, o Stegcrack só conseguirá extrair esses dados criptografados. No entanto, se a criptografia foi desabilitada durante a incorporação, o Stegcrack pode extrair completamente os dados ocultos em texto simples.