
Automatisiert Illicit-Consent-Grant-Angriffe gegen Azure/O365-Mandanten, um Refresh-Tokens zu stehlen, E-Mails/OneDrive-Daten zu exfiltrieren und bösartige Outlook-Regeln über eine CLI und ein Web-Management-Portal zu erstellen.
365-Stealer ist ein Python3-basiertes Tool zur Automatisierung von Angriffen durch illegale Einwilligungserteilung (Illicit Consent Grant Attack). Wenn ein Zielbenutzer unwissentlich einer Angreiferanwendung die Berechtigung erteilt, erhält der Angreifer Zugriff auf das Refresh-Token des Opfers. Dieses Refresh-Token kann dann verwendet werden, um andere Token zu generieren, sodass der Angreifer auf vertrauliche Daten wie E-Mails, Dateien auf OneDrive und Notizen zugreifen kann – ohne weitere Eingaben des Opfers. Die manuelle Ausnutzung dieses Angriffs ist zeitaufwendig, aber 365-Stealer vereinfacht und automatisiert den Prozess.
Ein Illicit Consent Grant Attack (Angriff durch illegale Einwilligungserteilung) tritt auf, wenn ein Angreifer eine bösartige Anwendung in Azure registriert und den Zugriff auf vertrauliche Daten wie Kontakte, E-Mails oder Dokumente anfordert. Der Angreifer täuscht einen Benutzer, indem er die Anwendung als legitim präsentiert und ihn dazu bringt, seine Einwilligung zu geben. Sobald das Opfer auf „Akzeptieren“ klickt, gewährt es dem Angreifer unwissentlich Zugriff, sodass dieser im Namen des Opfers handeln kann, ohne dessen Organisationsanmeldeinformationen zu benötigen.
Um es deutlicher zu erklären: Sobald der Benutzer die Berechtigung erteilt, sendet Entra ID ein Token an den Server des Angreifers. Dieses Token gibt dem Angreifer die Möglichkeit, E-Mails zu lesen, E-Mails zu senden, auf Dateien auf OneDrive zuzugreifen und andere bösartige Aktivitäten mit den Anmeldeinformationen des Opfers durchzuführen. Im Gegensatz zu Phishing-Angriffen, die auf den Diebstahl von Passwörtern abzielen, umgehen Illicit Consent Grant Attacks die Authentifizierung vollständig, indem sie das Berechtigungssystem von Cloud-Anwendungen missbrauchen.
--run-app im Terminal oder über das 365-Stealer-Verwaltungsportal.--no-stealing können nur die Token gestohlen werden, ohne weitere Aktionen auszuführen, sodass sie später ausgenutzt werden können.Um eine Anwendung automatisch in Azure mit dem bereitgestellten Python-Skript zu registrieren, gehen Sie wie folgt vor:
Stellen Sie sicher, dass Python3 auf Ihrem Rechner installiert ist.
Klonen Sie das 365-Stealer-Repository:
git clone https://github.com/AlteredSecurity/365-Stealer.git
cd 365-Stealer
Installieren Sie die erforderlichen Python-Module:
pip install -r requirements.txt
Führen Sie das Skript zur automatischen Azure-App-Registrierung aus:
python 365-Stealer.py --app-registration
Wenn Sie eine Azure-Anwendung lieber manuell registrieren möchten, gehen Sie wie folgt vor:
https://portal.azure.com und melden Sie sich an.App registrations.New registration, um den Registrierungsprozess für eine neue Anwendung zu starten.Accounts in any organizational directory (Any Microsoft Entra ID tenant - Multitenant).https://<DOMAIN/IP>:<PORT>/login/authorized sein, wobei Ihre Domain oder IP dem Ort entspricht, an dem Sie die 365-Stealer-Anwendung hosten.Register, um die Anwendung zu erstellen.
Certificates & secrets.New client secret, geben Sie eine Beschreibung für das Geheimnis ein und klicken Sie dann auf Hinzufügen.
API permissions.Add a permission, um mit der Auswahl der erforderlichen Berechtigungen zu beginnen.Microsoft Graph aus.Delegated permissions, um Berechtigungen zuzuweisen, die im Namen des angemeldeten Benutzers handeln.
Klonen Sie das 365-Stealer-Repository:
git clone https://github.com/AlteredSecurity/365-Stealer.git
Installieren Sie die erforderlichen Anwendungen:
Extrahieren und speichern Sie die Dateien:
C:\xampp\htdocs\ ab, damit Sie die PHP-Anwendung hosten und Python ausführen können.Installieren Sie die Python-Abhängigkeiten: Führen Sie den folgenden Befehl aus, um die erforderlichen Python-Bibliotheken zu installieren.
cd C:\xampp\htdocs\365-Stealer
pip install -r requirements.txt
Befolgen Sie die zusätzlichen Einrichtungshinweise: Nach der Installation der erforderlichen Anwendungen und Abhängigkeiten befolgen Sie die Anweisungen in der Datei yoursVictims/Readme.md. Diese führen Sie durch die Einrichtung der notwendigen Datenbanken und Tabellen, damit 365-Stealer ordnungsgemäß funktioniert.
Passen Sie die Skriptpfade an:
365-Stealer.py, die Datenbank und python3 in der Datei index.php unter C:/xampp/htdocs/yourvictims/.
Umgang mit Leerzeichen in Dateipfaden:
"C:/Program Files/Python/python.exe"
Standardmäßige Whitelist:
Hinzufügen entfernter IPs:
Deaktivieren der IP-Whitelist:
$enableIpWhiteList = false; in der Konfigurationsdatei.
Zugriffsbeschränkungen: Beschränken Sie aus Sicherheitsgründen den Zugriff auf das 365-Stealer-Verwaltungsportal stets auf die von Ihnen kontrollierte Infrastruktur.
Öffentliche Exposition vermeiden: Setzen Sie das 365-Stealer-Verwaltungsportal niemals direkt dem Internet aus. Stellen Sie sicher, dass es nur über sichere private Netzwerke zugänglich ist, um eine mögliche Kompromittierung zu vermeiden.
usage: 365-Stealer.py [-h] [--app-registration] [--set-config] [--get-config] [--code CODE] [--token TOKEN] [--client-id CLIENT_ID]
[--client-secret CLIENT_SECRET] [--refresh-token REFRESH_TOKEN] [--token-path TOKEN_PATH]
[--refresh-all] [--refresh-user REFRESH_USER] [--redirect-url REDIRECT_URL]
[--database-path DATABASE_PATH] [--no-stealing] [--upload UPLOAD] [--create-rules CREATE_RULES]
[--send-mail SEND_MAIL] [--delete-all-data] [--delete-user-data DELETE_USER_DATA] [--run-app]
[--no-ssl] [--port PORT] [--disable-logs]
[--injection]
[--custom-steal {listusers,checklicence,outlook,onedrive,onenote} [{listusers,checklicence,outlook,onedrive,onenote} ...]]
[--delay DELAY]
optional arguments:
-h, --help show this help message and exit
--app-registration Azure App Registration
--set-config Set 365-Stealer Configuration
--get-config Get 365-Stealer Configuration
--code CODE Provide Authorization Code
--token TOKEN Provide Access Token
--client-id CLIENT_ID
Provide Application Client ID
--client-secret CLIENT_SECRET
Provide Application Client Secret
--refresh-token REFRESH_TOKEN
Provide Refresh Token
--token-path TOKEN_PATH
Provide Access Token file path
--refresh-all Steal all user's data again.
--refresh-user REFRESH_USER
Steal particular user's data again.(Provide EmailID)
--redirect-url REDIRECT_URL
Redirect Url
--database-path DATABASE_PATH
Provide Database Path
--no-stealing Steal only Tokens
--upload UPLOAD Add files in victim's OneDrive(Provide File Path)
--create-rules CREATE_RULES
Provide json file containing outlook rules
--send-mail SEND_MAIL
Provide json file to send email
--delete-all-data Delete all data from the database!
--delete-user-data DELETE_USER_DATA
Delete specific user data from the database!
--run-app Host the Phising App
--no-ssl Use http(port 80)
--port PORT Provide custom port to Host the Phishing App
--disable-logs Disable all http access logs
--custom-steal {listusers,checklicence,outlook,onedrive,onenote} [{listusers,checklicence,outlook,onedrive,onenote} ...]
Steal specific data
--injection Enable Macro Injection
--delay DELAY Delay the request by specifying time in seconds while stealing
Blogbeitrag zur neuen Version von 365-Stealer, die eine vollständige Neufassung der alten ist. Dieser Beitrag untersucht, wie der Illicit Consent Grant (ICG)-Angriff in Microsoft 365 funktioniert.
Der alte Blogbeitrag - Introduction to 365-Stealer
Bitte erstellen Sie ein Issue, wenn Sie einen Fehler entdecken oder einen Funktionswunsch haben.
Wenn Sie zu einem Projekt beitragen und es verbessern möchten, ist Ihre Hilfe sehr willkommen.
--refresh-token--client-id--client-secret--app-registration automatisiert die Azure-App-Registrierung und erleichtert die Einrichtung der Angriffsinfrastruktur ohne manuellen Eingriff.--custom-steal können Angreifer gezielt Daten aus bestimmten Quellen wie OneDrive, Outlook usw. stehlen.database.db-Datei gespeichert, die mit dem Team geteilt werden kann, um vorhandene gestohlene Tokens und Daten zu nutzen.