Mythic C2 फ्रेमवर्क के लिए एक लिसनर प्रोफ़ाइल जो AI विक्रेताओं की फ़ाइल API का उपयोग करती है
ai_file एक Mythic C2 प्रोफ़ाइल है जो सार्वजनिक रूप से प्रलेखित OpenAI Files API का उपयोग करके पारंपरिक HTTP/S लिसनर के बजाय jsonl फ़ाइलों के माध्यम से इम्प्लांट संदेशों का आदान-प्रदान करती है। यह OpenAI द्वारा सार्वजनिक दस्तावेज़ में परिभाषित Files API व्यवहार पर निर्भर करती है: https://developers.openai.com/api/docs/guides/file-inputs?api-mode=responses।
लिसनर purpose=batch वाली .jsonl फ़ाइलों के लिए /v1/files एंडपॉइंट को पोल करता है, प्रत्येक अनुरोध लिफ़ाफ़े को स्थानीय रूप से डिक्रिप्ट करता है, कच्चे 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 है।
प्रत्येक फ़ाइल में एक या अधिक 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