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
azureOutlookC2 — Azure Outlook Command & Control (C2) - Steuern Sie ein kompromittiertes Windows-Gerät remote von Ihrem Outlook-Postfach aus. Bedrohungs-Emulationstool für die nordkoreanische APT InkySquid / ScarCruft / APT37. TTP: Verwenden Sie die Microsoft Graph API für C2-Operationen. | Kitploit
Tools/GitHubGitHub/boku7/azureoutlookc2
Cloud-SicherheitCommand and ControlRed TeamingPayload-EntwicklungAPI-Sicherheit
GitHubboku7/azureoutlookc2

azureOutlookC2

Azure Outlook Command & Control (C2) - Steuern Sie ein kompromittiertes Windows-Gerät remote von Ihrem Outlook-Postfach aus. Bedrohungs-Emulationstool für die nordkoreanische APT InkySquid / ScarCruft / APT37. TTP: Verwenden Sie die Microsoft Graph API für C2-Operationen.

Repository anzeigen
504100vor 3 JahrenVon Kitploit geprüft

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen

Azure Outlook C2

Azure Outlook Command & Control, das die Microsoft Graph API für C2-Kommunikation und Datenernte nutzt.

Steuern Sie ein kompromittiertes Windows-Gerät remote von Ihrem Outlook-Postfach aus.

Ersteller: Bobby Cooke (@0xBoku) & Paul Ungur (@C5pider)

CTI-Bedrohungsupdate (13.02.22)

Elastic Security Labs hat aktive Angriffe in freier Wildbahn entdeckt, die SIESTAGRAPH verwenden. SIESTAGRAPH interagiert mit der Microsoft GraphAPI für Befehls- und Kontrollzwecke unter Verwendung von Outlook und OneDrive. Sehen Sie sich unten ihre großartigen Malware-Analyse-Blogs zur Azure Outlook C2-Kommunikation an.

  • https://www.elastic.co/security-labs/siestagraph-new-implant-uncovered-in-asean-member-foreign-ministry
  • https://www.elastic.co/security-labs/update-to-the-REF2924-intrusion-set-and-related-campaigns

Update (27.09.21)

  • Azure Outlook C2 verfügt jetzt über eine plattformübergreifende grafische Benutzeroberfläche (GUI)!
    • Großer Dank an Paul Ungur (@C5pider), der mir beigebracht hat, wie man mit QT eine C2-GUI erstellt!

Steuern eines Computers über Outlook-Postfach mit der C2-GUI

Steuern eines Computers über Outlook-Postfach

  • Das Update unterstützt die ursprüngliche Outlook-Postfachsteuerung.

Wenn Sie Informationen über ähnliche Projekte, CTI-Informationen über diese TTP (Taktik, Technik und Verfahren), die von APT-/Ransomware-Gruppen in freier Wildbahn eingesetzt wird, Verteidigungstipps, Empfehlungen für Red Teamer, die an Azure C2-Bedrohungsemulation interessiert sind, oder andere Informationen haben, die eine gute Ergänzung zu diesem Blog/Readme wären, kontaktieren Sie mich bitte oder reichen Sie einen Pull Request ein. Vielen Dank!

Über Azure Outlook C2

Dieses Projekt besteht aus einem Implantat, das Beacon-Signale an ein vom Angreifer kontrolliertes Azure Outlook-Postfach sendet, das als Command & Control (C2) fungiert und das kompromittierte Gerät fernsteuert. Ein Azure-Refresh-Token für das C2-Postfach des Angreifers wird während der Kompilierung fest im Implantat kodiert. Bei Ausführung auf einem Windows-Gerät greift das Implantat über die Microsoft Graph API auf den Entwurfspostfach des Angreifers zu. Das Implantat liest Befehlsanweisungen aus dem Entwurfspostfach des Angreifers, führt die Anweisungen lokal auf dem kompromittierten Windows-Gerät aus und gibt die Befehlsausgabe an den Angreifer zurück, indem es neue Entwurfsnachrichten erstellt. Das Implantat wiederholt dieses Verhalten der Fernsteuerung aus dem Postfach des Angreifers, bis der Hostprozess des Implantats beendet wird.

Warum ich dies gebaut habe

Ich habe vor etwa einem halben Jahr mit Red Teaming im SpiderLabs Red Team bei Trustwave begonnen. Während eines Engagements hatte ich die Ehre, mit dem legendären Stephan Borosh (rvrsh3ll|@424f424f) zusammenzuarbeiten. Steve und Matt Kingstone brachten mir alles über Azure Domain Fronting bei, und ich war überwältigt, dass Command & Control-Traffic über HTTPS mit legitimen Domains wie ajax.microsoft.com exfiltriert werden konnte. Es verwendet sogar Microsofts TLS-Zertifikate! Leider begann ich mit Red Teaming genau zu der Zeit, als Domain Fronting auf Azure starb. Obwohl Domain Fronting auf Azure tot war, gab es dennoch viele großartige Red-Team-Techniken, die mit Azure möglich waren.

