
Скрипт эксплойта для CVE-2021-27211
Stegcrack — это программа с открытым исходным кодом для эксплуатации уязвимости в Steghide (в частности, CVE-2021-27211).
Stegcrack определяет, содержит ли заданный файл данные, скрытые с помощью Steghide, и иногда может полностью извлечь скрытые данные, причём без пароля.
Клонируйте этот репозиторий
git clone https://github.com/b4shfire/stegcrack
Перейдите в каталог с исходным кодом
cd stegcrack/src
Скомпилируйте программу
clang++ main.cc utils.cc file_handling.cc ui.cc Extractor.cc -ljpeg -pthread -lz -std=c++11 -O2 -o ../stegcrack
Выйдите из каталога исходного кода
cd ..
./stegcrack <путь к файлу> <количество потоков> (по умолчанию: 4)
./stegcrack flowers.jpg
./stegcrack ../images/rocket.jpg 8
Чтобы скрыть данные внутри файла-контейнера, Steghide сначала преобразует предоставленный пароль в 32-битный seed.
Seed создаётся следующим образом:
Затем этот seed используется для генерации последовательности позиций в файле, в которые будут спрятаны данные.
Недостаток этого метода заключается в том, что независимо от сложности пароля, он должен генерировать один из 2^32 возможных seed. Это означает, что пароль можно полностью обойти, перебрав переменную seed.
После того как seed сгенерирован, Steghide сначала встраивает метаданные (магические байты, версию Steghide, размер данных...) в файл-контейнер.
Эти метаданные можно использовать для определения того, был ли каждый seed использован для сокрытия данных. Например, первые 3 встраиваемых байта всегда равны 0x73 0x68 0x8d (почти ascii-строка "shm" — StegHide Magic). Если заданный seed не генерирует эти байты, его можно отбросить, так как он определённо не использовался для сокрытия данных. Это продолжается до тех пор, пока либо все seed не будут отброшены, либо не будет найден правильный seed. Правильный seed указывает на наличие скрытых данных.
По умолчанию Steghide шифрует данные с использованием полного пароля перед встраиванием. Это означает, что в большинстве случаев Stegcrack сможет извлечь только эти зашифрованные данные. Однако, если шифрование было отключено при встраивании, Stegcrack может полностью извлечь скрытые данные в открытом виде.