
YouTube como canal oculto - Controle sistemas remotamente e execute comandos enviando vídeos para o YouTube
Um programa para controlar sistemas remotamente através do upload de vídeos no Youtube usando Python para criar os vídeos e o listener, simulando alguns malwares que eu estava lendo. Ele permite criar vídeos com quadros formados por texto simples, códigos QR com texto claro ou códigos QR usando criptografia AES.
NOTA: Este PoC foi adicionado ao framework covert-control, que permite fazer isso também usando Onedrive, Google Drive e Telegram.
Se o seu alvo é um sistema Windows, talvez prefira a versão em C#: SharpCovertTube (atualizei-a mais recentemente).
Os vídeos podem ser criados usando generate_video.py: insira os comandos e gere o vídeo escrevendo "exit". O vídeo gerado é chamado por padrão de output.avi (pode ser atualizado em config.py):
python3 generate_video.py

python3 main.py
O listener verificará o canal do Youtube a cada 300 segundos por padrão (pode ser atualizado em config.py). Primeiro, o vídeo é enviado:

Após encontrar que há um novo vídeo no canal, ele é baixado e os comandos são executados:

Podemos ver a saída dos comandos:

Atualize o arquivo config.py:
channel_id (Obrigatório!!!): Obtenha o ID do seu canal do Youtube em aqui.
api_key (Obrigatório!!!): Para obter a chave da API, crie um aplicativo e gere a chave em aqui.
image_type (Opcional. Padrão: "qr_aes"): Diferentes tipos de imagens para o vídeo.
upload_seconds_delay (Opcional. Padrão: 300): Atraso em segundos até verificar se um novo vídeo foi enviado.
debug (Opcional. Padrão: True): Exibir mensagens ou não.
aes_key (Opcional. Padrão: "covert-tube_2021"): Chave para criptografia AES, usada na opção "qr_aes".
generated_video_path (Opcional. Padrão: "output.avi"): Caminho do vídeo gerado com generate_video.py.
downloaded_video_path (Opcional. Padrão: "/tmp/test.mp4"): Caminho onde o novo vídeo será baixado.
temp_folder (Opcional. Padrão: "/tmp/"): Caminho onde as imagens de cada quadro do vídeo são armazenadas, no formato image_X*.png*.
Para todo o projeto:
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
Ultimamente tenho lido sobre malwares que usam o Youtube para controlar suas configurações remotamente. Por exemplo, o Casbaneiro abusa do Youtube para armazenar os domínios de seus servidores C&C. Cada vídeo nos canais usados pelo ator da ameaça contém uma descrição e, no final dela, há um link para uma URL falsa do Facebook ou Instagram contendo o domínio do servidor C&C (blog da Welivesecurity). Um segundo exemplo é o Numando, que abusa criptografando os dados no título dos vídeos do Youtube (outro blog da Welivesecurity).
Sabendo disso, decidi criar um PoC para testar o controle de sistemas remotos enviando vídeos para o Youtube, mas, em vez de usar o título ou a descrição, usando o conteúdo do vídeo. Ele permite executar qualquer comando, mas poderia ser usado para alterar algumas configurações remotamente. Então, isso é apenas um PoC, use-o para fins educacionais!