
Initial Access und Post-Exploitation-Tool für Entra ID und M365 mit browserbasierter GUI
________ _________
/ / by RedByte1337 __ / /
/ _____/___________ ______ | |__ / _____/_____ ______
/ \ __\_ __ \__ \ \____ \| | \ \_____ \\____ \ | |
\ \_\ \ | \/ __ \| |_> | \ \/ \ |_> \___ |
\______ /__| |____ | __/|___| /_______ / ___/ ____|
\/ \/|__| \/ \/|__| \/
Im Folgenden wird der empfohlene Installationsprozess mit pipx beschrieben, um Abhängigkeitskonflikte zu vermeiden.
GraphSpy ist so konzipiert, dass es auf jedem Betriebssystem funktioniert, wurde jedoch hauptsächlich unter Linux und Windows getestet.
Weitere Installationsoptionen und ausführliche Anweisungen finden Sie auf der Installationsseite im Wiki.
# Install pipx (skip this if you already have it)
apt install pipx
pipx ensurepath
# Install the latest version of GraphSpy from pypi
pipx install graphspy
Nach der Installation kann die Anwendung von jedem Speicherort im System aus mit dem Befehl graphspy gestartet werden.
Wird GraphSpy ohne Befehlszeilenargumente ausgeführt, startet GraphSpy und ist standardmäßig unter http://127.0.0.1:5000 verfügbar.
graphspy
Öffnen Sie dann einfach http://127.0.0.1:5000 in Ihrem bevorzugten Browser, um loszulegen!
Verwenden Sie die Argumente -i und -p, um die Schnittstelle und den zu überwachenden Port zu ändern.
# Run GraphSpy on http://192.168.0.10
graphspy -i 192.168.0.10 -p 80
# Run GraphSpy on port 8080 on all interfaces
graphspy -i 0.0.0.0 -p 8080
Detaillierte Anweisungen und weitere Befehlszeilenargumente finden Sie auf der Ausführungsseite im Wiki.
Die vollständigen Nutzungsdetails finden Sie im GitHub-Wiki.
Einen schnellen Überblick über die Funktionen finden Sie im offiziellen Release-Blogbeitrag.
Wenn Sie zu GraphSpy beitragen oder interne Komponenten ändern möchten, beginnen Sie hier:
Speichern Sie Ihre Access- und Refresh-Tokens für mehrere Benutzer und Bereiche an einem Ort.


Wechseln Sie einfach zwischen ihnen oder fordern Sie von jeder Seite neue Access-Tokens an.

Erstellen und abfragen Sie mühelos mehrere Gerätecodes gleichzeitig. Wenn ein Benutzer den Gerätecode zur Authentifizierung verwendet hat, speichert GraphSpy das Access- und Refresh-Token automatisch in seiner Datenbank.

Konfigurieren Sie automatische Aktionen, die unmittelbar nach einer erfolgreichen Gerätecode-Authentifizierung ausgeführt werden sollen.

Zeigen Sie MFA-Methoden an, ändern und erstellen Sie sie, die mit dem Konto des Benutzers verknüpft sind.

Die folgenden MFA-Methoden können von GraphSpy aus hinzugefügt werden, um Persistenz einzurichten:

Fordern Sie Primary Refresh Tokens direkt aus GraphSpy an, importieren Sie sie oder verwenden Sie sie.
Diese PRTs sind wesentlich leistungsfähiger als reguläre Refresh-Tokens, da sie nicht an eine bestimmte Anwendung gebunden sind, sondern stattdessen verwendet werden können, um Access-Tokens für JEDE Anwendung/jeden Bereich als Benutzer zu erhalten (sowohl FOCI als auch Nicht-FOCI).

Darüber hinaus können diese PRT-Tokens verwendet werden, um PRT-Cookies zu generieren, die direkt in einen Browser importiert werden können, um vollen interaktiven Zugriff auf jede Webanwendung zu bieten, die in Entra ID SSO integriert ist.

