Автор : другие произведения.

Стеганография на простых задачах Ctf

Самиздат: [Регистрация] [Найти] [Рейтинги] [Обсуждения] [Новинки] [Обзоры] [Помощь|Техвопросы]
Ссылки:


 Ваша оценка:

Несколько человек спросили меня какие инструменты я использую для CTF. Мой выбор зависит от специфики CTF. Существуют всевозможные CTF для разных аспектов ИБ, Forensics, Steganography, Boot2Root, Reversing, расследование инцидентов, Web, Crypto и также те, что сочетают в себе несколько разновидностей. Для каждого направления необходим свой набор инструментов для получения флага.

Эта статья представляет собой обзор высокого уровня и поможет понять с чего начать или как продвинуться если вы застряли с заданием.

Стеганография

Стеганография - это практика сокрытия информации в каком-либо тексте или данных. Существует много типов файлов и методов скрытия файлов/данных. Я кратко расскажу о нескольких инструментах, которые использую.

Есть несколько вещей, которые я делаю в ходе решения задач:

- Проверяю расширение файла. Я тратил много времени на то, чтобы в конечном итоге понять, что я имею дело с файлом другого расширения.
- Использую стандартные инструменты прежде чем исследовать глубже. Проверьте файл с помощью file, strings, exiftool, pngcheck и откройте в шестнадцатеричном редакторе и только потом переходите в инструменты, предназначенные для определенного типа файла.
- Используемые инструменты зависят от типа файла. Google: 'filetype ctf tools'.

Есть десятки инструментов, которые я не смогу охватить в этом руководстве. Это руководство должно дать вам довольно хорошую отправную точку для поиска дополнительных инструментов и методов стеганографии.

Получение флага во многом зависит от вашей настойчивости и умения пользоваться поисковиком.

Инструменты

Инструменты, упомянутые выше, не являются единственными инструментами. Но для начала этого должно хватить.

Примеры использования инструментов

File:

#file <filename>

Расширение файла было изменено

Другой GIF файл, который им не является

Sonic visualizer:

Sonic visualizer это отличный инструмент для поиска скрытых сообщений в аудио файлах.

Пример спектограммы со скрытым сообщением.

Помните, что не обязательно флаг будет находиться спектрограмме если это mp3 файл.

Пример задания без скрытого сообщения

Кадр для файла выше был скрыт между mp3 фреймами. С помощью strings удалось получить флаг в этом задании. Изображение ниже.

Пример еще одной спектрограммы с флагом

Hex editor: это шикарный инструмент для множества целей. Редактор показывает исходной содержание файла.

Это текстовый файл в текстовом редакторе. Странные символы "� � � � �� " скрывают за собой какие-то данные. Многие данные теряются при копировании и вставке из одного редактора в другой. 

Тот же файл в Hex редакторе, как вы можете видеть тут отображается больше данных, чем в самом файле.

К счастью для нас, данные тут не затронуты. Копирование данных в онлайн-декодер даст нам флаг.

Strings: отлично подходит для вывода печатаемых строк из файла.

# strings filename | awk 'length($0)>15' | sort -u
                                     /\
                      Setting the minimum length
                      for a string can help clean
                      out a lot of the garbage.
                      this will only print strings
                      with 15 or more chars.
# strings -a -n 15 filename

Strings -a сканирует файл целиком, а не только секцию с данными

binwalk: отлично подходит для проверки вложенных файлов (или скленных в один файл)

Binwalk -e автоматически распакует все файлы. Для примера выше ничего не нужно распаковывать.

pngcheck: проверка на наличие каких-либо повреждений или аномальных разделов. Команда pngcheck -v покажет чанки данных, которые не являются критическими для рендеринга.

Сломанный PNG

Приведенный пример является отличным показателем заранее поврежденного изображения, которое необходимо исправить для получения флага. В ошибке содержится достаточно информации для вас, чтобы найти в поисковике способ исправить ее. 

exiftool: вывод метаданных для медифайлов

