Mythic-C2-Profil, das Athena- und Apollo-Agent-Verkehr durch Telegram-Bot-zu-Bot-Nachrichten tunnelt und verschlüsselte Payloads über den Push-C2-gRPC-Dienst an Mythic übermittelt.
Telegram stellt ein Mythic C2-Profil für die Agents Athena und Apollo bereit. Es verwendet private Bot-zu-Bot-Nachrichten von Telegram als Transport und Mythics Push-C2-gRPC-Dienst als Controller-Bridge.
Athena- oder Apollo-Agent-Bot <-> Telegram Bot API <-> Controller-Bot <-> Telegram-C2-Dienst <-> Mythic
Jeder laufende Agent verwendet sein eigenes Bot-API-Token. Der C2-Dienst verwendet ein Controller-Bot-Token. Beide Bots müssen den Bot-zu-Bot-Kommunikationsmodus von Telegram aktiviert haben.
Nachrichten verwenden einen kleinen JSON-Umschlag und werden in 2.800-Zeichen-Chunks aufgeteilt, bevor sie über sendMessage gesendet werden. Agent-Payloads behalten ihre aes256_hmac-Verschlüsselung bei; der Telegram-Dienst leitet verschlüsselte Mythic-Nachrichten weiter, ohne sie zu entschlüsseln.
Führen Sie diesen Befehl aus dem Mythic-Verzeichnis aus:
./mythic-cli install github https://github.com/DavidCarliez/mythic_telegram_profile
Für die lokale Entwicklung installieren Sie stattdessen den Checkout:
./mythic-cli install folder /path/to/telegram -f
Installieren Sie einen der unterstützten Agent-Forks in derselben Mythic-Bereitstellung:
# 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-Konsumenten eine Update-Warteschlange teilen.Private Bot-zu-Bot-Nachrichten erfordern den Kommunikationsmodus bei beiden Bots. Telegram dokumentiert die Anforderung in seinem Leitfaden Bot-to-Bot Communication.
Öffnen Sie in Mythic C2 Profiles, erweitern Sie die Aktionen für telegram und wählen Sie View/Edit Config. Legen Sie fest:
| Key | Value |
|---|---|
botToken | Controller-Bot-Token von BotFather |
apiBase | https://api.telegram.org, sofern kein kompatibler lokaler Bot-API-Server verwendet wird |
pollTimeout | Long-Poll-Timeout von 1 bis 50 Sekunden |
mythicGrpc | Mythic Push C2 gRPC-Endpunkt; behalten Sie den mitgelieferten Wert für eine normale Mythic-Bereitstellung bei |
Speichern Sie die Konfiguration und starten Sie dann das Profil.
Wählen Sie das C2-Profil telegram beim Erstellen von Athena oder Apollo aus und geben Sie Folgendes an:
| Parameter | Beschreibung |
|---|---|
bot_token | Token für den dedizierten Agent-Bot der Payload |
controller_bot | Benutzername des Controller-Bots, mit oder ohne @ |
api_base | Basis-URL der Telegram Bot API |
message_checks | Maximale Long-Polls beim Warten auf jede Controller-Antwort |
time_between_checks | Long-Poll-Timeout in Sekunden |
callback_interval | Agent-Callback-Intervall in Sekunden |
callback_jitter | Agent-Callback-Jitter in Prozent |
AESPSK | aes256_hmac-Nachrichtenverschlüsselung |
user_agent | HTTP-User-Agent, der an Telegram gesendet wird |
proxy_* | Optionale HTTP-Proxy-Einstellungen |
killdate | Ablaufdatum der Payload |
AESPSK aktiviert.getUpdates-Aufrufe würden die Antworten der jeweils anderen konsumieren.Jede Telegram-Textnachricht enthält ein JSON-Objekt mit diesen Feldern:
v: Protokollversion, derzeit 1sender_id: zufälliger Routenbezeichner, der vom Agent-Prozess generiert wirdclient_id: Antwort-Routenbezeichnerto_server: Richtungsflagpacket_id: Chunk-Set-Bezeichnerreply_to: Anfragebezeichner, der durch eine Controller-Antwort bestätigt wirdsleep: aktuelles Agent-Callback-Intervall in Sekundenjitter: aktueller Agent-Callback-Jitter in Prozentchunk: nullbasierter Chunk-Indexchunks: Gesamtzahl der Chunks, begrenzt auf 256message: verschlüsseltes Mythic-NachrichtenfragmentUnvollständige Chunk-Sets laufen nach zehn Minuten ab.