Стеганография в Linux — просто

Стеганография в стиле мистер Робот)

Сегодня я хотел бы познакомить читателей Хабра с цифровой стеганографией. В нынешнем примере мы создадим, протестируем, проанализируем и взломаем стегосистемы. Я использую операционную систему Kali GNU/Linux, но кому интересна тема на практике, тот может повторить все то же в любом другом дистрибутиве Линукс.
Но для начала совсем немного теории.

Как сообщает википедия:
Стеганогра́фия — способ передачи или хранения информации с учётом сохранения в тайне самого факта такой передачи (хранения).
Цифровая стеганография — направление классической стеганографии, основанное на сокрытии или внедрении дополнительной информации в цифровые объекты, вызывая при этом некоторые искажения этих объектов.
Стеганографическая система (стегосистема) — объединение методов и средств, используемых для создания скрытого канала для передачи информации.
Стегоанализ или Стеганоанализ — раздел стеганографии; наука о выявлении факта передачи скрытой информации в анализируемом сообщении.

Приступим к практике.
Установим необходимые утлиты:

sudo apt update; apt install stegcracker steghide stegosuite binwalk stegseek

Далее будут примеры работы с утилитами стеганографии, стегоанализа и взлома паролей стегосистемы.
Создадим папку с файлами внутри нее (см скриншот ниже, содержимое папки выводим командой ls).

Создаем стегосистему утилитой steghide (естественно задаем пароль):

steghide embed -cf 1.jpg -ef secret.txt

96051315ac7ebf061105bda08a3d65be.png97c63d1c2a4cb8819d509e135fdb2aac.png

Перед проверкой обязательно удаляем искомый текстовик secret.txt (rm secret.txt).
Проверяем (естественно вводим пароль):

steghide extract -sf 1.jpg

После использования в папке снова появляется искомый текстовый файл.

После использования в папке снова появляется искомый текстовый файл.

Стегосистема исправна, внутри изображения лежит текстовый файл.
При создании стегоконтейнера мы задали пароль. Теперь поробуем взломать пароль нашего стегохранилища методом брутфорс атаки утилитой Stegcracker:

stegcracker 1.jpg realyBest.txt

В данном случае realyBest.txt — словарь паролей.
Резултат выполнения:

800bdb0e677a6e348661eb97aba636de.png

Аналогичный синтаксис и метод атаки имеет и утилита stegseek:

stegseek 1.jpg realyBest.txt

(Кстати словарик паролей лежит вот тутЪ https://github.com/empty-jack/YAWR/blob/master/brute/passwords/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 и видим что в директории снова два файла и содержимое архива снова лежит в директории.

8d180ceffc455ef83872293a39d46f97.png

Кроме того, в системах линукс есть восхитительная утилита с графическим интерфейсом stegosuite. Пользоваться ей очень просто и приятно.
Стоит помнить, что стегосистемы иногда очень хрупкие системы. Например при передаче файла-стегосистемы через некоторые месенджеры, лишние метаданные файла «обрубаются» месенджером и поитогу мы получаем просто картинку, без спрятного в него хранилища.

Спасибо за прочтение. До новых встреч.

© Habrahabr.ru