Стеганография. Разбор простейшей тулзы для скрытия информации в картинке
Вступление
Для начала давайте узнаем что такое стеганография в принципе? Википедия гласит что это " наука о тайной передаче информации путем сокрытия самого факта передачи". То есть по сути мы будем учиться передавать с виду "обычные" файлы в которых будет спрятана тайная,конфиденциальная информация (сообщение например). Но сразу стоит предупредить не стоит полагаться на стеганографию как на 100% безопасный способ хранения и передачи данных. Во первых уверенный компьютерный пользователь сможет засечь странный файл (они паляться при внимательном досмотре) и в гос. органах тоже не дураки сидят.
Так что если вы не Сноуден или Митник , то вам хватит простой стеганографии для безопасности. Но можно повысить безопасность закодировав застеганографированую (я бы это не выговорил) информацию, но это мы возможно, рассмотрим в другой статье.
Практика
Работать мы будем на Kali Linux, но вам подойдёт любой unix дистрибутив
Для начала выберем любую безобидную картинку
Я выбрали эту :
И эту :
*спойлер*
В этих картинках уже спрятаны файлы, но пароль я дам в конце статьи
(камень я не дам)
Скачать без проблем можно в конце статьи
*конец спойлера*
Вы можете выбрать абсолютно любую картинку для записи в нее файлов.
Нам понадобиться инструмент под названием steghide
Скачать его можно командой :
sudo apt install steghideИли другим способом (смотря какой у вас дистрибутив)
Далее всё очень просто, для ознакомления с программой можете написать
steghide --help
Для того что бы спрятать файл на нужно прописать
steghide embed -cf <имя файла В КОТОРЫЙ прячем> -ef <имя файла ЧТО прячем>
В моём случае я прячу secret.txt в tiny.jpg и моя команда выглядит так :
Теперь мы должны установить passphrase, придумываем или согласовываем с другом на улице (передавать в мессенджере или записывать на листочке не желательно :^)
И всё готово, теперь можем передать эту пикчу своему другу и только он будет знать что в ней храниться информация
Давайте рассмотрим пример друга - как нам вытянуть файл с картинки?
Тогда мы пропишем такую команду
steghide extract -sf <имя файла с которого хотим извлечь данные>
В моём случае после введения пас-фразы я получил файл secret.txt
Следует заметить что в steghide есть опция по уровню кодирования файла и сжатия
Что бы закодировать алгоритмом AES (rijndael-128) :
достаточно в конце команды дописать --encription cbc , например
steghide embed -cf tiny.jpg -ef test.txt --encryption cbc
И извлечь точно так же как в предыдущем примере
С сжатием достаточно добавить --compress и уровень сжатия (от 1 до 9)
Вместо обычного .txt файла можно спрятать другие текстовые файлы, допустим исходник полезной программы или вируса
Возьмем нашу вторую картинку и повторим все те же шаги, но вместо secret.txt всунем malvare.cpp
Вот так легко, быстро и просто.
...
даже слишком просто
...
Хмм, но да ладно, в следующий раз мы поиграем в шпионов по крупному, Штирлиц покурит в сторонке, а я расскажу о других методах стеганографии без стороннего софта
Спасибо тем что дочитали до конца
Теперь вы можете узнать что я прятал в своих картинках
https://ibb.co/4YJWBHZ tiny.jpg
https://ibb.co/rpStrHM result.jpg
Собственно - пас-фарзы от моих картинок,
tiny.jpg : chtivvvo
result.jpg : safe
Следующие статьи выйдут на моём телеграмм канале
Подписывайтесь, будьте анонимными и слушайте маму :^)