Profil Mythic C2 qui tunnelise le trafic des agents Athena et Apollo via des messages bot-à-bot Telegram, reliant les charges utiles chiffrées à Mythic via son service gRPC Push C2.
Telegram fournit un profil C2 Mythic pour les agents Athena et Apollo. Il utilise les messages privés bot-à-bot de Telegram comme transport et le service gRPC Push C2 de Mythic comme pont de contrôleur.
Athena or Apollo agent bot <-> Telegram Bot API <-> controller bot <-> Telegram C2 service <-> Mythic
Chaque agent en cours d'exécution utilise son propre jeton Bot API. Le service C2 utilise un jeton de bot contrôleur. Les deux bots doivent avoir le mode de communication bot-à-bot de Telegram activé.
Les messages utilisent une petite enveloppe JSON et sont découpés en blocs de 2 800 caractères avant d'être envoyés via sendMessage. Les charges utiles des agents conservent leur chiffrement aes256_hmac ; le service Telegram transmet les messages Mythic chiffrés sans les déchiffrer.
Exécutez cette commande depuis le répertoire Mythic :
./mythic-cli install github https://github.com/DavidCarliez/mythic_telegram_profile
Pour le développement local, installez plutôt le dépôt cloné :
./mythic-cli install folder /path/to/telegram -f
Installez l'un des forks d'agent pris en charge dans le même déploiement 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 partagent une même file de mises à jour.Les messages privés bot-à-bot nécessitent l'activation du mode de communication sur les deux bots. Telegram documente cette exigence dans son guide Bot-to-Bot Communication.
Dans Mythic, ouvrez C2 Profiles, dépliez les actions pour telegram et sélectionnez View/Edit Config. Définissez :
| Key | Value |
|---|---|
botToken | Jeton du bot contrôleur fourni par BotFather |
apiBase | https://api.telegram.org sauf si vous utilisez un serveur Bot API local compatible |
pollTimeout | Délai d'attente du long polling, de 1 à 50 secondes |
mythicGrpc | Point de terminaison gRPC Push C2 de Mythic ; conservez la valeur fournie pour un déploiement Mythic standard |
Enregistrez la configuration, puis démarrez le profil.
Sélectionnez le profil C2 telegram lors de la construction d'Athena ou d'Apollo et fournissez :
| Parameter | Description |
|---|---|
bot_token | Jeton du bot agent dédié à la charge utile |
controller_bot | Nom d'utilisateur du bot contrôleur, avec ou sans @ |
api_base | URL de base de l'API Telegram Bot |
message_checks | Nombre maximal de long polls en attente de chaque réponse du contrôleur |
time_between_checks | Délai d'attente du long polling en secondes |
callback_interval | Intervalle de rappel de l'agent en secondes |
callback_jitter | Pourcentage de gigue du rappel de l'agent |
AESPSK | Chiffrement des messages aes256_hmac |
user_agent | User-Agent HTTP envoyé à Telegram |
proxy_* | Paramètres de proxy HTTP facultatifs |
killdate | Date d'expiration de la charge utile |
AESPSK activé.getUpdates consommeraient mutuellement leurs réponses.Chaque message texte Telegram contient un objet JSON avec ces champs :
v : version du protocole, actuellement 1sender_id : identifiant de route aléatoire généré par le processus de l'agentclient_id : identifiant de route de réponseto_server : indicateur de directionpacket_id : identifiant de l'ensemble de blocsreply_to : identifiant de requête acquitté par une réponse du contrôleursleep : intervalle de rappel actuel de l'agent en secondesjitter : pourcentage de gigue du rappel actuel de l'agentchunk : index du bloc, basé sur zérochunks : nombre total de blocs, limité à 256message : fragment de message Mythic chiffréLes ensembles de blocs incomplets expirent après dix minutes.