Pic stego — различия между версиями

Материал из InformationSecurity WIKI
Перейти к: навигация, поиск
м (Утилиты)
м (Райтапы)
Строка 199: Строка 199:
  
 
http://blog.squareroots.de/en/2012/11/polictf-write-up-forensics-200/ - PoliCTF Write-Up Forensics 200
 
http://blog.squareroots.de/en/2012/11/polictf-write-up-forensics-200/ - PoliCTF Write-Up Forensics 200
 +
 +
http://countersite.org/articles/steganography/98-curses-and-hexes-stego-tjctf-2016.html - Curses and Hexes TJCTF 2016
 +
 +
http://countersite.org/articles/steganography/97-grey-shades-tjctf2016.html - Basic Images TJCTF2016

Версия 12:27, 1 июня 2016

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

Общие проверки для BMP/PNG/JMP и других

Получение exif файлов

Первое что обычно я делаю, если не знаю с чего начать - получаю exif файла. Пример:

Дана картинка: EXIF.jpg


Последовательность действий:

    1. Переходим на сайт http://regex.info/exif.cgi
    2. Отсылаем картинку.
    3. Замечаем текст Youarethebesthackerihaveeverseen!1337 - это и есть флаг к заданию!

Getexif.png

Получение GEO-тегов

Аналогичное с EXIF решение, но отсылается файлик на сайт http://www.geoimgr.com/

В итоге получаем координаты:

Geotags.png


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

Приписанный в конец файла текст

Для определения воспользуемся текстовым редактором или hex редактором.

Пример строки в конце файла:

TEXT IN THE END


Архив

Изображение может оказаться архивом. Чаще всего это заметно, если картинка весит больше, чем доолжна весить при таких размерах.

Пример:

Дано изображение: RARImage.jpg

Последовательность действий:

    1. Переименовать оканчание в .rar/.zip/.7z или в любой другой тип архивов (перебор).
    2. Попробовать распаковать. 
    3. При оканчании .rar данный файл разархивируется. Получаем файл flag.txt
    4. Открываем txt файл и получаем флаг "BESTFLAGIHAVEEVERSEEN!"
    5. Profit!


Все признаки по которым можно это заподозрить/убедиться:

  • Большой вес изображения при данном разрешении
  • В hexedit увидеть заголовки двух склеенных файлов - изображения и архива
  • Перебор оканчаний с последующим разархивированием

PNG/BMP изображения

Нам дано изображение. Попробуем по некоторым факторам определить, как нам решить этот таск.

Монотонное изображение

WaterStego.png

Если вам дали монотонное изображение, то чаще всего в ней находятся водяные знаки.

Водяные знаки

Чтобы узнать, есть ли на ней водяные знаки, есть несколько вариантов

Painter

Самый простой вариант - открыть изображение в Painter (или любом другом редакторе изображений).

Решение с Painter

Далее заливкой тыкнуть каким-нибудь контрастным цветом. В данном случае лучше всего белым.


WaterSolved.png

Информация об изображении

В некоторых программах-просмотрах картинок есть статистика по цветам/пикселям.

Таким образом мы можем узнать, что картинка не монотонна и на ней присутствуют пиксели разных цветов.

(Картинка)

На этом этапе суть в том, чтобы определить следующий этап:) Тут может быть как морзянка, так и бинарный код (1001010), о чем пойдет в соответствующей последующей главе.

Другое

Есть еще утилиты, помогающие в поиске водяных знаков, такая как StegSolve. Их мы рассмотрим в соответствующей теме.


Обыкновенное изображение

Нам дано обыкновенное ничем не выделяющееся изображение. StegoXORimage.png

Попиксельное вычитание из оригинала

Тут нам следует найти оригинал изображения.

Поиск оригинала изображения

Для этого есть несколько способов.

Сретства для поиска изображений:

    https://images.google.com/
    https://yandex.ru/images/

Воспользуемся google поиском:

SearchStegoOriginal.png


Находим в картинках изображение такого же размера и скачиваем его.

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

Лично я сделал со StegSolve, речь о котором пойдет в конце страницы.

Чередующиеся пиксели двух изображений

Чтобы это определить, нам требуется воспользоваться программой StegSolve, о которой будет сказано в отдельном пункте.

Если перед вами обыкновенное изображение (например пейзаж) и у него у какого то из цветных фильтров шум, то это означает, что перед вами изображение в которое встроено еще одно изображение путем замены каждого n-ого пикселя пикселем изображения-флага.



Разноцветные пиксели

Пиксели двух цветов

Если у вас предоставлено изображение с пикселями двух цветов, то первое что попробуем сделать - это перевести пиксели в байты.

Приведу пример с прошедших соревнований Break In CTF 2016 - таск You Can(t) See Me.

Нам дана картинка color.png: Color.png

Последовательность действий:

    1. Пишем программу на Python+PIL/Pygame, которая проходит по строкам и создает свою строку f, в которой заменяет черный пиксель
    на 0 и красный пиксель на 1. Стоит заметить что при переходе на новую строку пикселей во время считывания, мы добавляем пробел в
    нашу строку f. В итоге получаем строку из 7 разных повторяющихся цифр.
    2. Идем на сайт https://www.branah.com/ascii-converter и вбиваем нашу строку в поле "Binary" и тыкаем на "Convert".
    Видим в поле "ASCII" текст 
    "3xXKkFstTUpsG2IFDirE6xDrcAF8DSx4iWxd5f9IQ9T205izN8lS2MQUlsF11gT4TFXHHlLHVHprNTtrh6lURfdUW7Lpuzgu1VKzwb1bg1oq6Ae3GnykkLZZsnze3HVLxHlfCYtzyrcV2Oxp0Gb0Z2ELphR4Oxo7TyvHCuWKWlN8t8KIfHysZK7jBNPu6wRVEUPIwVra."
    4. Флаг найден!

Пиксели восьми разных цветов

В случае с 8 пикселями разных цветов сразу же вспоминается Brainloller (http://esolangs.org/wiki/Brainloller).

Может быть не только brainloller в чистом виде - например сделать замену пикселям.

Пример изображения brainloller:

Brainloller.png

Последовательность действий:

    1. Скачиваем интерпретатор по ссылке - https://github.com/hhhonzik/python-brainfuck
    2. Запускаем: python3 brainx.py -l Brainloller.png
    3. Видим HelloWorld. Profit!

Утилиты

tweakpng

позже

StegSolver

CheckPNG

Райтапы

http://countersite.org/articles/steganography/71-qrcode-qctf-2016.html - QRcode QCTF 2016

https://0x90r00t.com/2015/09/07/mma-2015-stegano-nagoya-castle-write-up/ - MMA 2015 Nagoya Castle

http://blog.w3challs.com/index.php?post/2012/10/13/HackYou-CTF-Stego100%2C-Stego200%2C-Stego300-Writeups - go through the tunnel

http://blog.squareroots.de/en/2012/11/polictf-write-up-forensics-200/ - PoliCTF Write-Up Forensics 200

http://countersite.org/articles/steganography/98-curses-and-hexes-stego-tjctf-2016.html - Curses and Hexes TJCTF 2016

http://countersite.org/articles/steganography/97-grey-shades-tjctf2016.html - Basic Images TJCTF2016