Registrieren Sie Windows Hello for Business (WHfB)-Schlüssel in GraphSpy für eine Kombination aus Benutzer und Gerät, oder importieren Sie sie aus einem anderen Tool oder von einem kompromittierten Gerät.
Diese WinHello-Schlüssel können verwendet werden, um neue Primary Refresh Tokens für den Benutzer zu generieren, sogar nach Passwortzurücksetzungen, was sie zu einer sehr mächtigen Kontopersistenz macht!

Durchsuchen Sie Dateien und Ordner im OneDrive des Benutzers oder in einer beliebigen zugänglichen SharePoint-Website über eine intuitive Datei-Explorer-Oberfläche.
Natürlich können Dateien auch direkt heruntergeladen oder neue Dateien hochgeladen werden.

Zusätzlich können Sie die zuletzt verwendeten Dateien des Benutzers oder die mit dem Benutzer geteilten Dateien auflisten.

Öffnen Sie die Outlook-Webmail des Benutzers mit einem einzigen Klick, indem Sie einfach ein Outlook-Access-Token (FOCI) verwenden!


Oder verwenden Sie das Outlook-Graph-Modul, um E-Mails nur mit einem Access-Token für die MS-Graph-API aufzulisten, zu lesen, zu durchsuchen, zu löschen, zu beantworten oder zu senden!

Erstellen Sie vollständig als HTML formatierte E-Mails direkt in GraphSpy und fügen Sie Bilder und Anhänge hinzu.

Lesen und senden Sie Nachrichten mit dem Microsoft Teams-Modul und einem FOCI-Access-Token der Skype-API (https://api.spaces.skype.com/).

Durchsuchen Sie mit der Microsoft-Suche-API alle Microsoft 365-Anwendungen nach Schlüsselwörtern.
Verwenden Sie dies beispielsweise, um nach Dateien oder E-Mails zu suchen, die Schlüsselwörter wie „password", „secret", ... enthalten.

Führen Sie mit in GraphSpy gespeicherten Access-Tokens benutzerdefinierte API-Anfragen an beliebige Endpunkte aus.

Benutzerdefinierte Anfragevorlagen mit Variablen können in der Datenbank gespeichert werden, um die einfache Wiederverwendung häufiger benutzerdefinierter API-Anfragen zu ermöglichen.

Listen Sie alle Entra-ID-Benutzer und deren Eigenschaften mit der Microsoft Graph-API auf.

Zeigen Sie weitere Details zu einem Benutzer an, wie z. B. dessen Gruppenmitgliedschaften, Rollenzuweisungen, Geräte, App-Rollen und API-Berechtigungen.

GraphSpy unterstützt mehrere Datenbanken. Dies ist nützlich, wenn Sie gleichzeitig an mehreren Assessments arbeiten, um Ihre Tokens und Gerätecodes organisiert zu halten.

Nutzen Sie den Dunkelmodus standardmäßig oder wechseln Sie in den Hellmodus.
Weitere Informationen finden Sie auf der Seite Release Notes im GitHub-Wiki
Möchten Sie oder Ihre Organisation hier als Hauptsponsor dieses Projekts aufgeführt werden oder sogar in GraphSpy selbst erwähnt werden? Oder mögen Sie GraphSpy einfach und möchten meine Arbeit unterstützen?
Schauen Sie sich bitte meine Sponsorenseite an.
Wenn Sie nicht die Möglichkeit haben zu sponsern, aber dennoch Ihre Dankbarkeit zeigen möchten, können Sie stattdessen gerne einen Stern vergeben. ⭐
Die Hauptmotivation für die Entwicklung von GraphSpy war das Fehlen einer einfach zu bedienenden Möglichkeit, Post-Compromise-Aktivitäten gegen Office365-Anwendungen (wie Outlook, Microsoft Teams, OneDrive, SharePoint, ...) nur mit einem Access-Token durchzuführen.
Obwohl mehrere Befehlszeilentools existierten, die einige grundlegende Funktionen boten, kam keines an das intuitive interaktive Erlebnis heran, das die ursprünglichen Anwendungen bieten (wie die Datei-Explorer-ähnliche Oberfläche von OneDrive und SharePoint).
Allerdings wurde zuvor viel Forschung von unzähligen anderen Personen betrieben (insbesondere im Bereich Device-Code-Phishing, was überhaupt erst zur ursprünglichen Anforderung für ein solches Tool führte).