Steve führte mich in Azure Device Code Phishing ein. Während dieser Zeit tauchte ich tief in Azure und die Microsoft Graph API für Red Teaming ein. Wir erstellten das Tool TokenTactics, das auf der großartigen Arbeit von Dr. Nestori Syynimaa (@DrAzureAD) basiert, und schrieben den Blog The Art of the Device Code Phish, falls Sie an unserer Methodik interessiert sind.

Während der Erstellung von TokenTactics und der Experimente mit der MS Graph API entdeckte ich, dass es möglich ist, die Microsoft Graph API als C2-Kanal zu verwenden. Es gibt viele verschiedene Möglichkeiten, die MS Graph API als C2-Kanal zu nutzen, und ich bin nicht die einzige Person (auch nicht die erste), die dies entdeckt hat. VX-Underground, erstellt von @smelly__vx – dem Schöpfer/Herausgeber der HellsGate-Technik – veröffentlichte letzten Monat Informationen, dass die nordkoreanische Advanced Persistent Threat (APT)-Gruppe "InkySquid" (auch bekannt als ScarCruft und APT37) die Microsoft Graph API für C2-Operationen nutzt. Nachdem ich einen Teaser dieses Projekts auf Twitter und LinkedIn veröffentlicht hatte, kommentierten mehrere DFIR-Profis, dass diese Technik der Nutzung der Microsoft Graph API für C2-Operationen von Ransomware-Gruppen seit Monaten aktiv in freier Wildbahn eingesetzt wird.

Während des Red-Team-Engagements versuchte ich, Cobalt Strike mit der MS Graph API als C2-Kanal zum Laufen zu bringen. Leider scheiterte ich, aber das bleibt ein zukünftiges Ziel. Das Problem, mit dem ich bei der Integration mit Cobalt Strike konfrontiert bin, ist, dass die MS Graph API zwei Token für die Kommunikation verwendet. Das erste Token ist das Refresh-Token, das bis zu 90 Tage gültig sein kann. Das zweite Token, das Access-Token, ist ein temporäres Token, das etwa eine Stunde gültig ist. Die direkte Kommunikation mit der MS Graph API erfolgt durch Authentifizierung mit dem Access-Token. Sobald ein Access-Token abläuft, kann das Refresh-Token verwendet werden, um neue Access-Token zu erhalten. Da ich noch neu im Red Teaming und in der Cobalt-Strike-Entwicklung bin, konnte ich nicht herausfinden, wie ich das Malleable-C2-Profil von Cobalt Strike nutzen kann, um ständig neue Access-Token zu erhalten und diese wechselnden Access-Token im Authorization-Header der HTTPS-Beacon-Anfragen zu senden. Seit der Veröffentlichung des Teasers auf Twitter haben mir Joe Vest, Alfie Champion und andere Rockstars der Community eine epochale Richtung gegeben, wie ich das mit Cobalt Strike umsetzen kann! Hoffentlich gibt es in Zukunft ein Cobalt-Strike-Follow-up zu diesem Projekt ;)

