Profilo C2 Mythic che incanala il traffico degli agenti Athena e Apollo attraverso messaggi bot-to-bot di Telegram, collegando i payload cifrati a Mythic tramite il suo servizio gRPC Push C2.
Telegram fornisce un profilo C2 Mythic per gli agenti Athena e Apollo. Utilizza i messaggi privati bot-to-bot di Telegram come trasporto e il servizio gRPC Push C2 di Mythic come bridge del controller.
Athena or Apollo agent bot <-> Telegram Bot API <-> controller bot <-> Telegram C2 service <-> Mythic
Ogni agente in esecuzione utilizza il proprio token Bot API. Il servizio C2 utilizza un token del bot controller. Entrambi i bot devono avere abilitata la Modalità di Comunicazione Bot-to-Bot di Telegram.
I messaggi utilizzano un piccolo envelope JSON e vengono suddivisi in chunk da 2.800 caratteri prima di essere inviati tramite sendMessage. I payload degli agenti mantengono la loro crittografia aes256_hmac; il servizio Telegram inoltra i messaggi Mythic cifrati senza decifrarli.
Esegui questo comando dalla directory di Mythic:
./mythic-cli install github https://github.com/DavidCarliez/mythic_telegram_profile
Per lo sviluppo locale, installa invece il checkout:
./mythic-cli install folder /path/to/telegram -f
Installa uno dei fork di agente supportati nella stessa distribuzione 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 condividono un'unica coda di aggiornamenti.I messaggi privati bot-to-bot richiedono la modalità di comunicazione su entrambi i bot. Telegram documenta il requisito nella sua guida Bot-to-Bot Communication.
In Mythic, apri C2 Profiles, espandi le azioni per telegram e seleziona View/Edit Config. Imposta:
| Key | Value |
|---|---|
botToken | Token del bot controller da BotFather |
apiBase | https://api.telegram.org a meno che non si utilizzi un server Bot API locale compatibile |
pollTimeout | Timeout long-poll da 1 a 50 secondi |
mythicGrpc | Endpoint gRPC Push C2 di Mythic; mantieni il valore fornito per una normale distribuzione Mythic |
Salva la configurazione, quindi avvia il profilo.
Seleziona il profilo C2 telegram durante la creazione di Athena o Apollo e fornisci:
| Parameter | Description |
|---|---|
bot_token | Token per il bot agente dedicato al payload |
controller_bot | Username del bot controller, con o senza @ |
api_base | URL di base della Telegram Bot API |
message_checks | Numero massimo di long poll in attesa di ogni risposta del controller |
time_between_checks | Timeout long-poll in secondi |
callback_interval | Intervallo di callback dell'agente in secondi |
callback_jitter | Percentuale di jitter del callback dell'agente |
AESPSK | Crittografia dei messaggi aes256_hmac |
user_agent | User-Agent HTTP inviato a Telegram |
proxy_* | Impostazioni opzionali del proxy HTTP |
killdate | Data di scadenza del payload |
AESPSK abilitato.getUpdates consumerebbero reciprocamente le risposte.Ogni messaggio di testo Telegram contiene un oggetto JSON con questi campi:
v: versione del protocollo, attualmente 1sender_id: identificatore di route casuale generato dal processo dell'agenteclient_id: identificatore di route della rispostato_server: flag di direzionepacket_id: identificatore del set di chunkreply_to: identificatore della richiesta confermata da una risposta del controllersleep: intervallo di callback corrente dell'agente in secondijitter: percentuale di jitter del callback corrente dell'agentechunk: indice del chunk a base zerochunks: numero totale di chunk, limitato a 256message: frammento del messaggio Mythic cifratoI set di chunk incompleti scadono dopo dieci minuti.