Skip to content
KitploitKITPLOIT
StrumentiBlog
Invia
StrumentiBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

··Feed·Contatto·Privacy·© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
msteams — Profilo C2 Mythic che incanala il traffico dell'agente attraverso i canali di Microsoft Teams utilizzando l'API Microsoft Graph, con crittografia AES256, jitter, kill date e supporto proxy. | Kitploit
Strumenti/GitHubGitHub/whispergate/msteams
Strumenti DifensiviFrameworks per Penetration TestingStrumenti di Crittografia/DecrittografiaPost-ExploitCommand and ControlUtilità e FrameworkRed TeamingSviluppo Payload
GitHubwhispergate/msteams

msteams

Profilo C2 Mythic che incanala il traffico dell'agente attraverso i canali di Microsoft Teams utilizzando l'API Microsoft Graph, con crittografia AES256, jitter, kill date e supporto proxy.

28172 giorni faNon ancora revisionato

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Vedi Repository
Condividi

msteams

Un profilo C2 per Mythic che utilizza l'API Microsoft Graph per comunicare attraverso un canale Microsoft Teams.

Come funziona

root@kitploit:~
Agent <---> Microsoft Teams Channel <---> C2 Server <---> Mythic
  1. L'agente si autentica a Microsoft Entra ID tramite credenziali client OAuth2
  2. Pubblica il suo messaggio Mythic (codificato in base64, cifrato con AES) su un canale Teams
  3. Il server C2 esegue il polling del canale tramite l'API Graph e inoltra i nuovi messaggi a Mythic
  4. La risposta di Mythic viene pubblicata nuovamente sul canale
  5. L'agente esegue il polling del canale e recupera la risposta

La comunicazione appare come una normale attività del canale Teams.

