
YouTube как скрытый канал - Управляйте системами удаленно и выполняйте команды, загружая видео на YouTube
Программа для удаленного управления системами путем загрузки видео на YouTube с использованием Python для создания видео и прослушивателя, имитирующая некоторые вредоносные программы, о которых я читал. Она позволяет создавать видео с кадрами, состоящими из простого текста, QR-кодов с открытым текстом или QR-кодов с использованием шифрования AES.
ПРИМЕЧАНИЕ: Эта PoC была добавлена в фреймворк covert-control, который также позволяет делать это с помощью OneDrive, Google Drive и Telegram.
Если вашей целью является система Windows, вы можете предпочесть версию на C#: SharpCovertTube (я обновлял её недавно).
Видео можно создавать с помощью generate_video.py: введите команды и сгенерируйте видео, написав "exit". Сгенерированное видео по умолчанию называется output.avi (можно изменить в config.py):
python3 generate_video.py

python3 main.py
Прослушиватель будет проверять канал YouTube каждые 300 секунд по умолчанию (можно изменить в config.py). Сначала видео загружается:

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

Мы можем увидеть вывод команд:

Обновите файл config.py:
channel_id (Обязательно!!!): Получите ID своего канала YouTube здесь.
api_key (Обязательно!!!): Чтобы получить ключ API, создайте приложение и сгенерируйте ключ здесь.
image_type (Необязательно. По умолчанию: "qr_aes"): Различные типы изображений для видео.
upload_seconds_delay (Необязательно. По умолчанию: 300): Задержка в секундах до проверки, было ли загружено новое видео.
debug (Необязательно. По умолчанию: True): Выводить сообщения или нет.
aes_key (Необязательно. По умолчанию: "covert-tube_2021"): Ключ для шифрования AES, используется в опции "qr_aes".
generated_video_path (Необязательно. По умолчанию: "output.avi"): Путь к видео, сгенерированному с помощью generate_video.py.
downloaded_video_path (Необязательно. По умолчанию: "/tmp/test.mp4"): Путь, куда будет загружено новое видео.
temp_folder (Необязательно. По умолчанию: "/tmp/"): Путь, где хранятся изображения каждого кадра видео, в формате image_X*.png*.
Для всего проекта:
sudo apt install libzbar0
pip3 install Pillow opencv-python youtube_dl pytesseract pyqrcode pypng pyzbar pycrypto
git clone https://github.com/ricardojoserf/covert-tube
pyinstaller --onefile main.py
cp dist/main covert-tube
rm -rf dist build
rm main.spec
В последнее время я читал о вредоносных программах, использующих YouTube для удаленного управления своей настройкой. Например, Casbaneiro злоупотребляет YouTube для хранения доменов своих C&C-серверов. Каждое видео на каналах, используемых угрозой, содержит описание, и в конце этих описаний есть ссылка на поддельный URL Facebook или Instagram, содержащий домен C&C-сервера (блог Welivesecurity). Второй пример — Numando, который также злоупотребляет им, шифруя данные в заголовках видео YouTube (другой блог Welivesecurity).
Узнав это, я решил создать PoC для тестирования управления удаленными системами путем загрузки видео на YouTube, но вместо использования заголовка или описания — используя содержимое видео. Это позволяет выполнять любые команды, но также может использоваться для удаленного изменения некоторых настроек. Так что это всего лишь PoC, используйте его в образовательных целях!