Поиск по сайту:

Стеганография — скрыть файлы внутри изображений в Linux

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

Что такое стеганография?

Стеганография - это процесс сокрытия файла, изображения, видео или текста внутри другого файла. Как упоминается в Википедии, стеганография представляет собой комбинацию двух греческих слов: steganos , что означает «покрытый, скрытый или защищенный», и graphein . что означает «письмо».

Источники сообщают, что этому методу впервые применил Гистией, древнегреческий царь, еще в 440 году до нашей эры. Он обрил голову своему самому доверенному слуге и пометил на его голове секретное послание.

После того как волосы отросли, он отправил этого слугу к одному из своих вассалов передать сообщение, содержащее некоторую информацию о предстоящем нападении на Грецию.

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

Более подробную информацию о стеганографии можно найти по этой ссылке. Давайте теперь посмотрим, как скрыть файлы внутри изображений в Linux.

Отказ от ответственности:

Стеганография — обширная тема. В этом руководстве рассматривается только то, как скрыть файлы внутри изображений, что является основной концепцией стеганографии. Пожалуйста, не думайте, что это не смогут взломать никакие эксперты по безопасности. Описанный здесь метод очень прост, поэтому даже профессионал по безопасности среднего уровня сможет легко взломать его за пару часов. Описанные ниже шаги предназначены исключительно для образовательных целей. Мы не несем ответственности за любое неправильное использование.

Скрыть файлы внутри изображений в Linux

Мы можем скрывать файлы внутри изображений разными способами. Здесь я привел 5 методов.

Способ 1

Этот метод не требует дополнительного программного обеспечения. Достаточно базовых знаний командной строки Linux.

У меня есть один файл изображения с именем image.jpg и каталог с именем sk. Внутри этого каталога находится файл secret.txt , содержащий конфиденциальное сообщение. Это файл, который мы собираемся встроить в файл image.jpg. В этом каталоге вы можете разместить любое количество файлов, которые хотите скрыть.

Затем я собираюсь сжать каталог sk и сохранить его как secret.zip , чтобы сделать его одним файлом. Наконец, я объединим zip-файл (secret.zip) и файл изображения (image.jpg) с помощью команды cat и сохраню его как ostechnix.jpg.

Чтобы выразить ситуацию более четко,

  1. image.jpg — файл случайного изображения.
  2. sk - каталог, содержащий все секретные файлы.
  3. secret.zip — архив каталога sk.
  4. ostechnix.jpg — выходной файл изображения, содержащий как secret.zip, так и image.jpg.

Шаг 1. Поместите файл изображения и каталог в папку. Я поместил их оба в папку Documents.

Шаг 2. Переместите все файлы, которые хотите скрыть, в папку «sk». Затем сожмите эту папку и сохраните ее как secret.zip. Чтобы сжать папку, просто щелкните ее правой кнопкой мыши и выберите сжать.

Шаг 3: Затем откройте терминал. Перейдите в папку, где вы сохранили zip-файлы и файлы изображений (в нашем случае это Документы). Наконец, объедините файлы secret.zip и test.jpg и сохраните их как ostechnix.jpg с помощью команды cat.

cd Documents
cat image.jpg secret.zip > ostechnix.jpg

Объединение файлов

Вот и все. Теперь мы спрятали конфиденциальные файлы внутри ostechnix.jpg. Это важный файл. Просто удалите все остальные файлы, кроме ostechnix.jpg.

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

Чтобы просмотреть скрытые файлы внутри файла изображения ostechnix.jpg, просто распакуйте его с помощью следующей команды:

unzip ostechnix.jpg

Или,

unzip -t ostechnix.jpg

Пример вывода:

Archive:  ostechnix.jpg
warning [ostechnix.jpg]:  712139 extra bytes at beginning or within zipfile
  (attempting to process anyway)
   creating: sk/
  inflating: sk/secret.txt

Разархивируйте файл изображения

Как вы видите в приведенном выше выводе, каталог sk, содержащий секретные файлы, был извлечен. Теперь вернитесь в папку и проверьте содержимое. Вы увидите там все файлы.

Одним из недостатков этого метода является то, что мы не можем добавить парольную фразу в файл изображения. Не беспокойся! В следующих методах мы можем добавить парольную фразу в выходные файлы.

Способ 2 - использование Steghide

Steghide — это утилита командной строки, которая помогает нам скрыть конфиденциальные данные внутри изображения или аудиофайла. Он поддерживает файлы JPEG, BMP, WAV и AU.

Steghide доступен в репозиториях по умолчанию многих дистрибутивов Linux.

