Стеганография в стиле мистер Робот :)
Сегодня я хотел бы познакомить читателей Хабра с цифровой стеганографией. В нынешнем примере мы создадим, протестируем, проанализируем и взломаем стегосистемы. Я использую операционную систему Kali GNU/Linux, но кому интересна тема на практике, тот может повторить все то же в любом другом дистрибутиве Линукс.
Но для начала совсем немного теории.
Как сообщает википедия:
Стеганогра́фия — способ передачи или хранения информации с учётом сохранения в тайне самого факта такой передачи (хранения).
Цифровая стеганография — направление классической стеганографии, основанное на сокрытии или внедрении дополнительной информации в цифровые объекты, вызывая при этом некоторые искажения этих объектов.
Стеганографическая система (стегосистема) — объединение методов и средств, используемых для создания скрытого канала для передачи информации.
Стегоанализ или Стеганоанализ — раздел стеганографии; наука о выявлении факта передачи скрытой информации в анализируемом сообщении.
Приступим к практике
Установим необходимые утлиты:
sudo apt update; apt install stegcracker steghide stegosuite binwalk stegseek
Далее будут примеры работы с утилитами стеганографии, стегоанализа и взлома паролей стегосистемы.
Создадим папку с файлами внутри нее (см скриншот ниже, содержимое папки выводим командой ls).
Создаем стегосистему утилитой steghide (естественно задаем пароль):
steghide embed -cf 1.jpg -ef secret.txt
Перед проверкой обязательно удаляем искомый текстовик secret.txt (rm secret.txt).
Проверяем (естественно вводим пароль):
steghide extract -sf 1.jpg
Стегосистема исправна, внутри изображения лежит текстовый файл.
При создании стегоконтейнера мы задали пароль. Теперь поробуем взломать пароль нашего стегохранилища методом брутфорс атаки утилитой Stegcracker:
stegcracker 1.jpg realyBest.txt
В данном случае realyBest.txt - словарь паролей.
Резултат выполнения:
Аналогичный синтаксис и метод атаки имеет и утилита stegseek:
stegseek 1.jpg realyBest.txt
Кстати, словарик паролей лежит вот тутЪ
Вообще данный пример очень неплохо подойдет новичкам, которые знакомятся с информационной безопасностью, для того чтобы узнать что есть брутфорс (взлом пароля методом автоматизированного перебора по словарю). Но продолжим далее.
Удалим все лишнее (команда rm file1 file2 ....) и оставим один png рисунок и зип архив. Дело в том что в системах линукс при помощи команды cat возможно слияние нескольких файлов в один. При чем тот файл который в синтаксисе будет стоять первым "поглотит" и остальные файлы. Синтаксис:
cat 3.png secret.zip >> 3.png
В данном случае изображение "поглотило" зип-файл с secret.txt внутри архива, но при этом функционал архива не нарушен. Удалим зип архив командой rm.
Для анализа такого рода стегосистемы можно воспользоваться утилитой binwalk:
binwalk 3.png
На скрине ниже виден вывод, а также что внутри картинки скрыт архив.
Зная что картинка содержит внутри зип, мы можем легко его разархивировать командой:
unzip 3.png
Проверим ls и видим что в директории снова два файла и содержимое архива снова лежит в директории.
Кроме того, в системах линукс есть восхитительная утилита с графическим интерфейсом stegosuite. Пользоваться ей очень просто и приятно.
Стоит помнить, что стегосистемы иногда очень хрупкие системы. Например при передаче файла‑стегосистемы через некоторые мессенджеры, лишние метаданные файла «обрубаются» мессенджером и по итогу мы получаем просто картинку, без спрятанного в него хранилища.
Спасибо за прочтение. До новых встреч.