Прошедший 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


Участникам был предоставлен дамп диска, в котором и нужно было найти ключ. Прохождение можно условно разделить на следующие этапы:
  1. Монтирование диска
  2. Поиск установленного программного обеспечения
  3. Поиск зашифрованного логического диска
  4. Поиск ключа шифрования тома
  5. Поиск ключа к заданию


Монтирование диска
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 часов, а гостей — конкурсы, доклады, практические мастер-классы, подарки и общение с коллегами! Напоминаем, что для этого — всего пара шагов: пройти регистрацию и (для тех, кто не тут) купить билеты в Питер!

Комментарии (0)