Skip to content
KitploitKITPLOIT
ToolsBlog
Einreichen
ToolsBlog
Einreichen

Hacking-, PenTest- und Cybersicherheits-Tools für Ihr Sicherheitsarsenal!

Kitploit ist ein Verzeichnis von Hacking-, Cybersicherheits- und Pentesting-Tools. Entdecken Sie die neuesten Projekt-Updates, um Schwachstellen zu finden, Systeme zu analysieren, Tests zu automatisieren und Ihre Sicherheit zu stärken.

··Feeds·Kontakt·Datenschutz·© 2026 Kitploit

Tool-Verzeichnis

Kategorien

Alle Kategorien anzeigen
Loading categories
msteams — Mythic-C2-Profil, das Agentenverkehr über Microsoft Teams-Kanäle mithilfe der Microsoft Graph API tunnelt, mit AES256-Verschlüsselung, Jitter, Kill-Dates und Proxy-Unterstützung. | Kitploit
Tools/GitHubGitHub/whispergate/msteams
DefensivwerkzeugePenetrationstest-FrameworksVerschlüsselungs-/EntschlüsselungstoolsPost-ExploitationCommand and ControlDienstprogramme & FrameworksRed TeamingPayload-Entwicklung
GitHubwhispergate/msteams

msteams

Mythic-C2-Profil, das Agentenverkehr über Microsoft Teams-Kanäle mithilfe der Microsoft Graph API tunnelt, mit AES256-Verschlüsselung, Jitter, Kill-Dates und Proxy-Unterstützung.

2817vor 2 TagenNoch nicht geprüft

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Repository anzeigen
Teilen

msteams

Ein Mythic C2-Profil, das die Microsoft Graph API verwendet, um über einen Microsoft Teams-Kanal zu kommunizieren.

Funktionsweise

root@kitploit:~
Agent <---> Microsoft Teams Channel <---> C2 Server <---> Mythic
  1. Der Agent authentifiziert sich bei Microsoft Entra ID über OAuth2-Client-Anmeldeinformationen
  2. Sendet seine Mythic-Nachricht (base64-kodiert, AES-verschlüsselt) an einen Teams-Kanal
  3. Der C2-Server fragt den Kanal über die Graph API ab und leitet neue Nachrichten an Mythic weiter
  4. Die Antwort von Mythic wird zurück in den Kanal gepostet
  5. Der Agent fragt den Kanal ab und nimmt die Antwort entgegen

Die Kommunikation erscheint als normale Teams-Kanalaktivität.

Dieses Profil unterstützt:

  • Kill Dates
  • Sleep-Intervalle mit Jitter
  • AES256-Verschlüsselung
  • Proxy-Konfiguration
  • Optionale Nachrichtenbereinigung (Nachrichten nach der Verarbeitung löschen)
  • Webhook-Fallback zum Senden

Installation

Von deinem Mythic-Server aus:

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

Oder aus einem lokalen Ordner:

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

Entra ID-Einrichtung

  1. App-Registrierung – Erstellen im Azure-Portal > Microsoft Entra ID > App-Registrierungen
  2. Client Secret – Generieren unter Zertifikate & Geheimnisse
  3. API-Berechtigungen – Anwendungsberechtigungen und Administratorzustimmung erteilen:
    • ChannelMessage.Read.All – Kanalnachrichten lesen
    • ChannelMessage.Send – Kanalnachrichten senden
  4. Team- & Kanal-IDs – Über den Graph Explorer oder den Kanal-Link des Teams-Clients abrufen

Wenn ChannelMessage.Send nicht verfügbar ist, verwende Group.ReadWrite.All oder konfiguriere eine Webhook-URL.

Vollständige Einrichtungsanweisungen findest du nach der Installation auf der Mythic-Dokumentationsseite unter https://<your-mythic-server>:7443/docs/c2-profiles/msteams.

Konfiguration

Bearbeiten über die Mythic-UI: C2 Profiles > msteams > View/Edit Config.

ParameterBeschreibungStandard
tenant_idEntra ID-Mandanten-(Verzeichnis-)ID
client_idClient-ID der App-Registrierung
client_secretClient Secret der App-Registrierung
team_idTeams-Team-ID
channel_idTeams-Kanal-ID
webhook_urlOptionale Webhook-URL zum Senden
graph_baseBasis-URL der Graph APIhttps://graph.microsoft.com/v1.0
login_baseBasis-URL des Login-Endpunktshttps://login.microsoftonline.com
poll_intervalSekunden zwischen Abfragen10
clear_messagesNachrichten nach der Verarbeitung löschenfalse
debugAusführliches Logging aktivierenfalse

Kompatible Agents

  • Starburst – Volle Unterstützung über WinHTTP-basierten MS Teams-Transport

Jeder Mythic-Agent, der die Parameter des msteams-C2-Profils implementiert, kann dieses Profil verwenden. Der Agent muss:

  1. Sich bei der Graph API mit den konfigurierten Anmeldeinformationen authentifizieren
  2. Base64-kodierte Mythic-Nachrichten an den konfigurierten Teams-Kanal senden
  3. Den Kanal auf Antworten vom C2-Server abfragen

Testen ohne Azure

Eine Mock-Testinfrastruktur ist in test/ enthalten, um lokal ohne Azure- oder M365-Konto zu testen. Damit kannst du die vollständige C2-Pipeline – einschließlich kompilierter Implants – gegen eine lokale Fake-Graph-API testen.

Mock-Server-Einrichtung

  1. Kopiere test/mock_server.py auf deinen Mythic-Host und starte es:

    root@kitploit:~
    python3 mock_server.py
    

    Dies startet eine Fake-Graph-API auf Port 8443.

  2. Konfiguriere das msteams-C2-Profil in Mythic mit Mock-Werten:

    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. Starte das msteams-Profil in der Mythic-UI.

Testen mit einem kompilierten Implant (Starburst)

Um einen echten kompilierten Agent gegen den Mock zu testen, muss das Agent-Binary mit der IP und dem Port des Mock-Servers fest verdrahtet gebaut werden, anstelle der echten Graph-API-Endpunkte. Im Starburst-Agent-Code (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

Installiere dann Starburst neu, baue ein Payload mit dem msteams-Profil (unter Verwendung derselben Fake-Tenant-/Client-/Team-/Kanal-IDs) und führe es auf einer Windows-VM aus, die den Mythic-Host erreichen kann.

Denke daran, diese Änderungen vor dem Bauen von Produktions-Payloads rückgängig zu machen:

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

Testen mit dem Fake-Agent (ohne Kompilierung)

Für einen schnellen Pipeline-Test ohne Kompilierung eines Agents:

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

Weitere Details findest du in test/README.md.

OPSEC-Überlegungen

  • Verwende einen dedizierten privaten Kanal mit minimaler Mitgliedschaft
  • Aktiviere clear_messages, um nach der Verarbeitung aufzuräumen
  • Halte poll_interval angemessen (10-30s), um Rate-Limiting zu vermeiden
  • Alle Nachrichten sind auf Mythic-Payload-Ebene AES256-verschlüsselt
  • Teams-Nachrichten sind NICHT Ende-zu-Ende-verschlüsselt (für Mandantenadministratoren und Microsoft sichtbar)
  • Das Graph-API-Rate-Limit beträgt etwa 30 Anfragen pro Sekunde pro App pro Mandant

Dateistruktur

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
Tool herunterladen