
Google Drive、OneDrive、YouTubeを隠れチャネルとして利用 - Google Drive、OneDrive、YouTube、Telegramにファイルをアップロードしてリモートからシステムを制御
ファイルをGoogle Drive、OneDrive、YouTube、またはTelegramにアップロードすることで、リモートからシステムを制御します。Pythonを使用してファイルとリスナーを作成します。テキストファイル、画像、音声、または動画を作成でき、コマンドは平文またはAESで暗号化して指定できます。
covert-googledrive.py - Google Driveの公開フォルダにファイルをアップロードしてシステムを制御します。
covert-onedrive.py - OneDriveの公開フォルダにファイルをアップロードしてシステムを制御します。
covert-youtube.py - Youtubeに動画をアップロードしてシステムを制御します(covert-tubeから更新)。
covert-telegram.py - Telegramボットでシステムを制御します。
サンプルファイルはフォルダ test_files にあります。または generate_file.py で新しいファイルを作成できます:
python3 generate_file.py -t TYPE [-o OUTPUTFILE] [-c COMMAND] [-e]
-t (--type) [必須]: ファイルの種類: "text", "image", "audio" または "video"。
-o (--outputfile) [任意]: 出力ファイル。
-c (--command) [任意]: 実行するコマンド。
-e (--encrypted) [任意]: このフラグを追加してコマンドをAESで暗号化します。
例:
python3 generate_file.py -t text -c "whoami" -o text.txt
python3 generate_file.py -t text -c "whoami" -o text_encrypted.txt -e
python3 generate_file.py -t audio -c "whoami" -o audio.wav
python3 generate_file.py -t audio -c "whoami" -o audio_encrypted.wav -e
python3 generate_file.py -t image -c "whoami" -o image.png
python3 generate_file.py -t image -c "whoami" -o image_encrypted.png -e
python3 generate_file.py -t video -c "whoami" -o video.avi
python3 generate_file.py -t video -c "whoami" -o video_encrypted.avi -e
共通設定値:
data_type (任意。デフォルト: "text"):
個別設定値:
googledrive_folder: 監視するGoogle Driveの公開フォルダのURL (covert-googledrive.py用)。
onedrive_folder: 監視するOneDriveの公開フォルダのURL (covert-onedrive.py用)。
youtube_channel_id: 監視するYoutubeチャンネルのチャンネルID。こちらから取得できます (covert-youtube.py用)。
youtube_api_key: こちらでアプリケーションを作成しキーを生成してAPIキーを取得します (covert-youtube.py用)。
telegram_token: ボットトークン。BotFatherを使用して作成します。「/newbot」と入力し、ボットの名前(例:"botname")と、"-bot"で終わるユーザー名(例:"somethingrandombot")を送信します (covert-telegram.py用)。
telegram_username: Telegramのユーザー名を指定します。このユーザーからのコマンドのみ実行します("@"なし)。
テキストファイル、画像、音声、動画を(暗号化なしまたはAESで暗号化して)アップロードすることでコマンドを実行できます。オプションの入力引数は公開フォルダのURLで、config.pyでも設定可能です:
python3 covert-googledrive.py [FOLDER_URL]
リスナーはデフォルトで300秒ごとにGoogle Driveフォルダをチェックします(config.pyで更新可能)。この例では、動画 "video.avi" がアップロードされ、動画のQRコードにコマンドが含まれています:

フォルダに新しいファイルがアップロードされたことを検出すると、ダウンロード、処理され、コマンドが実行されます:

テキストファイル、画像、音声、動画を(暗号化なしまたはAESで暗号化して)アップロードすることでコマンドを実行できます。オプションの入力引数は公開フォルダのURLで、config.pyでも設定可能です:
python3 covert-onedrive.py [FOLDER_URL]
リスナーはデフォルトで300秒ごとにOneDriveフォルダをチェックします(config.pyで更新可能)。この例では、音声 "audio_encrypted.wav" がアップロードされ、コマンドがAESで暗号化されています:

フォルダに新しいファイルがアップロードされたことを検出すると、ダウンロード、処理され、コマンドが実行されます:

注意: この機能はフォルダ内のファイルを削除しない場合のみ動作します。削除した場合は新しいフォルダを作成する必要があります。削除後も動作するように実装することは可能ですが、多くのリクエストが必要になり、ステルス性が低下します。
動画を(暗号化なしまたはAESで暗号化して)アップロードすることでコマンドを実行できます。オプションの入力引数は監視するYoutubeチャンネルIDとAPIキーで、config.pyでも設定可能です:
python3 covert-youtube.py [CHANNEL_ID] [API_KEY]
リスナーはデフォルトで300秒ごとにYoutubeチャンネルをチェックします(config.pyで更新可能)。まず動画がアップロードされます:

チャンネルに新しい動画があることを検出すると、ダウンロード、処理され、コマンドが実行されます:

Telegramボットでリモートからシステムを制御します。このオプションではファイルのアップロードはできませんが、コマンドを平文("/cmd")またはAESで暗号化して("/encrypted")送信できます。最初のオプション引数はボットトークンで、config.pyでも設定可能です。2番目の引数は、ボットにコマンドを送信できるTelegramユーザーを指定するために使用します("@"なし):
python3 covert-telegram.py [BOT_TOKEN] [TELEGRAM_USER]
リスナーはチャット内のコマンドをチェックし、出力を表示します:
/cmd CLEARTEXT_COMMAND
/encrypted AES_ENCRYPTED_COMMAND

sudo apt install libzbar0
pip install bs4 Pillow opencv-python pyqrcode pypng pyzbar youtube_dl pytesseract python-telegram-bot requests argparse pycryptodome
git clone https://github.com/ricardojoserf/covert-control && cd covert-control/
pyinstaller --onefile covert-googledrive.py
pyinstaller --onefile covert-onedrive.py
pyinstaller --onefile covert-telegram.py
pyinstaller --onefile covert-youtube.py
rm -rf build
rm *spec
ls dist/
| data_type | ファイルの種類 | 暗号化 | 対応サービス | 拡張子 |
|---|
| text | テキストファイル | なし | Google Drive, OneDrive | .txt |
| text_encrypted | テキストファイル | あり | Google Drive, OneDrive | .txt |
| image | 画像 | なし | Google Drive, OneDrive | .png |
| image_encrypted | 画像 | あり | Google Drive, OneDrive | .png |
| audio | 音声 | なし | Google Drive, OneDrive | .wav |
| audio_encrypted | 音声 | あり | Google Drive, OneDrive | .wav |
| video | 動画 | なし | Google Drive, OneDrive, Youtube | .avi |
| video_encrypted | 動画 | あり | Google Drive, OneDrive, Youtube | .avi |
delay_seconds (任意。デフォルト: 300): Google DriveまたはOneDriveフォルダへの新しいファイルのアップロード、またはYoutubeチャンネルの新しい動画のチェック間隔(秒)。
aes_key (任意。デフォルト: "covert-control21"): AES暗号化の鍵。
debug (任意。デフォルト: True): リスナーでメッセージとタイムスタンプを出力するかどうか。