stegsolv: отличный инструмент с GUI, позволяющий анализировать изображение и находить цветовые слои, карты и скрытые строки.

Онлайн инструменты:

Универсальные декодеры

https://2cyr.com/decode/

https://ftfy.now.sh/

Эти два инструмента подходят для декодирования строк и unicode.

Примеры из реальных CTF

Я писал, что речь будет в основном об инструментах, но сложно разобраться без реальных примеров.

Ложные расширения файлов

Данный файл записан как GIF, но вывод команды file показывает, что это не так

Вот так выглядит реальный GIF

Можно посмотреть реальное содержание файла

Этот файд в hex-редакторе

Просто текстовый редактор

Тот же файл с утилитой strings

Я специально показываю несколько разных решений для одного задания, чтобы вы поняли. что это можно сделать разными способами.

Скрытые файлы

Вы можете увидеть, что это ICO файл

Интересные строки для ICO файла

Тот же файл в hex-редакторе

PK может быть индикатором того, что в этом файле скрыт ZIP архив. Возможно, что PK это заголовок ZIP архива. Подробнее про сигнатуры файлов.

Я покажу два способа решения этой проблемы. Первый способ простой, а второй сложный.

Метод 1: использование binwalk

Мы используем binwalk -e для извлечения любых потенциальных файлов. Это сработало и теперь у нас есть запароленный ZIP файл. Как вы можете видеть ниже.

Метод 2: распаковка и сохранение hex

На картинке ниже вы можете видеть, что я просто сохранил отдельно секцию, начинающуюся с 50 4b, которая является заголовком файла PK.

Вставка и сохранение сырого hex начиная с заголовка PK

Я сохранил файл из шестнадцатеричного редактора как test.zip

Но ZIP оказался защищенным

На этой картинке мы видим, что два метода извлечения файла дают одинаковые результаты.

Попробуем раскрыть пароль при помощи fcrackzip.

Я потратил на это намного больше времени чем хотел, установив количество минимальных символов 4. Мне казалось, что никто не станет использовать пароль менее 4 символов и был не прав. Теперь у нас есть txt файл, извлеченный из архива.

Просто скрытые

Предоставленная картинка

Давайте разберем файл несколькими инструментами, упомянутыми выше.

Да, это просто картинка JPEG

Тут мы видим все двоичные строки, найденные в картинке

То же в hex-редакторе

Открытый в notepad файл показывает аналогичные вещи

Двоичная строка, преобразованная в ASCII, дает нам флаг.

Скрытый в изображении

Рассмотрим простое задание для иллюстрации. Часть изображения скрыта, поскольку это все еще активный CTF.

Мы видим огромное количество пустого пространства вокруг изображения. Ни один из обычных инструментов, которые я использую для изображения, не дает результатов для того, чтобы приблизиться к флагу.

Откроем изображение в Stegsolve и полистаем слои пока не найдем флаг.

Красивые цвета

Я видел такое несколько раз. Сначала это раздражало. Первое задание, которое я решил, заняло так много времени, что даже времени CTF не хватило.

Я проделал с этим файлом то же, что и с другими: file, strings и все остальное. Даже если не получается, создатель CTF дает обычно подсказку.

Вот предоставленная картинка

Тот же файл, открытый в GIMP

У нас есть файл открытый в GIMP. Если мы используем пипетку для каждого цвета, то получаем 1: 8b8b61 2: 8b8b61 3: 8B8B70 4: 8B8B6A 5: 8B8B65 6: 8B8B73, который является шестнадцатеричным представлением. Нам нужны последние две цифры каждого из значений цвета. Остается 61 61 70 6А 65 73. Преобразуя этот код в ASCII, мы получаем флаг.

Полезные ресурсы


 Ваша оценка:

Связаться с программистом сайта.

Новые книги авторов СИ, вышедшие из печати:
О.Болдырева "Крадуш. Чужие души" М.Николаев "Вторжение на Землю"

Как попасть в этoт список
Сайт - "Художники" .. || .. Доска об'явлений "Книги"