Questo profilo supporta:

  • Kill Dates
  • Intervalli di sleep con jitter
  • Cifratura AES256
  • Configurazione proxy
  • Pulizia opzionale dei messaggi (elimina i messaggi dopo l'elaborazione)
  • Fallback webhook per l'invio

Installazione

Dal tuo server Mythic:

root@kitploit:~
sudo ./mythic-cli install github https://github.com/Whispergate/msteams

Oppure da una cartella locale:

root@kitploit:~
sudo ./mythic-cli install folder /path/to/msteams

Configurazione di Entra ID

  1. Registrazione dell'app - Crea in Azure Portal > Microsoft Entra ID > Registrazioni app
  2. Segreto client - Genera in Certificati e segreti
  3. Autorizzazioni API - Concedi le autorizzazioni applicative e il consenso amministratore:
    • ChannelMessage.Read.All - Legge i messaggi del canale
    • ChannelMessage.Send - Invia messaggi al canale
  4. ID del team e del canale - Ottienili tramite Graph Explorer o il link del canale del client Teams

Se ChannelMessage.Send non è disponibile, usa Group.ReadWrite.All oppure configura un URL webhook.

Le istruzioni complete di configurazione sono nella pagina della documentazione di Mythic dopo l'installazione all'indirizzo https://<your-mythic-server>:7443/docs/c2-profiles/msteams.

Configurazione

Modifica tramite l'interfaccia di Mythic: C2 Profiles > msteams > View/Edit Config.

ParametroDescrizionePredefinito
tenant_idID tenant (directory) di Entra ID
client_idID client della registrazione dell'app
client_secretSegreto client della registrazione dell'app
team_idID del team Teams
channel_idID del canale Teams
webhook_urlURL webhook opzionale per l'invio
graph_baseURL base dell'API Graphhttps://graph.microsoft.com/v1.0
login_baseURL base dell'endpoint di loginhttps://login.microsoftonline.com
poll_intervalSecondi tra i polling10
clear_messagesElimina i messaggi dopo l'elaborazionefalse
debugAbilita il logging dettagliatofalse

Agenti compatibili

  • Starburst - Supporto completo tramite trasporto MS Teams basato su WinHTTP

Qualsiasi agente Mythic che implementa i parametri del profilo C2 msteams può utilizzare questo profilo. L'agente deve:

  1. Autenticarsi all'API Graph utilizzando le credenziali configurate
  2. Pubblicare i messaggi Mythic codificati in base64 sul canale Teams configurato
  3. Eseguire il polling del canale per le risposte dal server C2

Test senza Azure

Un'infrastruttura di test mock è inclusa in test/ per il test locale senza alcun account Azure o M365. Questo ti permette di testare l'intera pipeline C2 — inclusi gli impianti compilati — contro una fake Graph API locale.

Configurazione del server mock

  1. Copia test/mock_server.py sul tuo host Mythic e avvialo:

    root@kitploit:~
    python3 mock_server.py
    

    Questo avvia una fake Graph API sulla porta 8443.

  2. Configura il profilo C2 msteams in Mythic con valori mock:

    root@kitploit:~
    {
      "tenant_id": "fake-tenant-id",
      "client_id": "fake-client-id",
      "client_secret": "fake-client-secret",
      "team_id": "fake-team-id",
      "channel_id": "fake-channel-id",
      "graph_base": "http://<mythic-host-ip>:8443/v1.0",
      "login_base": "http://<mythic-host-ip>:8443",
      "poll_interval": 3,
      "clear_messages": true,
      "debug": true
    }
    
  3. Avvia il profilo msteams nell'interfaccia di Mythic.

Test con un impianto compilato (Starburst)

Per testare un agente compilato reale contro il mock, il binario dell'agente deve essere compilato con l'IP e la porta del server mock hardcoded invece degli endpoint reali dell'API Graph. Nel codice dell'agente Starburst (agent_code/src/transport/msteams.cc):

root@kitploit:~
// Change these for mock testing:
#define GRAPH_API_HOST  "<mythic-host-ip>"
#define LOGIN_HOST      "<mythic-host-ip>"
#define API_PORT        8443

// And change WINHTTP_FLAG_SECURE to 0 in WinHttpOpenRequest
// since the mock server uses plain HTTP:
        WINHTTP_DEFAULT_ACCEPT_TYPES,
        0

Poi reinstalla Starburst, compila un payload con il profilo msteams (usando gli stessi ID fake tenant/client/team/channel) ed eseguilo su una VM Windows che può raggiungere l'host Mythic.

Ricorda di ripristinare queste modifiche prima di compilare payload di produzione:

root@kitploit:~
#define GRAPH_API_HOST  "graph.microsoft.com"
#define LOGIN_HOST      "login.microsoftonline.com"
#define API_PORT        443

        WINHTTP_DEFAULT_ACCEPT_TYPES,
        WINHTTP_FLAG_SECURE

Test con l'agente fake (senza compilazione)

Per un rapido test della pipeline senza compilare un agente:

root@kitploit:~
GRAPH_URL=http://<mythic-host-ip>:8443 python test/fake_agent.py

Vedi test/README.md per maggiori dettagli.

Considerazioni OPSEC

  • Usa un canale privato dedicato con un numero minimo di membri
  • Abilita clear_messages per pulire dopo l'elaborazione
  • Mantieni poll_interval ragionevole (10-30s) per evitare il rate limiting
  • Tutti i messaggi sono cifrati con AES256 a livello di payload Mythic
  • I messaggi di Teams NON sono cifrati end-to-end (visibili agli amministratori del tenant e a Microsoft)
  • Il limite di richieste dell'API Graph è di circa 30 richieste al secondo per app per tenant

Struttura dei file

root@kitploit:~
msteams/
  config.json                          # Mythic container config
  C2_Profiles/msteams/
    Dockerfile                         # Container image
    main.py                            # Mythic service entrypoint
    requirements.txt                   # Python dependencies
    rabbitmq_config.json               # RabbitMQ settings
    msteams/
      c2_functions/msteams.py          # C2Profile class + parameters
      c2_code/
        server.py                      # Main polling loop
        graph_client.py                # MS Graph API client
        mythic_client.py               # Mythic API forwarder
        config.py                      # Config singleton
        config.json                    # Default config values
  documentation-c2/msteams/_index.md   # Mythic docs page
  test/
    mock_server.py                     # Mock Graph API server
    fake_agent.py                      # Simulated agent for testing
    test_c2_server.py                  # Standalone C2 server test harness
    test_config.json                   # Test config with fake values
Scarica lo strumento