
Youtube를 은밀 채널로 활용 - 원격으로 시스템을 제어하고 Youtube에 동영상을 업로드하여 명령을 실행
Youtube에 동영상을 업로드하여 원격으로 시스템을 제어하는 프로그램입니다. Python을 사용하여 동영상과 리스너를 생성하며, 제가 읽던 일부 악성코드를 모방합니다. 간단한 텍스트로 구성된 프레임, 평문 QR 코드 또는 AES 암호화를 사용한 QR 코드로 동영상을 만들 수 있습니다.
참고: 이 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 서버 도메인을 저장합니다. 위협 행위자가 사용하는 채널의 각 동영상에는 설명이 포함되어 있으며, 그 끝에는 C&C 서버 도메인이 포함된 가짜 Facebook 또는 Instagram URL로의 링크가 있습니다 (Welivesecurity 블로그). 두 번째 예로는 Numando가 있으며, 이는 Youtube 동영상 제목의 데이터를 암호화하여 악용합니다 (다른 Welivesecurity 블로그).
이를 알게 되어 Youtube에 동영상을 업로드하여 원격 시스템을 제어하는 PoC를 만들기로 결정했습니다. 다만 제목이나 설명 대신 동영상의 내용을 사용합니다. 모든 명령어를 실행할 수 있지만, 원격으로 일부 설정을 변경하는 데 사용될 수도 있습니다. 따라서 이것은 단순한 PoC이며, 교육 목적으로만 사용하시기 바랍니다!