通过上传视频到Youtube来远程控制系统的一个程序,使用Python创建视频和监听端,模拟了我读到的一些恶意软件。它允许创建由简单文本、明文二维码或使用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
监听端默认每300秒检查一次Youtube频道(可在 config.py 中更新)。首先上传视频:

发现频道中有新视频后,下载并执行命令:

我们可以看到命令的输出:

更新 config.py 文件:
channel_id(必填!!!):从此处获取你的Youtube频道ID。
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服务器域名。威胁行为者使用的每个频道上的视频都包含一个描述,在描述末尾有一个指向虚假Facebook或Instagram网址的链接,其中包含C&C服务器域名(Welivesecurity博客)。第二个例子是Numando,它滥用Youtube将数据加密在视频标题中(另一篇Welivesecurity博客)。
了解到这些后,我决定创建一个PoC来测试通过上传视频到Youtube来控制远程系统,但不用标题或描述,而是使用视频内容。它可以执行任何命令,但也可以用于远程更改一些设置。所以这只是一个PoC,请仅用于教育目的!