
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.
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.
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.


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!
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.
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 ;)
