ملف تعريف المستمع لإطار عمل Mythic C2 يستخدم واجهات برمجة تطبيقات ملفات موردي الذكاء الاصطناعي
ai_file هو ملف تعريف Mythic C2 يستخدم واجهة OpenAI Files API الموثقة علنًا لتبادل رسائل الـ implant عبر ملفات jsonl بدلاً من مستمع HTTP/S التقليدي. يعتمد على سلوك Files API كما هو محدد من OpenAI في الوثائق العامة: https://developers.openai.com/api/docs/guides/file-inputs?api-mode=responses.
يقوم المستمع بالاستعلام الدوري عن نقطة النهاية /v1/files بحثًا عن ملفات .jsonl ذات purpose=batch، ويفك تشفير كل غلاف طلب محليًا، ويمرر بايتات رسالة Mythic الخام إلى /agent_message الخاص بـ Mythic، ويشفّر استجابة 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 متطابق بين إعدادات المستمع والملف التعريفي للـ payload. يمكن أن يكون transport_key بصيغة base64:<32 raw bytes> أو عبارة مرور عالية العشوائية؛ يتم اشتقاق عبارات المرور عبر SHA-256 قبل استخدامها في تشفير الغلاف.
يتبادل الوكلاء والمستمع الملفات باستخدام ملفات .jsonl الخاصة بـ OpenAI Files API مع 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 هو ناتج AES-256-CBC مع وسم HMAC-SHA256 لاحق على بايتات رسالة Mythic الخام. 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