В Arch Linux и его вариантах вы можете установить его с помощью команды:

sudo pacman -S steghide

В Дебиане, Убунту:

sudo apt install steghide

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

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

Вам будет предложено ввести парольную фразу.

Enter passphrase: 
Re-Enter passphrase: 
embedding "secret.txt" in "ostechnix.jpg"... done

Скрыть файлы в изображении с помощью Steghide

В приведенном выше примере я встроил текстовый файл с именем secret.txt в файл изображения с именем ostechnix.jpg. Теперь вы можете удалить исходный файл secret.txt. Потому что мы только что встроили его в файл изображения. Если вы хотите встроить несколько файлов, поместите их в одну папку, заархивируйте ее, а затем скройте, как описано выше.

Чтобы извлечь секретный файл из образа, просто запустите:

steghide extract -sf ostechnix.jpg

Введите парольную фразу, чтобы извлечь ее:

Enter passphrase: 
wrote extracted data to "secret.txt".

Извлеките файлы из изображения с помощью steghide

Для получения более подробной информации обратитесь к справочным страницам,

man steghide

Способ 3 - использование Outguess

Outguess — это еще один стегнографический инструмент командной строки, позволяющий скрыть конфиденциальные файлы внутри изображения. В настоящее время он поддерживает форматы изображений PPM, PNM и JPEG.

Чтобы установить его в Debian, Ubuntu и других системах на базе DEB, запустите:

sudo apt install outguess

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

outguess -d secret.txt ostechnix.jpg output.jpg

Пример вывода:

Reading ostechnix.jpg....
JPEG compression quality set to 75
Extracting usable bits: 158203 bits
Correctable message size: 77641 bits, 49.08%
Encoded 'secret.txt': 160 bits, 20 bytes
Finding best embedding...
0: 88(45.8%)[55.0%], bias -17(-0.19), saved: -1, total: 0.06%
1: 90(46.9%)[56.2%], bias -27(-0.30), saved: -1, total: 0.06%
12: 85(44.3%)[53.1%], bias -36(-0.42), saved: 0, total: 0.05%
26: 91(47.4%)[56.9%], bias -45(-0.49), saved: -1, total: 0.06%
174: 87(45.8%)[54.4%], bias -48(-0.55), saved: 0, total: 0.05%
174, 39: Embedding data: 160 in 158203
Bits embedded: 190, changed: 87(45.8%)[54.4%], bias: -48, tot: 158844, skip: 158654
Foiling statistics: corrections: 77, failed: 6, offset: 864.696970 +- 310.577032
Total bits changed: 39 (change 87 + bias -48)
Storing bitmap into data...
Writing output.jpg....

Здесь файл output.jpg — это тот, который содержит наш файл конфиденциальных данных. сохраните его и удалите все остальное.

Вы также можете добавить парольную фразу в выходной файл, как показано ниже.

outguess -k "my secret key" -d secret.txt ostechnix.jpg output.jpg

Замените «мой секретный ключ» на свою парольную фразу.

Чтобы извлечь файл, просто выполните:

outguess -r output.jpg secret.txt

Пример вывода:

Reading output.jpg....
Extracting usable bits: 158203 bits
Steg retrieve: seed: 174, len: 20

Если вы использовали парольную фразу, используйте вместо нее эту команду:

outguess -k "my secret key" -r output.jpg secret.txt

Более подробную информацию можно найти на страницах руководства.

man outguess

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

Способ 4 — использование Stegosuite

Stegosuite - графический стеганографический инструмент, позволяющий скрывать файлы внутри изображений. Это бесплатный инструмент стеганографии с открытым исходным кодом, написанный на Java. Для внедрения данных он использует метод шифрования AES. Он поддерживает форматы изображений BMP, GIF и JPG.

Чтобы установить его в Debian, Ubuntu и других системах на базе DEB, запустите:

sudo apt install stegosuite

После установки запустите Stegosuite из Dash или меню.

Интерфейс Стегосьюта

Нажмите Файл -> Открыть в строке меню и выберите изображение, которое вы хотите использовать, чтобы скрыть файлы. Затем введите сообщение в первый столбец. Щелкните правой кнопкой мыши второй столбец и выберите «Добавить файл..». Наконец, введите парольную фразу в третьем столбце.

Добавить файлы в stegosuite

Наконец, нажмите кнопку Встроить в нижней части интерфейса Stegosuite.

Встраивание файлов с помощью stegosuite

Теперь новый файл изображения будет создан с именем «filename_embed» в той же папке, из которой вы выбрали изображение. Например, если вы выбрали изображение с именем «image.jpg» в папке «Документы», в самой папке «Документы» будет создан новый файл изображения с именем «image_embed.jpg».

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

