
Schreibgeschütztes PowerShell-Modul zur Erkennung von UNC2452 und anderen Artefakten von Bedrohungsakteuren in Azure AD, zur Überprüfung von Verbunddomänen, Dienstprinzipalen, Anwendungen und Postfachberechtigungen auf Indikatoren einer Kompromittierung.
Dieses Repository enthält ein PowerShell-Modul zur Erkennung von Artefakten, die Indikatoren für UNC2452 und andere Bedrohungsakteure sein können. Einige Indikatoren sind "hochzuverlässige" Kompromittierungsindikatoren, während andere sogenannte "Dual-Use"-Artefakte sind. Dual-Use-Artefakte können mit Aktivitäten von Bedrohungsakteuren zusammenhängen, aber auch mit legitimer Funktionalität. Für diese ist eine Analyse und Verifizierung erforderlich. Eine detaillierte Beschreibung der von UNC2452 verwendeten Techniken finden Sie in unserem Blog.
Dieses Tool ist schreibgeschützt. Es nimmt keine Änderungen an der Microsoft 365-Umgebung vor.
Zusammenfassend wird dieses Modul:
Es wird nicht:
Mit Rückmeldungen aus der Community kann das Tool bei der Erkennung von IOCs gründlicher werden. Bitte eröffnen Sie ein Issue, reichen Sie einen PR ein oder kontaktieren Sie die Autoren, wenn Sie Probleme, Ideen oder Feedback haben.
Dieses Modul verwendet MS Online PowerShell, um nach federierten Domänen in Azure AD zu suchen und diese zu prüfen. Alle federierten Domänen werden in die Datei federated domains.csv ausgegeben.
any.sts als Aussteller-URI konfiguriert sind. Dies deutet auf die Verwendung des Azure AD Backdoor-Tools hin. Führen Sie eine forensische Untersuchung durch, um festzustellen, wie die Änderungen vorgenommen wurden, und um weitere Beweise für eine Kompromittierung zu identifizieren.!! Evidence of AAD backdoor found. Consider performing a detailed forensic investigation Domain name: foobar.com Domain federation name: Federation issuer URI: http://any.sts/16B45E3B
:bangbang: Das Skript hat eine Domain identifiziert, die mit einer Aussteller-URI verbunden wurde, die ein Indikator für einen [Azure AD Backdoor](https://github.com/Gerenios/AADInternals/blob/master/FederatedIdentityTools.ps1) ist. Die Hintertür setzt die Aussteller-URI standardmäßig auf hxxp://any.sts. Es wird empfohlen, eine forensische Untersuchung durchzuführen, um festzustellen, wie die Änderungen vorgenommen wurden, und andere Anzeichen einer Kompromittierung zu identifizieren.```
!! A token signing certificate has a validity period of more than 365 days.
This may be evidence of a signing certificate not generated by AD FS.
Domain name: foobar.com
Federation issuer uri: http://sts.foobar.com
Signing cert not valid before: 1/1/2020 00:00:00
Signing cert not valid after: 12/31/2025 23:59:59
⚠️ Das Skript hat eine federierte Domäne mit einem Token-Signaturzertifikat identifiziert, das länger als die standardmäßigen 365 Tage gültig ist. Fragen Sie Ihre Administratoren, ob das Token-Signaturzertifikat manuell verwaltet wird und ob die angegebene Gültigkeitsdauer erwartet wird. Erwägen Sie eine forensische Untersuchung, falls dies nicht erwartet wird.
Dieses Modul verwendet Azure AD PowerShell, um Service Principals in Azure AD zu suchen und zu prüfen.
!! Identified first-party (Microsoft published) Service Principals with added credentials. Only in rare cases should a first-party Service Principal have an added credential. Verify that the added credential has a legitimate use case and consider further investigation if not
Object ID : xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx App ID : xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx Display Name : Office 365 Exchange Online Key Credentials :
CustomKeyIdentifier : EndDate : 12/9/2017 2:10:29 AM KeyId : xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx StartDate : 12/9/2015 1:40:30 AM Type : AsymmetricX509Cert Usage : Verify Value :
:warning: Das Skript hat einen First-Party (Microsoft) Service Principal mit hinzugefügten Anmeldeinformationen identifiziert. First-Party Service Principals sollten *keine* hinzugefügten Anmeldeinformationen haben, außer in seltenen Fällen. Umgebungen, die sich im Hybrid-Modus befinden oder zuvor befanden, können Anmeldeinformationen für Exchange Online, Skype for Business und AAD Password Protection Proxy Service Principals enthalten. Dies könnte auch ein Artefakt von UNC2452-Aktivitäten in Ihrer Umgebung sein. Konsultieren Sie Ihre Administratoren und durchsuchen Sie die Überwachungsprotokolle, um die Legitimität der Anmeldedaten zu überprüfen. Sie können auch die Registerkarte "Service Principal Anmeldungen" im Azure AD Anmeldungen-Blatt verwenden, um nach Authentifizierungen in Ihrem Mandanten mit diesem Service Principal zu suchen.```
!! Identified Service Principals with high-risk API permissions and added credentials.
Verify that the added credential has a legitimate use case and consider further investigation if not
Object ID : xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
App ID : xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
Display Name : TestingApp
Key Credentials :
CustomKeyIdentifier :
EndDate : 1/7/2025 12:00:00 AM
KeyId : xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
StartDate : 1/7/2021 12:00:00 AM
Type : Symmetric
Usage : Verify
Value :
Password Credentials :
Risky Permissions : Domain.ReadWrite.All
⚠️ Das Skript hat einen Dienstprinzipal mit riskanten API-Berechtigungen identifiziert und Anmeldeinformationen hinzugefügt. Dies kann erwartet werden, da einige Anwendungen von Drittanbietern oder benutzerdefinierte Anwendungen hinzugefügte Anmeldeinformationen benötigen, um zu funktionieren. Dies kann auch ein Hinweis auf UNC2452-Aktivitäten in Ihrer Umgebung sein. Konsultieren Sie Ihre Administratoren und durchsuchen Sie die Überwachungsprotokolle, um die Legitimität der Anmeldeinformationen zu überprüfen. Sie können auch die Registerkarte „Dienstprinzipal-Anmeldungen“ im Blatt „Azure AD-Anmeldungen“ verwenden, um nach Authentifizierungen in Ihrem Mandanten mit diesem Dienstprinzipal zu suchen.
Dieses Modul verwendet Azure AD PowerShell, um Anwendungen in Azure AD zu suchen und zu prüfen.
!! High-privileged Application with credentials found. Validate that the application needs these permissions. Validate that the credentials added to the application are associated with a legitimate use case.
ObjectID: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx AppID: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx DisplayName: Acme Test App KeyCredentials: PasswordCredentials:
CustomKeyIdentifier : EndDate : 12/22/2021 4:01:52 PM KeyId : xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx StartDate : 12/22/2020 4:01:52 PM Value :
CustomKeyIdentifier : EndDate : 12/21/2021 6:32:54 PM KeyId : xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx StartDate : 12/21/2020 6:33:16 PM Value :
Risky Permissions: Mail.Read (Read mail in all mailboxes) Directory.Read.All (Read all data in the organization directory)
:warning: Das Skript hat eine Anwendung mit risikoreichen API-Berechtigungen und hinzugefügten Anmeldeinformationen identifiziert. Dies ist möglicherweise zu erwarten, da einige Drittanbieter- oder maßgeschneiderte Anwendungen zusätzliche Anmeldeinformationen benötigen, um zu funktionieren. Dies kann auch ein Artefakt von UNC2452-Aktivitäten in Ihrer Umgebung sein. Konsultieren Sie Ihre Administratoren und durchsuchen Sie die Überwachungsprotokolle, um die Legitimität der Anmeldeinformationen zu überprüfen.
### Cloud Solution Provider Program (Invoke-MandiantGetCSPInformation)
Dieses Modul prüft, ob der Mandant von einem CSP oder Partner verwaltet wird und ob die delegierte Verwaltung aktiviert ist. Die delegierte Verwaltung erlaubt dem CSP, mit denselben Berechtigungen wie ein Globaler Administrator auf einen Kundenmandanten zuzugreifen. Obwohl das CSP-Programm strenge Sicherheitskontrollen auf dem Partner-Mandanten erzwingt, könnte ein Angreifer, der den CSP kompromittiert, auf Kundenumgebungen zugreifen. Unternehmen sollten überprüfen, ob ihr Partner delegierte Administratorrechte benötigt, und diese ansonsten entfernen. Wenn der Partner die delegierte Admin-Funktion beibehalten muss, sollten Sie bedingte Zugriffsrichtlinien in Betracht ziehen, um deren Zugriff einzuschränken.
Unternehmen können Partnerbeziehungen überprüfen und verwalten, indem sie zum [Admin Center](https://admin.microsoft.com) navigieren und im linken Menü auf `Einstellungen` -> `Partnerbeziehungen` klicken.
### Mailbox Folder Permissions (Get-MandiantMailboxFolderPermissions)
Dieses Modul überprüft alle Postfächer im Mandanten auf das Vorhandensein verdächtiger Ordnerberechtigungen. Insbesondere werden die Ordner "Top of Information Store" und "Posteingang" in jedem Postfach untersucht und die Berechtigungen für die Benutzer "Standard" und "Anonym" überprüft. Jeder andere Wert als "Keine" führt dazu, dass das Postfach zur Analyse markiert wird. Im Allgemeinen sollten die Benutzer "Standard" und "Anonym" keine Berechtigungen für Benutzerposteingänge haben, da dies jedem Benutzer das Lesen ihrer Inhalte ermöglichen würde. Einige Unternehmen können freigegebene Postfächer mit dieser Berechtigung vorfinden, dies ist jedoch nicht empfehlenswert.
### Application Impersonation (Get-MandiantApplicationImpersonationHolders)
Dieses Modul gibt die Liste der Benutzer und Gruppen aus, die die Rolle "ApplicationImpersonation" besitzen. Jeder Benutzer oder jedes Mitglied einer Gruppe in der Ausgabe dieses Befehls kann die Identitätswechsel-Funktion nutzen, um "als" ein anderer Benutzer aufzutreten und auf das Postfach jedes anderen Benutzers im Mandanten zuzugreifen. Unternehmen sollten die Ausgabe dieses Befehls prüfen, um sicherzustellen, dass nur erwartete Benutzer und Gruppen enthalten sind, und den Bereich nach Möglichkeit weiter einschränken.
### Purview Audit (ehemals Advanced Audity) (Invoke-MandiantCheckAuditing)
Dieses Modul listet alle lizenzierten Benutzer im Mandanten auf, die für "Purview Audit Mail Items Accessed" lizenziert sind. Es erstellt einen CSV-Bericht, der dokumentiert, ob die Funktion für ein berechtigtes Postfach aktiviert wurde oder nicht. Unternehmen sollten nach Postfächern filtern, die für "Mail Items Accessed" berechtigt sind, aber die Funktion deaktiviert haben, und überprüfen, ob dies beabsichtigt ist.
### Unified Audit Log (Get-MandiantUnc2452AuditLogs)
Dieses Modul ist ein Hilfsskript zum Durchsuchen des Unified Audit Logs. Die Suche im Unified Audit Log weist viele technische Besonderheiten auf, die leicht übersehen werden können. Dieses Modul kann den Suchprozess vereinfachen, indem es Best Practices für den Umgang mit diesen Besonderheiten implementiert und häufige Fehler behandelt.
Standardmäßig sucht das Modul nach Protokolleinträgen, die UNC2452-Techniken aufzeichnen können. Die Protokolleinträge können auch legitime Administratoraktivitäten erfassen und müssen überprüft werden.
* **Anwendung aktualisieren** - Zeichnet Aktionen zum Aktualisieren von App-Registrierungen auf.
* **Domänenauthentifizierung festlegen** - Zeichnet Änderungen an den Authentifizierungseinstellungen für eine Domäne auf, einschließlich der Erstellung von Verbundbereichsobjekten. Diese Ereignisse sollten in einer Umgebung selten auftreten und können auf einen Angreifer hinweisen, der ein AAD-Backdoor konfiguriert.
* **Verbundseinstellungen festlegen** - Zeichnet Änderungen am Verbundbereichsobjekt einer Domäne auf. Diese Ereignisse sollten in einer Umgebung selten auftreten und können auf einen Angreifer hinweisen, der sich auf einen Golden-SAML-Angriff vorbereitet.
* **Anwendungszertifikate und -geheimnisse aktualisieren** - Zeichnet das Hinzufügen eines Geheimnisses oder Zertifikats zu einer App-Registrierung auf.
* **PowerShell-Postfachanmeldungen** - Zeichnet Postfachanmeldevorgänge auf, bei denen die Clientanwendung PowerShell war.
* **Dienstprinzipal aktualisieren** - Zeichnet Aktualisierungen eines vorhandenen Dienstprinzipals auf.
* **Dienstprinzipal-Anmeldeinformationen hinzufügen** - Zeichnet das Hinzufügen eines Geheimnisses oder Zertifikats zu einem Dienstprinzipal auf.
* **App-Rollenzuweisung hinzufügen** - Zeichnet das Hinzufügen einer App-Rolle (Anwendungsberechtigung) auf.
* **App-Rollenzuweisung für Benutzer** - Zeichnet die Zuweisung einer App-Rolle zu einem Benutzer auf.
* **PowerShell-Authentifizierung** - Zeichnet die Authentifizierung eines Benutzers bei Azure AD mit einem PowerShell-Client auf.
* **Neue Verwaltungsrollenzuweisungen** - Zeichnet die Erstellung neuer Verwaltungsrollenzuweisungen auf. Dies kann nützlich sein, um neue ApplicationImpersonation-Gewährungen zu identifizieren.
## Verwendung
### Erforderliche Module
Das PowerShell-Modell erfordert die Installation von drei Microsoft 365 PowerShell-Modulen.
* AzureAD
* MSOnline
* ExchangeOnlineManagement
* Microsoft.Graph
So installieren Sie die Module:
1. Öffnen Sie ein PowerShell-Fenster als lokaler Administrator (Rechtsklick, dann "Als Administrator ausführen" auswählen)
2. Führen Sie den Befehl `Install-Module <MODULNAME HIER>` aus und folgen Sie den Eingabeaufforderungen
### Erforderliche Benutzerberechtigungen
Das PowerShell-Modul muss mit einem Microsoft 365-Konto ausgeführt werden, das bestimmte Berechtigungen besitzt.
* Rolle `Globaler Administrator` oder `Globaler Leser` im Azure AD-Portal
* `Nur-Ansicht-Überwachungsprotokolle` in der Exchange-Verwaltungskonsole
* Bereiche `User.Read.All` und `Directory.Read.All`. Inhaber der Rolle `Globaler Leser` sollten diese Bereiche automatisch nutzen können.
So gewähren Sie einem Konto `Nur-Ansicht-Überwachungsprotokolle` in der Exchange-Verwaltungskonsole:
1. Navigieren Sie zu https://outlook.office365.com/ecp und melden Sie sich als globaler Administrator oder Exchange-Administrator an (die genaue URL kann abweichen, wenn Sie sich in einer alternativen Cloud befinden)
2. Klicken Sie im Dashboard auf `Administratorrollen` oder erweitern Sie die Registerkarte `Rollen` auf der linken Seite und klicken Sie auf `Administratorrollen`, falls Sie sich in der neuen Benutzeroberfläche befinden
3. Erstellen Sie eine neue Administratorrolle, indem Sie auf das `+`-Zeichen klicken oder auf `Neue Rollengruppe hinzufügen` klicken
4. Geben Sie Ihrer Rolle einen Namen und einen Standard-Schreibbereich
5. Fügen Sie die Berechtigung `Nur-Ansicht-Überwachungsprotokolle` zur Rolle hinzu
6. Fügen Sie den Benutzer zur Rolle hinzu
**Hinweis** Es kann bis zu einer Stunde dauern, bis diese Rolle wirksam wird
### Ausführen des Tools
1. Laden Sie dieses Tool als ZIP herunter und entpacken Sie es, oder klonen Sie das Repository auf Ihr System
2. Öffnen Sie ein PowerShell-Fenster
3. Wechseln Sie in das Verzeichnis dieses Moduls `cd C:\path\to\the\module`
4. Importieren Sie dieses Modul `Import-Module .\MandiantAzureADInvestigator.psd1` Sie sollten diese Ausgabe erhalten```
Mandiant Azure AD Investigator
Focusing on UNC2452 Investigations
PS C:\Users\admin\Desktop\mandiant>
Connect-MandiantAzureEnvironment -UserPrincipalName <your username here> ausführen. Sie sollten eine Anmeldeaufforderung und eine Ausgabe im PowerShell-Fenster erhalten, die darauf hinweist, dass die Verbindungen hergestellt wurden. Hinweis: Falls Probleme auftreten, müssen Sie möglicherweise Ihre Ausführungsrichtlinie ändern, indem Sie Set-ExecutionPolicy -ExecutionPolicy RemoteSigned ausführen. Dies kann Administratorrechte erfordern.```The module allows access to all existing remote PowerShell (V1) cmdlets in addition to the 9 new, faster, and more reliable cmdlets.
|--------------------------------------------------------------------------| | Old Cmdlets | New/Reliable/Faster Cmdlets | |--------------------------------------------------------------------------| | Get-CASMailbox | Get-EXOCASMailbox | | Get-Mailbox | Get-EXOMailbox | | Get-MailboxFolderPermission | Get-EXOMailboxFolderPermission | | Get-MailboxFolderStatistics | Get-EXOMailboxFolderStatistics | | Get-MailboxPermission | Get-EXOMailboxPermission | | Get-MailboxStatistics | Get-EXOMailboxStatistics | | Get-MobileDeviceStatistics | Get-EXOMobileDeviceStatistics | | Get-Recipient | Get-EXORecipient | | Get-RecipientPermission | Get-EXORecipientPermission | |--------------------------------------------------------------------------|
To get additional information, run: Get-Help Connect-ExchangeOnline or check https://aka.ms/exops-docs
Account Environment TenantId TenantDomain
[email protected] AzureCloud xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx test.onm...
5. Führen Sie alle Prüfungen aus `Invoke-MandiantAllChecks -OutputPath <path\to\output\files>`. Sie können auch einzelne Prüfungen mit dem entsprechenden Cmdlet ausführen.
6. Überprüfen Sie die Ausgabe auf dem Bildschirm und die geschriebenen CSV-Dateien.
## Weiterführende Literatur
Weitere Informationen von Mandiant zu UNC2452 finden Sie unter:
* [Hochgradig ausweichender Angreifer nutzt SolarWinds-Lieferkette, um mehrere globale Opfer mit SUNBURST-Backdoor zu kompromittieren](https://www.mandiant.com/resources/evasive-attacker-leverages-solarwinds-supply-chain-compromises-with-sunburst-backdoor)
* [Maßnahmen zur Behebung und Härtung für Microsoft 365 zur Verteidigung gegen UNC2452](https://www.mandiant.com/resources/remediation-and-hardening-strategies-for-microsoft-365-to-defend-against-unc2452)
Die Reaktion auf UNC2452 war eine bedeutende gemeinsame Anstrengung der gesamten Sicherheitsbranche, und diese Blogs zitieren stark zusätzliche Beiträge, die für Benutzer dieses Tools von Nutzen sein werden. Wir empfehlen, das verlinkte Material aus diesen Beiträgen zu lesen, um die Aktivitäten in Ihrer Umgebung bestmöglich zu verstehen. Wie immer steht das Mandiant-Team zur Verfügung, um Folgefragen zu beantworten oder bei einer Untersuchung weiterzuhelfen [indem Sie uns hier kontaktieren.](https://www.mandiant.com/report-incident)