Форензика и стеганография в видеофайле: разбор заданий online-этапа NeoQUEST-2015
Прошедший online-этап ежегодного соревнования по кибербезопасности NeoQUEST-2015 был крайне богат на интересные и нетривиальные задания! В этой статье мы: займемся стеганографией видеофайлов и эзотерическим языком программирования Piet, разбирая задание «Истина внутри» влезем в шкуру компьютерного криминалиста, поработаем с TrueCrypt и ответим на вопрос «А был ли ключ?». Отличная новость: утверждена дата «очной ставки» NeoQUEST-2015! Мероприятие состоится 2 июля (четверг) в Санкт-Петербурге, в КДЦ «CLUB HOUSE»! Как и прежде, вход бесплатный — нужно лишь зарегистрироваться на нашем сайте.1. «Истина внутри» — стеганография в видеоСкачиваем файл apple.avi, ссылка на который дана в задании. Обращаем внимание на подсказку в тексте легенды к заданию, намекающую на то, что сравнение полученного видео с оригинальным видео на канале Apple поможет понять, что делать дальше! Заходим на youtube.com, ищем на канале Apple наше видео.
Скачиваем его любым сервисом для сохранения видео с youtube.com в формате .flv. Почему в .flv? Ну не зря же в задании зачем-то упомянуты недавно установленные flv-кодеки.
Логично было бы сравнить эти два видео покадрово, для этого используем программное решение ffmpeg. Разбиваем оба видео на кадры, каждое в свой каталог:
ffmpeg -i ./youtube.flv ./1/%d.png ffmpeg -i ./apple.avi ./2/%d.png Для сравнения подойдет синхронизация каталогов в Total Commander:
На скриншоте отображены кадры, которые различны в обоих видео, таких 24 штуки. Попытаемся сравнить какую-нибудь пару кадров, например, 21-ю. Для этого воспользуемся ImageMagic:
compare.exe 21.png 21.2.png diff.png
В левом верхнем углу видим прямоугольную область. При детальном исследовании понимаем, что в красном канале пикселей изменяется младший бит. Сокрытие информации в младших битах — довольно распространенный метод стеганографии. Имеем 24 кадра, с измененными младшими битами в прямоугольной области. 24 бита достаточно для того, чтобы закодировать 3 байта цвета пикселя.
Теперь нужно собрать из младших битов изображение, для этого используем Python и, например, PIL:
Нетрудно догадаться, что перед нами программа на эзотерическом языке программирования Piet. Придется немного повозиться с интерпретатором, после запуска которого программа выводит на экран сообщение, содержащее ключ к заданию:
«Hello! Secret Key: 8aec4bb34fbdd11c2aef4fea391b4fe2»
2.«А был ли ключ?» — forensic и TrueCrypt Участникам был предоставлен дамп диска, в котором и нужно было найти ключ. Прохождение можно условно разделить на следующие этапы: Монтирование диска Поиск установленного программного обеспечения Поиск зашифрованного логического диска Поиск ключа шифрования тома Поиск ключа к заданию Монтирование дискаWindows 7 — 8.1 позволит подключить образ диска без дополнительного программного обеспечения. На других ОС для монтирования можно использовать Virtual Box, VMWare и другое ПО для виртуализации.
После монтирования в Windows 8.1 появятся 2 диска.Содержимое системного диска:
Диск с пользовательскими данными, которые, конечно, интересуют нас в первую очередь:
Поиск установленного программного обеспечения Необходимо включить отображение скрытых и системных файлов, после чего проверяем основные папки Program Files и Program Files (x86), где находится программа TrueCrypt. TrueCrypt — компьютерная программа для шифрования «на лету». Она позволяет создавать виртуальный зашифрованный логический диск, хранящийся в виде файла.
Поиск зашифрованного логического диска В описании программы указано, что с помощью неё можно создать виртуальный зашифрованный логический диск. Чтобы найти этот диск, используем программу TChunt. tchunt.exe -d …/ > tchunt.txt
Откроем файл tchunt.txt
Файл X:\Users\JohnSmith\files и есть зашифрованный контейнер.
Поиск ключа шифрования тома В корне диска есть папка Dali. Среди всех изображений есть файл key.jpg. Исходя из этого, можно предположить, что используется не пароль, а ключ-файл. При попытке подставить этот файл в качестве ключа для контейнера TrueCrypt сообщает о неверном пароле.
Из чего можно сделать вывод, что ключ либо спрятан в файле key.jpg, либо удалён, либо key.jpg совсем не имеет отношения к зашифрованному диску. Проверим наиболее простую версию — файл удалён (логичное действие, если за вами вдруг пришли!).
Восстанавливаем key-x.jpg и пробуем использовать его как ключ — виртуальный диск успешно монтируется!
Поиск ключа к заданию На диске находится очень большое количество файлов (все — с расширением .jpg) и ключ, скорее всего, спрятан в одном из них. Попробуем проверить последние открытые файлы с таким расширением в системе, для этого необходимо зайти в реестр установленной ОС. Если жёсткий диск смонтирован на виртуальной машине, то достаточно выполнить команду regedit. Если нет, то необходимо подключить нужную часть реестра — hive.Для этого необходимо нажать File > Load Hive и выбрать X:\Users\JohnSmith\NTUSER.dat. Далее переходим по пути: Software\Microsoft\Windows\CurrentVersion\Explorer\RecentDocs\.jpg
Среди содержимого и указаны имена последних открытых файлов. Перебираем их и проверяем наличие ключа на изображении.Ключ оказался на изображении «Петр I на псовой охоте.jpg»
И это ещё не всё! Впереди — разбор остальных заданий online-этапа NeoQUEST-2015 и ожидание яркого и солнечного (несмотря на то, что в Питере) мероприятия «NeoQUEST-2015». Участников ожидает напряжённая борьба длиной в 8 часов, а гостей — конкурсы, доклады, практические мастер-классы, подарки и общение с коллегами! Напоминаем, что для этого — всего пара шагов: пройти регистрацию и (для тех, кто не тут) купить билеты в Питер!