Stegseek

Exploitation v0.6 · 18.04.2021 не обновлялся >2 лет

Молниеносный брутфорс паролей для Steghide: проверяет 1+ млрд слов в секунду благодаря многопоточности и ранней обрезке неверных путей. Умеет автоматически извлекать данные без указания пароля при успешном взломе. Необходим в CTF, когда файл защищён steghide с неизвестным паролем.

v0.6
18.04.2021 current
Добавлен 07.07.2026 · Обновлён 07.07.2026 · Exploitation
Установка
# Скачать .deb-пакет:
# https://github.com/RickdeJager/stegseek/releases
sudo dpkg -i stegseek_*.deb

# Или из исходников:
git clone https://github.com/RickdeJager/stegseek
cd stegseek && mkdir build && cd build
cmake .. && make && sudo make install

# Брутфорс с wordlist (синтаксис: stegseek [файл] [wordlist] [вывод]):
stegseek cover.jpg /usr/share/wordlists/rockyou.txt
stegseek cover.jpg rockyou.txt extracted.txt

# Только проверка (без извлечения):
stegseek --info cover.jpg
переведено ИИ

:zap: Stegseek

Stegseek — это молниенобыстный взломщик steghide, который используется для извлечения скрытых данных из файлов. Он создан как форк оригинального проекта steghide и, как следствие, работает в тысячи раз быстрее других взломщиков, способен перебрать весь файл rockyou.txt* менее чем за 2 секунды.

Stegseek также можно использовать для извлечения метаданных steghide без пароля, что позволяет проверить, содержит ли файл данные steghide.

* rockyou.txt — это известный список паролей, содержащий более 14 миллионов паролей.

Демонстрация: случайный пароль из rockyou.txt (в реальном времени)

Перейдите к разделу Производительность для просмотра числовых показателей.

:wrench: Установка

Ниже приведены инструкции по установке. Альтернативно, вы можете запустить Stegseek в контейнере Docker. Перейдите к разделу Docker для получения инструкций.

Релизы

Linux

На современных системах Ubuntu и других, основанных на Debian, можно использовать provided пакет .deb для установки:

  1. Скачайте последний релиз Stegseek
  2. Установите файл .deb с помощью команды sudo apt install ./stegseek_0.6-1.deb

На других системах вам придется собрать Stegseek самостоятельно. Дополнительную информацию см. в файле BUILD.md.

Windows

Сборка Stegseek как нативного приложения Windows, к сожалению, не поддерживается. Вместо этого вы должны запускать Stegseek, используя WSL. Для оптимальной совместимости рекомендуется дистрибутив Ubuntu WSL. После настройки WSL, Stegseek можно установить, используя приведенные выше инструкции для Linux.

По умолчанию WSL монтирует диск C:\ в /mnt/c/, что позволяет легко получить доступ к вашим файлам.

:arrow_forward: Использование Stegseek

Взлом

Основная возможность stegseek — перебор по словарю:

stegseek [stegofile.jpg] [wordlist.txt]

Этот режим просто попробует все пароли из предоставленного словаря против предоставленного stego-файла.

Обнаружение и извлечение без пароля (CVE-2021-27211)

Stegseek также может использоваться для обнаружения и извлечения любых незашифрованных (мета)данных из изображения steghide. Это эксплуатирует тот факт, что генератор случайных чисел, используемый в steghide, имеет всего 2^32 возможных начальных значения (сидов), которые можно перебрать за несколько минут.

stegseek --seed [stegofile.jpg]

Эта команда сообщит вам: * Содержит ли этот файл фактически данные steghide. * Сколько скрытого контента содержит файл. * Каким образом контент был зашифрован.

Если вам очень повезло и файл был закодирован без шифрования, этот режим даже восстановит закодированный файл!

Ниже представлена демонстрация задачи с X-MAS CTF 2020. Флаг был скрыт с использованием безопасного случайного пароля, но без включения шифрования. В течение нескольких минут Stegseek способен восстановить встроенный файл без необходимости угадывать правильный пароль.

Доступные аргументы

Используйте stegseek --help для получения полного списка доступных опций:

=== StegSeek Help ===
To crack a stegofile:
stegseek [stegofile.jpg] [wordlist.txt]

Commands:
 --crack                 Crack a stego file using a wordlist. This is the default mode.
 --seed                  Crack a stego file by attempting all embedding patterns.
                         This mode can be used to detect a file encoded by steghide.
                         In case the file was encoded without encryption, this mode will
                         even recover the embedded file.
Positional arguments:
 --crack [stegofile.jpg] [wordlist.txt] [output.txt]
 --seed  [stegofile.jpg] [output.txt]

Keyword arguments:
 -sf, --stegofile        select stego file
 -wl, --wordlist         select the wordlist file
 -xf, --extractfile      select file name for extracted data
 -t, --threads           set the number of threads. Defaults to the number of cores.
 -f, --force             overwrite existing files
 -v, --verbose           display detailed information
 -q, --quiet             hide performance metrics (can improve performance)
 -s, --skipdefault       don't add guesses to the wordlist (empty password, filename, ...)
 -n, --nocolor           disable colors in output
 -c, --continue          continue cracking after a result has been found.
                         (A stego file might contain multiple embedded files)
 -a, --accessible        simplify the output to be more screen reader friendly

