Mythic C2フレームワーク用のリスナープロファイル。AIベンダーのファイルAPIを利用する。
ai_file は、公開文書化された OpenAI Files API を使用して、従来の HTTP/S リスナーの代わりに jsonl ファイルを介してインプラントメッセージを交換する Mythic C2 プロファイルです。これは、OpenAI が公開ドキュメントで定義した Files API の動作に依存しています: https://developers.openai.com/api/docs/guides/file-inputs?api-mode=responses。
リスナーは /v1/files エンドポイントをポーリングして purpose=batch の .jsonl ファイルを探し、各リクエストエンベロープをローカルで復号し、生の Mythic メッセージバイトを Mythic の /agent_message に転送し、Mythic の応答を暗号化して、応答 .jsonl ファイルを Files API にアップロードして戻します。
\
Mythic ディレクトリから:
sudo ./mythic-cli install folder /path/to/openai_file
sudo ./mythic-cli c2 start openai_file
プロファイルを開始する前に C2_Profiles/openai_file/openai_file/c2_code/config.json を編集します:
{
"instances": [
{
"name": "default",
"api_key": "REPLACE_ME",
"base_url": "https://api.openai.com/v1",
"organization": "",
"project": "",
"purpose": "batch",
"channel_id": "mythic",
"request_prefix": "mythic_to_server",
"response_prefix": "mythic_to_agent",
"transport_key": "REPLACE_ME",
"poll_interval_seconds": 5,
"delete_processed_files": true,
"debug": true,
"max_file_bytes": 10485760,
"mythic_host": "",
"mythic_port": 0
}
]
}
必須の値は api_key、transport_key、およびリスナーとペイロードプロファイル設定の間で一致する channel_id です。transport_key は base64:<32 raw bytes> または高エントロピーのパスフレーズにすることができます。パスフレーズはエンベロープ暗号化で使用される前に SHA-256 で派生されます。
エージェントとリスナーは、OpenAI の Files API の .jsonl ファイルを purpose=batch で使用してファイルを交換します。
リクエストファイル名:
<request_prefix>_<channel_id>_<request_id>.jsonl
レスポンスファイル名:
<response_prefix>_<channel_id>_<request_id>.jsonl
デフォルトのリクエストプレフィックスは mythic_to_server、デフォルトのレスポンスプレフィックスは mythic_to_agent、デフォルトのチャネルは mythic です。
各ファイルには 1 行につき 1 つの JSON オブジェクトが含まれます:
{"v":1,"profile":"openai_file","channel":"mythic","direction":"request","id":"req_001","alg":"aes-256-cbc-hmac-sha256+base64url","nonce":"...","ciphertext":"...","created_at":0}
ciphertext は、生の Mythic メッセージバイトに対する末尾の HMAC-SHA256 タグを伴う AES-256-CBC 出力です。nonce は CBC IV です。nonce と ciphertext はパディングなしの base64url です。AAD は:
v|profile|channel|direction|id|alg
例:
1|openai_file|mythic|request|req_001|aes-256-cbc-hmac-sha256+base64url