Ablauf der Implantat-Ausführung

  1. Erhalten eines Access-Tokens für die MS Graph API unter Verwendung des fest kodierten Refresh-Tokens des Angreifers.
  • Dies geschieht über HTTPS-TCP-Kommunikation mit dem Host graph.microsoft.com.
  • Dieser Traffic wird mit dem TLS-Zertifikat des legitimen Microsoft-Webservers verschlüsselt.
  • Das Implantat verwendet die WinInet Dynamic-Link Library für HTTPS-Kommunikation.
  • Das fest kodierte Refresh-Token des Angreifers sollte 90 Tage gültig sein.
    • Wenn das Implantat kompromittiert wird, kann der Angreifer das fest kodierte Refresh-Token widerrufen, um den Zugriff durch Malware-Reverse-Engineers einzuschränken.
  1. Nachdem das Implantat ein Access-Token für die MS Graph API des Angreifers erhalten hat, tritt es in eine Endlosschleife ein.
  • Wenn keine Internetverbindung besteht oder die Verbindung während der Schleife unterbrochen wird, schläft das Implantat 3 Minuten und versucht es erneut.
  • Das Implantat verfolgt die Zeit und holt sich nach 15 Minuten ein neues Access-Token, um die Kommunikation fortzusetzen.
  1. Die erste Aufgabe in der Schleife besteht darin, das MS-Graph-API-Access-Token zu verwenden, um auf das Entwurfspostfach des Angreifers zuzugreifen und die aktuellste Nachricht auf auszuführende Befehle auf dem kompromittierten Windows-Gerät zu lesen.
  • Das Entwurfspostfach wurde gewählt, damit keine E-Mails über SMTP gesendet werden.
  1. Sobald der Befehl empfangen wird, wird er geparst, um zu bestimmen, welcher Metabefehl ausgeführt wird. Derzeit gibt es 3 Metabefehle: cmd, sleep, exit
  • cmd: Nimmt die folgende Zeichenfolge nach dem Metabefehl und führt sie durch Erstellen eines untergeordneten Prozesses aus.
  • sleep: Nimmt das folgende Wort nach dem Metabefehl und ändert die Schlafzeit des Implantats auf den angegebenen Wert (in Millisekunden).
  • exit: Beendet/tötet den Hostprozess.
  1. Wenn der Metabefehl cmd ist, erstellt das Implantat einen untergeordneten Prozess zur Ausführung des Befehls; der untergeordnete Prozess schreibt seine Standardausgabe in eine Pipe; der untergeordnete Prozess wird nach Befehlsausführung beendet, und der Host-Implantat-Prozess liest die Ausgabe des untergeordneten Prozesses über die Pipe.
  2. Nachdem das Implantat die Ausgabe des ausgeführten Befehls erhalten hat, verwendet es die MS Graph API, um eine neue Entwurfs-E-Mail zu erstellen, die die Befehlsausgabe enthält.
  3. Das Implantat erstellt dann eine zweite Entwurfs-E-Mail mit einem leeren Textkörper.
  • Dies ermöglicht die Protokollierung der Befehlsausgabe im Entwurfspostfach des Angreifers.
  • Dies stellt dem Angreifer eine frische Entwurfsnachricht zur Verfügung, um den nächsten Befehl einzugeben, den das Implantat ausführen soll.
  1. Nachdem der Befehl ausgeführt und die Ausgabe an den Angreifer zurückgegeben wurde, schläft das Implantat für eine vom Angreifer festgelegte Zeit und wiederholt dann diese Schleife.

Anleitung

  1. Richten Sie die Red-Team-Azure-Infrastruktur ein, die als Command & Control verwendet wird, indem Sie meinem Blog-Beitrag The Art of the Device Code Phish folgen, um Folgendes einzurichten:
  • Azure-Konto-Abonnement
    • Erstellen Sie ein Azure-Konto und helfen Sie dem Microsoft-DFIR-Team, indem Sie Ihr Konto Ihrer Red-Team-Organisation zuordnen. Dies spart Zeit bei der Untersuchung, ob Sie eine echte Bedrohung darstellen, Bedrohungsemulationsdienste durchführen oder offensive Sicherheitsforschung betreiben.
    • Weitere Informationen finden Sie bei Nick Carr – Lead, Cyber Crime Intelligence / Investigations @Microsoft.
  • Azure Active Directory-Mandant
  • Office 365 für Azure Active Directory
  • Erstellen Sie einen Benutzer für das Outlook Command & Control-Postfach
  • Installieren Sie das TokenTactics PowerShell-Modul
  1. Verwenden Sie TokenTactics, um die Mandanten-ID der gerade erstellten Azure AD zu erhalten:
root@kitploit:~
PS C:\Users\boku\Desktop\TokenTactics-main> Import-Module .\TokenTactics.psd1
PS C:\Users\boku\Desktop\TokenTactics-main> Get-TenantID -domain theharvester.world
1d5551a0-f4f2-4101-9c3b-394247ec7e08
  1. Fügen Sie Ihre Mandanten-ID der Variable char tenantId[] in der Datei azureOutlookC2.c hinzu.
  2. Erhalten Sie ein Azure-Refresh-Token, indem Sie mit TokenTactics einen Device-Code-Phish-Versuch mit dem C2-Postfach-Benutzer durchführen:
root@kitploit:~
# Import the TokenTactics module into the PowerShell session
PS C:\Users\boku> cd .\TokenTactics
PS C:\Users\boku\TokenTactics> Import-Module .\TokenTactics.psd1
# Start a Device Code phish request to get a 'user_code'
PS C:\Users\boku\> Get-AzureToken -Client Graph
user_code        : ERDVDCNHH
  1. Rufen Sie microsoft.com/devicelogin auf, geben Sie den user_code von TokenTactics ein und melden Sie sich mit dem C2-Postfach-Benutzer an.
  2. Kopieren Sie in der PowerShell-Sitzung mit TokenTactics das Refresh-Token aus dem erfolgreichen Device-Code-Phish an sich selbst.
  • Wenn Sie weitere Informationen zur Funktionsweise von TokenTactics benötigen, lesen Sie bitte The Art of the Device Code Phish.
  1. Fügen Sie Ihr Refresh-Token der Variable char refreshToken[] in der Datei azureOutlookC2.c hinzu.