Use "stegseek --help -v" to include steghide's help.

Steghide

Stegseek включает в себя почти весь функционал steghide, поэтому его также можно использовать для обычного встраивания или извлечения данных. Единственное условие — команды должны использоваться в формате --command. Например, steghide embed [...] становится stegseek --embed [...] .

Позиционные аргументы

  • stegseek --embed <данные> <файл-обложка> [<stego-файл>]
  • stegseek --extract <stego-файл> [<вывод>]

:whale: Docker

Вы также можете запустить Stegseek в контейнере Docker:

docker run --rm -it -v "$(pwd):/steg" rickdejager/stegseek [stegofile.jpg] [wordlist.txt]

Для этого словарь и stego-файл должны находиться в текущей рабочей каталоге, так как эта папка монтируется в /steg внутри контейнера.

:chart_with_upwards_trend: Производительность

Здесь Stegseek действительно блистает. Как и обещалось, начнем с утверждения о "rockyou.txt всего за 2 секунды". Все эти измерения выполнены на ноутбуке с процессором Intel i7-7700HQ @ 2.80GHz и 8 ГБ оперативной памяти.

RockYou.txt

Я взял последний пароль в rockyou.txt без управляющих символов: "␣␣␣␣␣␣␣1" (7 пробелов, за которыми следует '1'). Этот пароль находится на строке 14344383 из 14344391

> StegSeek 0.6 - https://github.com/RickdeJager/StegSeek

[i] Found passphrase: "       1"          
[i] Original filename: "secret.txt".
[i] Extracting to "7spaces1.jpg.out".


real    0m1,211s
user    0m9,488s
sys 0m0,084s

И вот оно, более 14 миллионов паролей менее чем за 2 секунды :heart_eyes:.

Как это сравнится с другими инструментами?

Для проверки производительности других инструментов я создал несколько stego-файлов с разными паролями, взятыми из rockyou.txt. Я запускал каждый из инструментов с их настройками по умолчанию, за исключением Stegbrute, где я увеличил количество потоков для честного сравнения.

пароль Строка Stegseek v0.6 Stegcracker 2.0.9 Stegbrute v0.1.1 (-t 8)
"cassandra" 1 000 0.05с 3.1с 0.7с
"kupal" 10 000 0.05с 14.4с 7.1с
"sagar" 100 000 0.09с 2м23.0с 1м21.9с
"budakid1" 1 000 000 0.73с [p] 23м50.0с 13м45.7с
"␣␣␣␣␣␣␣1" 14 344 383 1.21с [p] 5ч41м52.5с [p] 3ч17м38.0с

[p] = прогнозируемое время на основе предыдущих результатов.


Для сравнения скорости каждого инструмента, давайте посмотрим на последнюю строку таблицы (в противном случае Stegseek завершит работу до того, как все потоки будут запущены).

В этом масштабе Stegseek работает более чем в 12 000 раз быстрее Stegcracker и более чем в 7000 раз быстрее Stegbrute.

:notebook: Журнал изменений

v0.6

2021-04-18 улучшения: * Исправлен взлом BMP для файлов с большой палитрой. * Добавлен флаг --continue для поиска нескольких скрытых файлов. * Добавлен флаг --accessible для удобства работы CLI с программами чтения с экрана. * CLI стал более единообразным, добавлены цвета. * --crack и --seed теперь возвращают правильные коды выхода для более простого скриптинга. * Уменьшены затраты производительности для метрик. * Исправлены флаги компилятора для сборки по умолчанию.

v0.5

2020-12-28 улучшения: * Значительно снижено потребление памяти (использование памяти больше не связано с длиной Словаря). * Словарь загружается на лету, поэтому можно начать взлом немедленно. * Исправлен высокий уровень ложных срабатываний для --seed

v0.4

2020-12-01 улучшения: * Добавлен взлом по сиду для извлечения данных без пароля. * Переработан парсер для поддержки позиционных аргументов. * взламывает rockyou.txt за 2 секунды

v0.4.1

2020-12-23 Исправлена ошибка, из-за которой stegseek иногда не мог найти пароль.

v0.3

2020-11-08 улучшения: * Потоки сделаны свободными от блокировок, чтобы несколько потоков использовались более эффективно. * Добавлен аргумент -xf для --crack, используемый для указания расположения извлекаемого файла. * Пакет .deb стал совместимым с Debian/Kali. * взламывает rockyou.txt за 4 секунды.

v0.2

2020-11-05 улучшения: * Прекращение попыток для пароля, если хотя бы один бит магического числа не декодируется. * Удалены дорогостоящие аллокации BitString / EmbData. * Улучшена производительность селектора. * взламывает rockyou.txt за 5 секунд.

v0.1

2020-11-04 Начальный релиз, возможности: * Загружает stego-файл только один раз, в отличие от традиционных взломщиков. * Многопоточность на основе рабочего пула. * Сначала пытается взломать первые 3 байта, прежде чем пытаться полную расшифровку. * Добавлен пакет .deb и контейнер docker. * взламывает rockyou.txt за 41 секунду.

Комментарии
Войдите, чтобы оставить комментарий