ملف تعريف Mythic C2 الذي ينفق حركة مرور وكيل Athena وApollo عبر رسائل بوت إلى بوت في Telegram، مما يربط الحمولات المشفرة إلى Mythic عبر خدمة Push C2 gRPC الخاصة به.
يوفر Telegram ملف تعريف Mythic C2 لوكيلَي Athena وApollo. يستخدم رسائل Telegram الخاصة بين البوتات كوسيلة نقل، ويستخدم خدمة Mythic Push C2 gRPC كجسر للتحكم.
Athena or Apollo agent bot <-> Telegram Bot API <-> controller bot <-> Telegram C2 service <-> Mythic
يستخدم كل وكيل قيد التشغيل رمز Bot API الخاص به. تستخدم خدمة C2 رمز بوت تحكم واحد. يجب تفعيل وضع الاتصال بين البوتات (Bot-to-Bot Communication Mode) في Telegram لكلا البوتين.
تستخدم الرسائل غلاف JSON صغيرًا وتُقسَّم إلى أجزاء بحجم 2,800 حرف قبل إرسالها عبر sendMessage. تحتفظ حمولات الوكيل بتشفير aes256_hmac الخاص بها؛ إذ تمرر خدمة Telegram رسائل Mythic المشفرة دون فك تشفيرها.
نفّذ هذا الأمر من دليل Mythic:
./mythic-cli install github https://github.com/DavidCarliez/mythic_telegram_profile
للتطوير المحلي، ثبّت النسخة المستنسخة بدلاً من ذلك:
./mythic-cli install folder /path/to/telegram -f
ثبّت إحدى نسخ الوكلاء المدعومين في نشر Mythic نفسه:
# Athena
./mythic-cli install github https://github.com/DavidCarliez/Athena -b telegram-c2
# Apollo
./mythic-cli install github https://github.com/DavidCarliez/Apollo -b telegram-c2
getUpdates يتشاركون قائمة تحديثات واحدة.تتطلب الرسائل الخاصة بين البوتات تفعيل وضع الاتصال في كلا البوتين. توثّق Telegram هذا الشرط في دليلها Bot-to-Bot Communication.
في Mythic، افتح C2 Profiles، ووسّع الإجراءات الخاصة بـ telegram، واختر View/Edit Config. اضبط:
| Key | Value |
|---|---|
botToken | Controller bot token from BotFather |
apiBase | https://api.telegram.org unless using a compatible local Bot API server |
pollTimeout | Long-poll timeout from 1 through 50 seconds |
mythicGrpc | Mythic Push C2 gRPC endpoint; keep the supplied value for a normal Mythic deployment |
احفظ الإعداد، ثم ابدأ تشغيل الملف التعريفي.
اختر ملف تعريف C2 باسم telegram أثناء بناء Athena أو Apollo وقدّم ما يلي:
| Parameter | Description |
|---|---|
bot_token | Token for the payload's dedicated agent bot |
controller_bot | Controller bot username, with or without @ |
api_base | Telegram Bot API base URL |
message_checks | Maximum long polls while waiting for each controller response |
time_between_checks | Long-poll timeout in seconds |
callback_interval | Agent callback interval in seconds |
callback_jitter | Agent callback jitter percentage |
AESPSK | aes256_hmac message encryption |
user_agent | HTTP User-Agent sent to Telegram |
proxy_* | Optional HTTP proxy settings |
killdate | Payload expiration date |
AESPSK مفعّلًا.getUpdates الخاصة بها ستستهلك ردود بعضها البعض.تحتوي كل رسالة نصية في Telegram على كائن JSON بالحقول التالية:
v: إصدار البروتوكول، حاليًا 1sender_id: معرّف مسار عشوائي يُنشئه عملية الوكيلclient_id: معرّف مسار الردto_server: علامة الاتجاهpacket_id: معرّف مجموعة الأجزاءreply_to: معرّف الطلب الذي يقرّ به رد المتحكمsleep: فاصل استدعاء الوكيل الحالي بالثوانيjitter: نسبة ارتجاج استدعاء الوكيل الحاليةchunk: فهرس الجزء بدءًا من الصفرchunks: العدد الإجمالي للأجزاء، بحد أقصى 256message: جزء رسالة Mythic المشفرةتنتهي صلاحية مجموعات الأجزاء غير المكتملة بعد عشر دقائق.