
Bifrost C2。Discord APIを使用したオープンソースのポストエクスプロイテーション
Bifrost は、コマンド&コントロール(C2)として動作するオープンソースの Discord BOT です。このC2は、クライアントとサーバー間の通信にDiscord APIを使用します。
Pythonで開発されたこのC2は、ポストエクスプロイテーションのための複数の機能を備えています。
先述の通り、Bifrostは基本的にDiscordボットであり、Discordユーザーからコマンドを受け取り、事前に定義されたタスクを実行します。
感染させるすべてのクライアントに対して、このDiscordボットのコピーを送信すると、ボットはDiscordを介して応答します。 これにより、Discordサービスに隠れてステルス性を保ち、クライアントとの安全な接続を実現できます。
免責事項:このプロジェクトは、許可されたテストまたは教育目的のみに使用してください。
Bifrostは現在Windows Defenderに検出されています。この「問題」を解決し、再び回避する方法を模索中です。
サンドボックス実行に対する防御がなかった場合、VirusTotalの検出率は 5/67 でした。
Bifrostを悪質と検出したアンチウイルスは、SecureAge APEX、Jiangmin、Cynet、Zillya、Palo Alto Networks です。
Bifrostはオープンプロジェクトです。機能の追加やコードの改善を行いたい場合は、フォークを作成してプルリクエストを送信するのが最適な方法です。
1 - Bifrostのソースコードをクローンまたはダウンロードします;
2 - ライブラリの依存関係をインストールします;
pip install -r requirements.txt
3 - Discordアカウントを作成します;
4 - Discord上でアプリケーション(Bot)を作成します;
5 - 一般情報タブに移動し、アプリケーションID をコピーします;
6 - Botタブに移動し、Botを作成してトークンをコピーします;
7 - 以下のリンクにアプリケーションIDを入力して、BotをDiscordサーバーに招待します;
https://discord.com/oauth2/authorize?client_id=<APP_ID>&scope=bot&permissions=8
8 - Discordサーバーでチャンネルを作成し、そのIDをコピーします;
注:Discordアプリで開発者機能を有効にすると、チャンネルIDを簡単にコピーできます。
これで、上記2つの情報(チャンネルIDとBotトークン)を取得したら、bifrost.pyファイルの22行目と23行目の変数の値を、自分のアカウント/チャンネルの値に変更します。
Botとチャンネルを作成し、変数の値を変更したら、以下の手順に従ってペイロードをクライアントにデプロイします。
PyInstallerを使用してBifrostの実行可能ファイルを作成するか、bifrost.pyをクライアントに送信してすべての依存関係をインストールします。
実行可能ファイルを使用する場合、クライアントはPythonや事前インストールされた依存関係を必要としません。
pyinstaller bifrost.py --onefile --noconsole --key th3r4ven_bifrost または
python -m pyinstaller bifrost.py --onefile --noconsole --key th3r4ven_bifrost
注:これらのパラメータはすべてオプションです。使用方法の詳細については、PyInstallerのドキュメントを参照してください。
bifrost.pyを送信して依存関係をインストールするか、Windowsインストールと同様に、このプロセスを自動化するスクリプト/実行可能ファイルを作成できます。
Discord API経由での画面ライブストリームは不可能です :(