root@kitploit:~
void main() {
    // Variables
    char refreshToken[] = "0.AXwAoFFVHfL0AUGcOzlCR-x-CNYOWdOzUgJBrv-q0ikqsBx8ACA.AgABAAAAAA...
//                           ^Put your refresh token here and compile
  1. Kompilieren Sie azureOutlookC2.c.
root@kitploit:~
# Compile with x64 MinGW:
bobby.cooke$ cat compile.sh
x86_64-w64-mingw32-gcc -m64 -mwindows -Os azureOutlookC2.c -o azureOutlookC2.exe -lwininet
bobby.cooke$ bash compile.sh
  1. Führen Sie die PE-Datei azureOutlookC2.exe auf einem Windows-Gerät aus.
  2. Öffnen Sie als Angreifer vom Angreifer-Computer aus einen Browser, melden Sie sich bei outlook.office.com an und steuern Sie das Windows-Gerät, auf dem das Implantat läuft, von Ihrem Postfach aus.

Anfängliche Projektziele

  • Erstellen eines funktionierenden Proof of Concept, das die Microsoft Graph API für einen C2-Kanal nutzt und einen Computer von meiner E-Mail aus steuert.

Was dieses Projekt ist

  • Dieses Projekt ist ein Proof of Concept, das demonstriert, wie ein Angreifer die Microsoft Graph API für C2-Operationen nutzen kann.
  • Dieses Projekt richtet sich an andere offensive Sicherheitsforscher, die daraus lernen können.
  • Ich persönlich habe keine großartigen Methoden zur Verteidigung oder Erkennung dieses C2-Kanals gefunden. Meine Hoffnung ist, dass durch die Bereitstellung an größere Verteidigergeister als mich einige fantastische Verteidigungstechniken entstehen.

Was dieses Projekt nicht ist

  • Dieses Projekt selbst ist kein voll funktionsfähiges C2, das für OPSEC-sichere Einsätze bereit ist.

Erkennungs- und Präventionsideen von Verteidigern (Zum Hinzufügen bitte einen Pull Request einreichen)

Mehmet Ergene (@Cyb3rMonk) Erkennungstipps

  1. "Eine Baseline für Anwendungen zu erstellen, die eine Verbindung zur Graph API herstellen, und auf Anomalien zu prüfen, könnte eine Idee sein. Allerdings könnte dies leicht umgangen werden."
  2. "Wie immer, Erkennung von Beaconing-Traffic. (Ich werde eine Verbesserung vornehmen, um Graph API und ähnliches abzudecken)"

F-Secure - Geteilt von Alfie Champion

  • "Microsoft ist ein Beispiel für eine solche Organisation, die proaktiv Schritte unternommen hat, um Organisationen vor Missbrauch ihrer Dienste zu schützen. Es hat kürzlich die Fähigkeit entwickelt, böswillige Nutzung von Azure-Anwendungen zu erkennen und zu blockieren. Insbesondere hat F-Secure beobachtet, dass jede im C3-Framework verwendete Anwendung (wie OneDrive365 und Outlook365 (O365)) nun als bösartig erkannt und anschließend von Microsoft deaktiviert wird (innerhalb von etwa drei Stunden)."

Dank / Referenzen

  • Sektor7 Malware Development Courses
  • @passthehashbrwn - Dynamic payload generation with mingw
  • Raphael Mudge - Red Team Ops with Cobalt Strike (2 of 9): Infrastructure
  • Raphael Mudge - Red Team Ops with Cobalt Strike (3 of 9): C2
  • Microsoft Graph REST API v1.0
  • Microsoft WinInet
  • StackOverFlow - Create Process and Capture stdout
  • Microsoft - Creating a Child Process with Redirected Input and Output

Ähnliche Projekte, Forschung und Blogs

F-Secure C3 - Benutzerdefiniertes Command & Control

  • "C3 wurde als Reaktion auf diese Anforderung entwickelt. Es ist ein Tool, das Red Teams ermöglicht, schnell esoterische Command & Control-Kanäle (C2) zu entwickeln und zu nutzen."
  • RIP OFFICE365 COMMAND AND CONTROL – WE HARDLY KNEW YOU
  • F-Secure C3 - Custom Command & Control GitHub Repo

Callidus von Chirag Savla

  • "Es (Callidus) wurde mit .NET Core Framework in C# entwickelt. Es ermöglicht Betreibern, O365-Dienste für die Einrichtung eines Command & Control-Kommunikationskanals zu nutzen. Es verwendet Microsoft Graph-APIs zur Kommunikation mit O365-Diensten."
  • 3xpl01tc0d3r/Callidus GitHub Repo
  • Introduction to Callidus - Blog Post

Azure Application Proxy C2 - Adam Chester (@_xpn_)

  • Azure Application Proxy C2 - Research Blog
Tool herunterladen