Статья Открытый код. Безопасная передача файлов и сокрытие данных в картинке.

OpS5.webp

Введение

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

Дисклеймер: Все данные предоставленные в данной статье, взяты из открытых источников. Не призывают к действию и являются только лишь данными для ознакомления, и изучения механизмов используемых технологий.

Stega Shade CLI

Что это?

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

Установка и использование

Метод установки достаточно прост, ставим как модуль в Python:

Код:
pip install stegashade
У инструмента есть два режима кодирования:
  • Простая стеганография: Кодирование и декодирование сообщений в изображения без необходимости в дополнительных слоях безопасности. Идеально подходит для повседневного использования.
  • Защищенная стеганография: Кодирование с защитой паролем гарантирует, что только авторизованные пользователи могут декодировать скрытое сообщение. Использует шифрование AES для надежной безопасности.
Теперь перейдём к использованию. Для того чтобы кодировать информацию простым способом, достаточно прописать следующую команду в которой нужно прописать путь к нужному изображению:

Код:
stegashade encode_simple input.png output.png "Hello, world!"

sh1.webp

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

Код:
stegashade decode_simple output.png

sh2.webp

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

Код:
stegashade encode_protected input.png output.png "Secret Data" "my_secure_password"
И команду для декодирования:
Код:
stegashade decode_protected output.png "my_secure_password"

sh3.webp

Инструмент особенно удобен для автоматизации процессов стеганографии, к примеру можно написать скрипт на Bash, который будет разбивать шифруемое предложение на отдельные слова и шифровать каждое слово отдельно в картинку. К примеру такой:

Код:
#!/bin/bash

# Проверка наличия stegashade
if ! command -v stegashade &> /dev/null; then
echo "Ошибка: stegashade не установлен или не добавлен в PATH."
exit 1
fi

# Функция для кодирования каждого слова в отдельное изображение
encode_words() {
if [ $# -lt 3 ]; then
echo "Использование: $0 encode <базовое_изображение> <префикс_выходного_файла> \"<предложение>\""
exit 1
fi

base_image="$1"
output_prefix="$2"
sentence="$3"

if [ ! -f "$base_image" ]; then
echo "Ошибка: файл '$base_image' не существует."
exit 1
fi

# Разбиваем предложение на слова
IFS=' ' read -ra words <<< "$sentence"

echo "Кодирование каждого слова в отдельное изображение..."
for i in "${!words[@]}"; do
word="${words[$i]}"
output_image="${output_prefix}_$i.png"
stegashade encode_simple "$base_image" "$output_image" "$word"

if [ $? -eq 0 ]; then
echo "Закодировано: '$word' → $output_image"
else
echo "Ошибка при кодировании слова '$word'"
fi
done
echo "Готово! Все слова закодированы в изображения с префиксом '$output_prefix'"
}

# Функция для массового декодирования всех изображений с префиксом
decode_all_words() {
if [ $# -lt 1 ]; then
echo "Использование: $0 decode <префикс_изображений>"
echo "Пример: $0 decode 'crypt' (расшифрует crypt_0.png, crypt_1.png, ...)"
exit 1
fi

prefix="$1"
found=0
reconstructed_sentence=""

echo "Поиск и декодирование изображений с префиксом '$prefix'..."

# Ищем все файлы вида prefix_*.png
for image in "${prefix}_"*.png; do
if [ -f "$image" ]; then
found=1
echo "Декодирование $image..."
decoded_word=$(stegashade decode_simple "$image")

if [ $? -eq 0 ]; then
echo "→ $decoded_word"
reconstructed_sentence+="$decoded_word "
else
echo "Ошибка при декодировании $image"
fi
fi
done

if [ $found -eq 0 ]; then
echo "Изображения с префиксом '${prefix}_*.png' не найдены."
else
echo "Восстановленное предложение:"
echo "$reconstructed_sentence"
fi
}

# Основной код
case "$1" in
encode)
shift
encode_words "$@"
;;
decode)
shift
decode_all_words "$@"
;;
*)
echo "Использование:"
echo "  Кодирование: $0 encode <базовое_изображение> <префикс_выхода> \"<предложение>\""
echo "  Декодирование: $0 decode <префикс_изображений>"
echo "Примеры:"
echo "  $0 encode input.png crypt \"Это тестовое предложение\""
echo "  $0 decode crypt"
exit 1
;;
esac
И получаем следующую картину:

sh4.webp

Таким образом можно экспериментировать сколько угодно, в этом вашим ограничением будет только фантазия!

Goshs

Что это?

Goshs — это простая, но в то же время богатая функциями система передачи файлов, написанная на языке Go. Она представляет собой альтернативу Python-скрипту SimpleHTTPServer, позволяя пользователям загружать и скачивать файлы через HTTP/S с поддержкой как самоподписанных, так и пользовательских сертификатов, а также базовой аутентификации.

Установка и использование

В дистрибутиве Kali Linux этот инструмент можно установить при помощи команды:

Код:
sudo apt install goshs
Чтобы использовать этот инструмент, достаточно перейти в директорию которую нужно передать и запустить инструмент одноимённой командой:

gs1.webp

Как можем видеть, в веб-интерфейсе отображается всё содержимое нужной папки и можно даже обмениваться сообщениями в простом формате или какими-то комментариями.

Для вывода в глобальную сеть, достаточно иметь ssh и воспользоваться следующей командой:

Код:
ssh -R 80:localhost:8000 ssh.localhost.run
После localhost прописываем порт, который нужно пробросить. К сожалению данная команда сможет пробросить только http протокол и если попробовать этот трюк с пробросом tcp порта, к сожалению не сработает.

gs2.webp

Минусом такого метода будет являться то, что ссылка периодически будет меняться, но из этого минуса вытекает и плюс, т.к это и добавляет больше безопасности. Ссылку можно скопировать после фразы tunneled with tls termination или просто навестись на QR.

gs3.webp

Как видим ссылка работает и плюсом добавляется трафик HTTPS, поэтому если нужно экстренно передать файлы из точку А в точку Б, этот инструмент отлично справиться с задачей!

Заключение

Инструменты представленные в этой статье смогут пополнить ваш арсенал подручных инструментов в повседневной жизни, а знания в программировании помогут адаптировать эти инструменты под вас, ваши потребности и ваши методы использования. Спасибо за прочтение друг!
 
  • Нравится
Реакции: Menschenfresser
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!