Извлеките файлы с помощью stegosuite

Все файлы будут извлечены в одну и ту же папку.

Более подробную информацию можно найти на веб-сайте Stegosuite.

Способ 5 - использование Стега

Steg — это простой кроссплатформенный графический стеганографический инструмент, написанный на языке программирования C++. Это портативное программное обеспечение, поэтому просто скачайте его, носите с собой куда угодно и сразу же начните использовать, независимо от того, какую операционную систему вы используете.

Steg поддерживает форматы изображений JPEG, JPG, TIFF, PNG и BMP. Он использует методы стеганографии и криптографии, чтобы скрыть данные внутри сжатых или несжатых изображений.

Скрыть файлы внутри изображений с помощью Steg

Нажмите эту ссылку, чтобы загрузить приложение Steg. Он доступен как для 32-, так и для 64-битной архитектуры.

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

Для 64-разрядной версии:

wget https://googledrive.com/host/0B-_yxJMDtRxyUExLZzZ3S2VDbjQ/steg-v1.0.0.2-linux64.tgz

Для 32-разрядной версии:

wget https://googledrive.com/host/0B-_yxJMDtRxyRDNGNk1YcXR0UTg/steg-v1.0.0.2-linux32.tgz

После загрузки извлеките его с помощью команды:

tar -xvzf steg-v1.0.0.2-linux64.tgz

Перейдите в каталог Steg:

cd steg-v1.0.0.2-linux64/

И введите следующую команду, чтобы запустить ее.

./steg.sh

Нажмите Да, чтобы принять лицензионное соглашение.

Принять лицензионное соглашение

Нажмите «ОК», чтобы продолжить.

Стег-уведомление

Вот как выглядит интерфейс приложения Steg по умолчанию.

Стег-интерфейс

Теперь давайте спрячем некоторые данные внутри изображения.

Для этого выберите Файл -> Открыть стандартное изображение или Открыть изображение JPEG. Убедитесь, что вы выбрали изображение большого размера, чтобы хранить в нем больше данных. Чем больше изображение вы выберете, тем больше вы сможете сохранить внутри изображения.

После открытия изображения исходное изображение и измененное изображение (выходное изображение) будут показаны на левой и правой панелях соответственно. Кроме того, в правом нижнем углу отображается доступный размер для хранения данных внутри изображения.

Скрыть файлы внутри изображений в Linux с помощью Steg

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

Данные скрыты

Здесь наступает важная часть. Вы можете выбрать различные режимы шифрования.

  • Авто Данные будут зашифрованы, но для извлечения данных не потребуется парольная фраза или ключи.
  • Симметрично. Вы должны указать парольную фразу для шифрования данных, и получателю понадобится та же парольная фраза для их извлечения.
  • Асимметричный беззнаковый, если вы хотите скрыть данные (вы являетесь отправителем), требуется только открытый ключ получателя. Если вы хотите извлечь данные (вы являетесь получателем), требуется только ваш закрытый ключ.
  • Асимметричная подпись: если вы хотите скрыть данные (вы являетесь отправителем), требуются открытый ключ получателя и ваш закрытый ключ. Если вы хотите извлечь данные (вы являетесь получателем), требуется только ваш закрытый ключ, но запрашивается открытый ключ отправителя. Если вы не предоставите открытый ключ отправителя, в конце процесса извлечения вы получите предупреждение о том, что личность отправителя не проверена. Если вы предоставите открытый ключ отправителя, вы будете проинформированы об успешной проверке подписи.

Вы можете выбрать любые методы криптографии по вашему выбору.

Чтобы выбрать конкретный метод шифрования, выберите Правка -> Конфигурация в строке меню. Метод шифрования по умолчанию — авто. Кроме того, если хотите, вы можете встроить в файл несколько сообщений.

Варианты Стега

Если все в порядке, нажмите кнопку Сохранить на панели инструментов и сохраните его в любом удобном для вас месте.

Сохранить медиа

Сделанный! Данные изображения зашифрованы внутри изображения. Это изображение будет выглядеть как обычное изображение. Вы можете просмотреть его с помощью любого приложения для просмотра изображений.

Чтобы извлечь скрытые данные, просто откройте зашифрованное изображение в приложении Steg. Для этого выберите Извлечь -> Извлечь данные в строке меню.

Выберите место, где вы хотите сохранить свои данные. Сделанный!

Извлечение данных

Вот и все. Теперь вы сможете просмотреть данные.

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

Более подробную информацию о Steg можно найти на официальном сайте.

Статьи по данной тематике