
YouTube como canal C2 - Controlar sistemas Windows enviando vídeos QR para o YouTube
SharpCovertTube é um programa criado para controlar sistemas Windows remotamente através do upload de vídeos no Youtube.
O programa monitora um canal do Youtube até que um vídeo seja carregado, decodifica o código QR da miniatura do vídeo carregado e executa um comando. Os códigos QR nos vídeos podem usar valores em texto claro ou criptografados com AES.
Ele possui duas versões, binário e binário de serviço, e inclui um script Python para gerar os vídeos maliciosos. Seu propósito é servir como um método de persistência utilizando apenas requisições web à API do Google.

Execute o listener no seu sistema Windows:

Ele verificará o canal do Youtube a cada intervalo de tempo específico (10 minutos por padrão) até que um novo vídeo seja carregado. Neste caso, carregamos "whoami.avi" da pasta example-videos:
Após detectar que há um novo vídeo no canal, ele decodifica o código QR da miniatura do vídeo, executa o comando e a resposta é codificada em base64 e exfiltrada usando DNS:

Isso também funciona para códigos QR com cargas úteis criptografadas com AES e respostas de comando mais longas. Neste exemplo, o arquivo "dirtemp_aes.avi" de example-videos é carregado e o conteúdo de c:\temp é exfiltrado usando várias consultas DNS:

O registro em arquivo é opcional, mas verifique se a pasta existe; o valor padrão é "c:\temp\.sharpcoverttube.log", portanto "c:\temp" deve existir.
A exfiltração via DNS também é opcional e pode ser facilmente testada usando o colaborador do Burp:

Como alternativa, criei um script para criar facilmente vídeos QR, fazer upload no Youtube e monitorar e analisar as consultas DNS codificadas em base64. A configuração para usar este script como servidor C2 é explicada na pasta c2-server:

Existem alguns valores que você pode alterar; você pode encontrá-los no arquivo Configuration.cs para o binário regular e o binário de serviço. Apenas os dois primeiros valores precisam ser atualizados:

Você pode gerar os vídeos usando o script do servidor na pasta c2-server ou simplesmente executando o script generate_video.py. Para este último, primeiro instale as dependências:
pip install Pillow opencv-python pyqrcode pypng pycryptodome rebus
Caso esteja usando Linux, você também pode precisar de:
apt-get install libgl1
Em seguida, execute o script generate_video.py:
python generate_video.py -t TYPE -f FILE -c COMMAND [-k AESKEY] [-i AESIV]
Gere um vídeo com um valor QR de "whoami" em texto claro no caminho c:\temp\whoami.avi:
python generate_video.py -t qr -f c:\temp\whoami.avi -c whoami
Gere um vídeo com um valor QR criptografado com AES de "dir c:\windows\temp" com a chave e IV "0000000000000000" no caminho c:\temp\dirtemp_aes.avi:
python generate_video.py -t qr_aes -f c:\temp\dirtemp_aes.avi -c "dir c:\windows\temp" -k 0000000000000000 -i 0000000000000000

Você pode encontrar o código para executá-lo como um serviço na pasta SharpCovertTube_Service. Ele possui as mesmas funcionalidades, exceto a auto-exclusão, que não faria sentido neste caso.
É possível instalá-lo com o InstallUtil; ele está preparado para ser executado como usuário SYSTEM e você precisa instalá-lo como administrador:
InstallUtil.exe SharpCovertTube_Service.exe
Você pode então iniciá-lo com:
net start "SharpCovertTube Service"

Caso você tenha privilégios administrativos, isso pode ser mais discreto do que o binário comum, mas a "Description" e "DisplayName" devem ser atualizadas (como pode ser visto na imagem acima). Se você não tiver esses privilégios, não poderá instalar serviços, então só poderá usar o binário comum.
O arquivo deve ser de 64 bits!!! Isso se deve ao código usado para decodificação de QR, que é emprestado do projeto QR-Capture de Stefan Gansevles, que emprestou parte dele do projeto QRCode de Uzi Granot, que por sua vez emprestou parte dele do projeto Camera_Net de Zakhar Semenov (depois perdi o rastro). Então, obrigado a todos eles!
Este projeto é uma adaptação do covert-tube, um projeto que desenvolvi em 2021 usando apenas Python, que foi inspirado pelos blogs da Welivesecurity sobre os malwares Casbaneiro e Numando.
Este projeto é uma Prova de Conceito (PoC) para mostrar como quase qualquer coisa na Internet pode ser usada como canal C2, espero que seja inspirador para alguém. O projeto é destinado a fins educacionais; se você usar indevidamente o serviço do Youtube, poderá ter problemas, como o Youtube excluir seu canal.