Skip to content
KitploitKITPLOIT
도구블로그
제출
도구블로그
제출

해킹, 침투 테스트 및 사이버 보안 도구를 당신의 보안 무기고에!

Kitploit은 해킹, 사이버 보안 및 침투 테스트 도구 디렉토리입니다. 최신 프로젝트 업데이트를 발견하여 취약점을 찾고, 시스템을 분석하고, 테스트를 자동화하고, 보안을 강화하세요.

··피드·문의·개인정보·© 2026 Kitploit

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
SharpCovertTube — YouTube를 C2 채널로 활용 - QR 동영상을 YouTube에 업로드하여 Windows 시스템 제어 | Kitploit
도구/GitHubGitHub/ricardojoserf/sharpcoverttube
Encryption/Decryption ToolsPayload GenerationPersistence MechanismsData ExfiltrationCommand and ControlLearning & EducationRed Teaming
GitHubricardojoserf/sharpcoverttube

SharpCovertTube

YouTube를 C2 채널로 활용 - QR 동영상을 YouTube에 업로드하여 Windows 시스템 제어

저장소 보기
102122년 전Kitploit 검토 완료

인기

모두 보기 →

커뮤니티에서 가장 많이 사용되는 도구를 찾아보세요.

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

SharpCovertTube

SharpCovertTube는 YouTube에 동영상을 업로드하여 원격으로 Windows 시스템을 제어하도록 만들어진 프로그램입니다.

이 프로그램은 YouTube 채널을 모니터링하다가 동영상이 업로드되면, 해당 동영상의 썸네일에서 QR 코드를 디코딩하여 명령을 실행합니다. 동영상의 QR 코드는 일반 텍스트 또는 AES 암호화된 값을 사용할 수 있습니다.

바이너리 버전과 서비스 바이너리 버전 두 가지가 있으며, 악성 동영상을 생성하는 Python 스크립트도 포함되어 있습니다. 이 도구의 목적은 Google API에 대한 웹 요청만을 사용하여 지속성(persistence) 방법을 제공하는 것입니다.

img1

사용법

Windows 시스템에서 리스너를 실행하세요:

img1

이 리스너는 일정 시간 간격(기본값 10분)마다 YouTube 채널을 확인하여 새 동영상이 업로드될 때까지 기다립니다. 이 경우, example-videos 폴더에서 "whoami.avi"를 업로드합니다:

채널에 새 동영상이 있음을 감지하면, 동영상 썸네일에서 QR 코드를 디코딩하여 명령을 실행하고, 응답을 base64로 인코딩하여 DNS를 통해 유출합니다:

img3

이 기능은 AES 암호화된 페이로드가 포함된 QR 코드와 긴 명령 응답에도 동일하게 작동합니다. 이 예제에서는 example-videos의 "dirtemp_aes.avi" 파일을 업로드하고, c:\temp 폴더의 내용을 여러 개의 DNS 쿼리로 유출합니다:

img4

파일 로깅은 선택 사항이지만 폴더가 존재하는지 확인하십시오. 기본값은 "c:\temp\.sharpcoverttube.log"이므로 "c:\temp" 폴더가 있어야 합니다.

DNS 유출 역시 선택 사항이며, Burp의 collaborator를 사용하여 쉽게 테스트할 수 있습니다:

img8

대안으로, QR 동영상을 쉽게 생성하고 YouTube에 업로드한 후 base64로 인코딩된 DNS 쿼리를 모니터링하고 파싱하는 스크립트를 만들었습니다. 이 스크립트를 C2 서버로 사용하는 방법에 대한 설정은 c2-server 폴더에 설명되어 있습니다:

c2_0


설정

변경할 수 있는 값들이 있습니다. 일반 바이너리와 서비스 바이너리의 Configuration.cs 파일에서 찾을 수 있습니다. 처음 두 값만 업데이트하면 됩니다.

  • channel_id (필수!!!): 여기에서 YouTube 채널 ID를 가져옵니다.
  • api_key (필수!!!): API 키를 얻으려면 여기에서 애플리케이션을 만들고 키를 생성합니다.
  • payload_aes_key (선택 사항. 기본값: "0000000000000000"): QR 코드를 복호화하는 AES 키(AES 사용 시). 16자 문자열이어야 합니다.
  • payload_aes_iv (선택 사항. 기본값: "0000000000000000"): QR 코드를 복호화하는 IV 키(AES 사용 시). 16자 문자열이어야 합니다.
  • seconds_delay (선택 사항. 기본값: 600): 새 동영상이 업로드되었는지 확인하는 지연 시간(초). 값이 낮으면 API 속도 제한을 초과할 수 있습니다.
  • debug_console (선택 사항. 기본값: true): 디버그 메시지를 콘솔에 표시할지 여부.
  • log_to_file (선택 사항. 기본값: true): 디버그 메시지를 로그 파일에 기록할지 여부.
  • log_file (선택 사항. 기본값: "c:\temp\.sharpcoverttube.log"): 로그 파일 경로.
  • dns_exfiltration (선택 사항. 기본값: true): 명령 응답을 DNS를 통해 유출할지 여부.
  • dns_hostname (선택 사항. 기본값: ".test.org"): 시스템에서 실행된 명령의 응답을 유출할 DNS 호스트 이름.

