Реальная ситуация: команда на соревновании убила четыре часа на файл размером 6 КБ. Запустили
steghide — но он не поддерживает PNG. Попробовали binwalk — получили ложную сигнатуру TIFF. А про zsteg просто не вспомнили. Флаг сидел в LSB красного канала и вытащился бы за секунды.Проблема не в скилле. Проблема — в отсутствии системного чеклиста. Вот сжатая версия того, что реально экономит время.
🔍 Шаг 1. Не верь расширению
В CTF расширение файла врёт постоянно.
challenge.txt может оказаться PNG, а image.jpg — ZIP-архивом. Первое действие всегда — file challenge.txt. Команда определяет тип по магическим байтам, а не по имени. Если ответ говорит «PNG image data» — расширение ложное, и это уже подсказка.Дальше —
exiftool. Поля Comment, Artist, Description — классические места, где прячут флаги или хинты. Base64-строка в поле Comment — стабильный паттерн на среднем уровне.И параллельно:
strings challenge.png | grep -iE "flag|ctf|key|{|}". Тривиально, но на лёгких тасках это решает задачу примерно в трети случаев.📦 Шаг 2. Ищем вложенные файлы
binwalk challenge.png покажет всё, что спрятано внутри: ZIP-архивы, вторые картинки, данные после маркера конца файла. Нашёл что-то — извлекай через binwalk -e.Но важный нюанс:
binwalk часто даёт ложные срабатывания. Случайное совпадение байт с сигнатурой ZIP — обычное дело. Всегда проверяйте извлечённые файлы через file и пробуйте открыть.Если
binwalk молчит — пробуйте foremost. Он ищет пары header/footer и иногда цепляет то, что binwalk пропускает.🖼 Шаг 3. Формат определяет инструмент
Вот где большинство ошибается. Каждый формат — свой набор утилит:
• PNG/BMP →
zsteg (LSB-анализ, работает моментально) и Stegsolve (визуальный просмотр битовых плоскостей)• JPEG →
steghide (прячет данные в DCT-коэффициентах, нужен пароль — попробуйте пустой) и stegseek (брутфорс пароля по словарю rockyou.txt за секунды)• GIF → проверяйте отдельные фреймы и палитру
Запустить
steghide на PNG — пустая трата времени. Он физически не умеет работать с этим форматом. Именно на этом и погорела та команда из начала поста.🎧 Отдельная история — аудио-стеганография. Спектрограмма в Sonic Visualiser или Audacity часто показывает текст или QR-код, нарисованный частотами.
Это сжатый алгоритм. Полный чеклист с decision tree, таблицей ограничений инструментов и разбором альфа-канала — в развёрнутой статье.
https://hackerlab.pro/blog/steganografiya-v-ctf-cheklist-i-instrumenty-dlya-poiska-skrytyh-dannyh-v-kartinkah-i-audio