img6


QR 코드가 포함된 동영상 생성

c2-server 폴더의 서버 스크립트를 사용하거나, 간단히 generate_video.py 스크립트를 실행하여 동영상을 생성할 수 있습니다. 후자의 경우 먼저 종속성을 설치하십시오:

root@kitploit:~
pip install Pillow opencv-python pyqrcode pypng pycryptodome rebus

Linux를 사용하는 경우 다음도 필요할 수 있습니다:

root@kitploit:~
apt-get install libgl1

그런 다음 generate_video.py 스크립트를 실행합니다:

root@kitploit:~
python generate_video.py -t TYPE -f FILE -c COMMAND [-k AESKEY] [-i AESIV]
  • TYPE (-t): 페이로드가 일반 텍스트인 경우 "qr", AES 암호화를 사용하는 경우 "qr_aes"여야 합니다.

  • FILE (-f): 동영상이 생성될 경로입니다.

  • COMMAND (-c): 시스템에서 실행할 명령입니다.

  • AESKEY (-k): AES 암호화 키로, "qr_aes" 유형을 사용하는 경우에만 필요합니다. 16자 문자열이어야 하며 SharpCovertTube의 Program.cs 파일에 있는 값과 동일해야 합니다.

  • AESIV (-i): AES 암호화 IV로, "qr_aes" 유형을 사용하는 경우에만 필요합니다. 16자 문자열이어야 하며 SharpCovertTube의 Program.cs 파일에 있는 값과 동일해야 합니다.

예제

"whoami"를 일반 텍스트 QR 값으로 포함하는 동영상을 c:\temp\whoami.avi 경로에 생성:

root@kitploit:~
python generate_video.py -t qr -f c:\temp\whoami.avi -c whoami

AES 암호화된 QR 값 "dir c:\windows\temp"를 키와 IV "0000000000000000"을 사용하여 c:\temp\dirtemp_aes.avi 경로에 생성:

root@kitploit:~
python generate_video.py -t qr_aes -f c:\temp\dirtemp_aes.avi -c "dir c:\windows\temp" -k 0000000000000000 -i 0000000000000000

img5


서비스로 실행

서비스로 실행하는 코드는 SharpCovertTube_Service 폴더에서 확인할 수 있습니다. 자기 삭제(self-deletion) 기능을 제외하고는 동일한 기능을 제공하며, 이 경우 자기 삭제는 의미가 없습니다.

InstallUtil을 사용하여 설치할 수 있으며, SYSTEM 사용자로 실행되도록 준비되어 있고 관리자 권한으로 설치해야 합니다:

root@kitploit:~
InstallUtil.exe SharpCovertTube_Service.exe

그런 다음 다음 명령으로 시작할 수 있습니다:

root@kitploit:~
net start "SharpCovertTube Service"

img7

관리자 권한이 있는 경우 일반 바이너리보다 더 은밀할 수 있지만, "Description"과 "DisplayName"은 업데이트되어야 합니다(위 이미지에서 볼 수 있듯이). 관리자 권한이 없으면 서비스를 설치할 수 없으므로 일반 바이너리만 사용할 수 있습니다.


참고 사항

  • 파일은 64비트여야 합니다!!! 이는 QR 디코딩에 사용된 코드 때문입니다. 이 코드는 Stefan Gansevles의 QR-Capture 프로젝트에서 가져왔으며, 일부는 Uzi Granot의 QRCode 프로젝트에서, 다시 일부는 Zakhar Semenov의 Camera_Net 프로젝트에서 가져왔습니다(그 이후로는 추적을 잃었습니다). 여러분 모두에게 감사드립니다!

  • 이 프로젝트는 2021년에 Python만 사용하여 개발한 covert-tube 프로젝트의 포트입니다. 이는 Welivesecurity의 Casbaneiro 및 Numando 악성코드에 관한 블로그에서 영감을 받았습니다.

  • 이 프로젝트는 인터넷상의 거의 모든 것을 C2 채널로 사용할 수 있음을 보여주는 PoC입니다. 누군가에게 영감이 되기를 바랍니다. 이 프로젝트는 교육 목적으로 제작되었으며, YouTube 서비스를 오용할 경우 채널 삭제 등의 문제가 발생할 수 있습니다.

도구 다운로드