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
DFIR-O365RC — PowerShell-Modul für die Protokollsammlung von Office 365 und Azure | Kitploit
Tools/GitHubGitHub/anssi-fr/dfir-o365rc
ForensikDigitale ForensikCloud-SicherheitIncident ResponseLog-Analyse
GitHubanssi-fr/dfir-o365rc

DFIR-O365RC

PowerShell-Modul für die Protokollsammlung von Office 365 und Azure

Repository anzeigen
28234vor 11 MonatenVon 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

DFIR-O365RC

Docker-Image in Dockerhub veröffentlichen Modul in PowerShell Gallery veröffentlichen


Inhaltsverzeichnis:

  1. Modulbeschreibung

  2. Installation und Voraussetzungen

    1. Verwendung von Docker
    2. Manuelle Installation
  3. Verwaltung der DFIR-O365RC-Anwendung

    1. Erstellen der Anwendung
    2. Aktualisieren der Anwendung
    3. Entfernen der Anwendung
  4. Berechtigungen und Lizenzanforderungen

  5. Im Modul enthaltene Funktionen

  6. Generierte Dateien

DFIR-O365RC wurde auf der SSTIC 2021 (Symposium sur la sécurité des technologies de l'information et des communications) vorgestellt. Folien und eine Aufzeichnung des Vortrags (auf Französisch) sind hier verfügbar.

⚠️ Am 31. März 2024 hat Microsoft die Authentifizierungsmethode eingestellt, die wir für DFIR-O365RC verwendet haben. Dies führte zur Veröffentlichung von Version 2.0.0 im August 2024 mit bahnbrechenden Änderungen in Bezug auf die Authentifizierung und einer umfassenden Überarbeitung des Codes. ⚠️

Modulbeschreibung

Das PowerShell-Modul DFIR-O365RC ist eine Sammlung von Funktionen, die es einem Forensik-Analysten ermöglicht, für Microsoft-365-Kompromittierungen relevante Protokolle zu sammeln und Entra-ID-Untersuchungen durchzuführen.

Die Protokolle werden im JSON-Format generiert und aus zwei Hauptdatenquellen abgerufen:

  • Microsoft 365 Unified Audit Log ;
  • Microsoft Entra Anmelde-Protokolle und Audit-Protokolle.

Diese beiden Datenquellen können über verschiedene Endpunkte abgefragt werden:

* Die Office 365 Management API ist für die Echtzeitanalyse von Daten mit einem SIEM gedacht. DFIR-O365RC ist ein Forensik-Tool, es zielt nicht auf die Echtzeitüberwachung einer Microsoft-365-Umgebung ab.

DFIR-O365RC ruft Daten ab aus:

  • Microsoft Entra-Protokolle mittels Microsoft Graph PowerShell, da die Leistung gut ist und es die Microsoft Graph REST API kapselt ;
  • Standardmäßig aus dem Unified Audit Log mittels Exchange Online PowerShell: trotz schlechter Leistung ist dies derzeit die einzig nutzbare Option ;
  • Optional aus dem Unified Audit Log mittels Purview. Die Aufbewahrungsdauer beträgt 180 Tage, es hat eine gute Leistung, ist aber noch in der Beta-Phase und Fehler im Backend machen es derzeit unbrauchbar.

Wenn Sie böswillige Aktivitäten in Microsoft 365 untersuchen, ruft Search-O365 (aus Exchange Online PowerShell) auch das Mailbox-Auditprotokoll ab, obwohl das Cmdlet Search-MailboxAuditLog eingestellt wird.

Wenn Sie andere Azure-Ressourcen untersuchen, können Sie mit DFIR-O365RC:

  • das Azure Monitor Activity log mit dem Az.Monitor PowerShell-Modul abrufen, mit einer Aufbewahrungsdauer von 90 Tagen. Dieses Protokoll konzentriert sich auf Aktivitäten in Azure Resource Manager (bezogen auf ein Azure-Abonnement) ;
  • das Azure DevOps-Auditprotokoll mit der Azure DevOps Services REST API abrufen, mit einer Aufbewahrungsdauer von 90 Tagen. Dieses Protokoll konzentriert sich auf Aktivitäten in Azure DevOps (bezogen auf eine Azure DevOps-Organisation).

Installation und Voraussetzungen

Verwendung von Docker

Dies ist die empfohlene Methode zur Nutzung von DFIR-O365RC

Geben Sie einfach Folgendes ein:```bash sudo docker pull anssi/dfir-o365rc:latest sudo docker run --rm -v .:/mnt/host -it anssi/dfir-o365rc:latest

root@kitploit:~
DFIR-O365RC ist einsatzbereit:```bash
PowerShell 7.4.2
DFIR-O365RC: PowerShell module for Microsoft 365 and Entra ID log collection
https://github.com/ANSSI-FR/DFIR-O365RC
PS /mnt/host/output>

Wenn Sie Ihr Docker-Image manuell erstellen möchten, klonen Sie das Repository und verwenden Sie docker compose (oder das alte docker-compose), um das Image zu erstellen, den Container auszuführen und ein Volume zu mounten (im output/ Ordner):```bash sudo docker compose build dfir-o365rc sudo docker compose run dfir-o365rc

using legacy Compose V1

sudo docker-compose run dfir-o365rc

root@kitploit:~
### Verwenden von PowerShell

Sie können das Modul auf *PowerShell Desktop* und *PowerShell Core* installieren.

Bitte beachten Sie, dass das Cmdlet `Connect-ExchangeOnline` [Microsoft .NET Framework 4.7.2 oder höher erfordert](https://learn.microsoft.com/en-us/powershell/exchange/exchange-online-powershell-v2?view=exchange-ps#windows).

So installieren Sie das Modul aus der PowerShell Gallery :```powershell
Install-Module -Name DFIR-O365RC

Sie können das Modul auch manuell installieren, indem Sie das DFIR-O365RC-Repository klonen, die erforderlichen Abhängigkeiten installieren (überprüfen Sie DFIR-O365RC.psd1) und das DFIR-O365RC-Verzeichnis in einem der Modulpfade Ihrer PowerShell hinzufügen.

Verwalten der DFIR-O365RC-Anwendung

Erstellen der Anwendung

Nachdem das Modul importiert wurde, müssen Sie eine Entra-Anwendung erstellen, die den Protokollsammelprozess für Sie übernimmt.

Gehen Sie dazu wie folgt vor:

  1. Erstellen Sie ein selbstsigniertes Zertifikat und erhalten Sie den base64-codierten öffentlichen Teil:

    Unter Linux mit PowerShell Core oder dem Docker-Container: ```bash openssl req -new -x509 -newkey rsa:2048 -sha256 -days 365 -nodes -out exampleDFIRO365RC.crt -keyout exampleDFIRO365RC.key -batch openssl pkcs12 -inkey exampleDFIRO365RC.key -in exampleDFIRO365RC.crt -export -out exampleDFIRO365RC.pfx # Enter a password for the certificate openssl x509 -in exampleDFIRO365RC.crt -outform DER -out - | base64 | tr -d "\n"

    root@kitploit:~

Unter Windows mit PowerShell: ```powershell $certificate = New-SelfSignedCertificate -Subject "CN=exampleDFIRO365RC" -KeySpec KeyExchange -NotBefore (Get-Date) -NotAfter (Get-Date).AddDays(365) $certificatePassword = Read-Host -MaskInput "Please enter a password for the certificate" $certificateSecurePassword = ConvertTo-SecureString -String $certificatePassword -AsPlainText -Force Export-PfxCertificate -Cert $certificate -FilePath exampleDFIRO365RC.pfx -Password $certificateSecurePassword Write-Host ([System.Convert]::ToBase64String($certificate.GetRawCertData()))

root@kitploit:~
2) Verwenden Sie das `New-Application`-Cmdlet aus dem Modul DFIR-O365RC:   ```powershell
$certificateb64="<base64-encoded public part from step 1>"
New-Application -certificateb64 $certificateb64

Optional, wenn Sie in der Lage sein möchten, Protokolle in den Abonnements des Mandanten zu sammeln (nicht erforderlich, wenn Sie nicht Get-AzRMActivityLogs verwenden möchten): ```powershell New-Application -certificateb64 $certificateb64 -subscriptions

root@kitploit:~
Optional, wenn Sie in der Lage sein möchten, Protokolle in den Azure DevOps-Organisationen des Mandanten zu sammeln (dies kann lange dauern und ist nicht erforderlich, wenn Sie nicht vorhaben, `Get-AzDevOpsActivityLogs` zu verwenden):   ```powershell
New-Application -certificateb64 $certificateb64 -organizations

Um die Anwendung zu erstellen, müssen Sie sich mehrmals bei Azure anmelden, indem Sie ein hoch privilegiertes Konto verwenden.

Sobald die Anwendung erstellt ist, erhalten Sie eine Ausgabe ähnlich der folgenden: ```powershell Done creating the application with the required permissions Please use the following identifiers: WARNING: AppID: xxxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx WARNING: Tenant: example.onmicrosoft.com

root@kitploit:~
### Aktualisieren der Anwendung

Sobald die Anwendung erstellt wurde, können Sie mit dem Cmdlet `Update-Application` aus dem Modul weiterhin dessen Anmeldeinformationen und Berechtigungen aktualisieren:

- Sie können ein neues Zertifikat zur Anwendung hinzufügen:

`Update-Application -certificateb64 <base64-kodierter öffentlicher Teil>`

- Sie können neue Abonnements angeben, in denen Sie Protokolle sammeln möchten:

`Update-Application -subscriptions`

- Sie können neue Azure DevOps-Organisationen angeben, in denen Sie Protokolle sammeln möchten:

`Update-Application -organizations`

- Sie können die Berechtigungen der Anwendung aktualisieren, was besonders nützlich ist, wenn Sie eine alte Anwendung haben und die Berechtigungen seit der Erstellung aktualisiert wurden:

`Update-Application -permissions`

### Entfernen der Anwendung

Wenn Sie mit der Protokollsammelung fertig sind, können Sie die Anwendung mit dem Cmdlet `Remove-Application` aus dem Modul löschen.

Zum Entfernen der Anwendung müssen Sie sich mehrmals bei Azure anmelden, und zwar mit einem **hochprivilegierten** Konto.

Wenn die Anwendung Protokolle von Abonnements oder Azure DevOps-Organisationen sammeln konnte, müssen Sie die Schalter `-organizations` und/oder `-subscriptions` hinzufügen.

## Berechtigungen und Lizenzanforderungen

⚠️

Ab Version 2.0.0 läuft das Tool nun im Kontext eines Dienstprinzipals mit [App-only-Zugriff / Anwendungsberechtigungen](https://learn.microsoft.com/en-us/entra/identity-platform/permissions-consent-overview#app-only-access-access-without-a-user).

Um Version 2.0.0 und höher zu verwenden, müssen Sie [eine Anwendung erstellen](#creating-the-application).

Sobald die Anwendung erstellt wurde, wird das Skript mit den Anmeldeinformationen und Berechtigungen der Anwendung ausgeführt.

⚠️

Die Anwendung wird mit dem geringstmöglichen erforderlichen Berechtigungssatz erstellt:

- `Exchange.ManageAsApp` für die `Office 365 Exchange Online`-API (erforderlich, um Exchange Online PowerShell-Cmdlets ausführen zu können)
- `AuditLog.Read.All` für die `Microsoft Graph`-API (erforderlich für die Sammlung von Microsoft Entra-Protokollen)
- `AuditLogsQuery.Read.All` für die `Microsoft Graph`-API (erforderlich für die Sammlung des Unified Audit Logs mit Purview)
- `Application.Read.All` und `DelegatedPermissionGrant.Read.All` für die `Microsoft Graph`-API (erforderlich für die Anreicherung von Microsoft Entra-Protokollen zu Anwendungen und Dienstprinzipalen)
- `Device.Read.All` für die `Microsoft Graph`-API (erforderlich für die Anreicherung von Microsoft Entra-Protokollen zu Geräten)
- `User.Read.All` für die `Microsoft Graph`-API (erforderlich zum Abrufen von Informationen zu den Benutzern)
- `UserAuthenticationMethod.Read.All` für die `Microsoft Graph`-API (erforderlich zum Abrufen von Informationen zu den Authentifizierungsmethoden der Benutzer)
- `Organization.Read.All` für die `Microsoft Graph`-API (erforderlich zum Abrufen allgemeiner Informationen zum Mandanten)
- `View-only audit logs` in `Exchange Online` (erforderlich zur Verwendung des Cmdlets `Search-UnifiedAuditLog`)

Optional (bei Verwendung des Schalters `-subscriptions`):

- Für die ausgewählte Teilmenge der Abonnements: Rolle `Reader` auf `Microsoft.Insights/eventtypes/*` (erforderlich zum Abrufen des Azure Monitor-Aktivitätsprotokolls)

Optional (bei Verwendung des Schalters `-organizations`):

- Für die ausgewählte Teilmenge der Azure DevOps-Abonnements: `View audit log` (erforderlich zum Abrufen des Azure DevOps-Überwachungsprotokolls)

Um Microsoft Entra-Protokolle mit der Microsoft Graph-API abrufen zu können, benötigen Sie mindestens einen Benutzer mit einer [Microsoft Entra ID P1](https://www.microsoft.com/de-de/security/business/microsoft-entra-pricing)-Lizenz. Diese Lizenz kann für einen einzelnen Benutzer erworben werden oder in einigen Lizenzplänen wie dem *Microsoft 365 Business Premium*-Plan enthalten sein.

## Im Modul enthaltene Funktionen

Das Modul enthält 10 Funktionen:

| **Funktion**  | **Datenquelle**  | Aufbewahrungsdauer | **Leistung**  |  **Vollständigkeit** | **Details** |
|---|---|---|---|---|---|
| `Get-O365Full` | Unified Audit Log | 90 Tage / 180 Tage* |  Schlecht | Alle Unified Audit Logs | Standardmäßig wird das gesamte Unified Audit Log abgerufen. Dies sollte nur bei einem kleinen Mandanten oder für einen kurzen Zeitraum verwendet werden.<br />Sie können dieses Cmdlet auch verwenden, um Ereignisse für bestimmte [Datensatztypen](https://learn.microsoft.com/en-us/office/office-365-management-api/office-365-management-activity-api-schema#enum-auditlogrecordtype---type-edmint32) zu sammeln. |
| `Get-O365Light` | Unified Audit Log | 90 Tage / 180 Tage* |  Gut | Nur eine Teilmenge der Unified Audit Logs | Es wird nur eine Teilmenge der *Vorgänge* abgerufen, die als interessant erachtet werden. |
| `Get-O365Defender` | Unified Audit Log | 90 Tage / 180 Tage* |  Gut | Nur eine Teilmenge der Unified Audit Logs | Ruft Ereignisse im Zusammenhang mit Microsoft Defender für Microsoft 365 ab. Erfordert mindestens eine [Office 365 E5](https://www.microsoft.com/de-de/microsoft-365/enterprise/office-365-e5?activetab=pivot:overviewtab)-Lizenz oder einen Lizenzplan, der Microsoft Defender für Office 365 enthält. |
| `Get-AADLogs` | Microsoft Entra-Protokolle | 30 Tage |  Gut | Alle Microsoft Entra-Protokolle | Ruft Mandanteninformationen und alle Microsoft Entra-Protokolle ab: Anmelde- und Überwachungsprotokolle. |
| `Get-AADApps` | N/A | N/A |  Gut | Vollständig | Microsoft Entra ID-Dienstprinzipale und ihre Anwendungen, oauth2PermissionGrants und appRoleAssignments |
| `Get-AADDevices` | N/A | N/A |  Gut | Vollständig | Microsoft Entra ID-Geräte und deren Besitzer/Benutzer |
| `Get-AADUsers` | N/A | N/A |  Gut | Vollständig | Microsoft Entra ID-Benutzer und deren Authentifizierungsmethoden |
| `Search-O365` | Unified Audit Log / Postfach-Überwachungsprotokoll** | 90 Tage / 180 Tage* | Schlecht | Nur eine Teilmenge der Unified Audit Logs | Suche nach Aktivitäten im Zusammenhang mit bestimmten Benutzern, IP-Adressen oder Freitexten. |
| `Get-AzRMActivityLogs` | Azure Monitor-Aktivitätsprotokoll | 90 Tage |  Gut | Alle Azure Monitor-Aktivitätsprotokolle | Ruft alle Azure Monitor-Aktivitätsprotokolle für eine ausgewählte Teilmenge der Abonnements ab. |
| `Get-AzDevOpsActivityLogs` | Azure DevOps-Überwachungsprotokoll | 90 Tage |  Gut | Alle Azure DevOps-Überwachungsprotokolle | Ruft alle Azure DevOps-Überwachungsprotokolle für eine ausgewählte Teilmenge der Azure DevOps-Organisationen ab. |

\* Sie können mit Purview eine Aufbewahrungsdauer von 180 Tagen erreichen, gegenüber der standardmäßigen 90-tägigen Aufbewahrung mit Exchange Online.

** Bei der Suche nach Benutzern durchsucht das Cmdlet `Search-O365` auch das Postfach-Überwachungsprotokoll.

Jede Funktion verfügt über eine kommentarbasierte Hilfe, die Sie mit dem Cmdlet *Get-Help* aufrufen können.```powershell
# Display comment-based help
PS> Get-Help Get-O365Full
# Display comment-based help with examples
PS> Get-Help Get-O365Full -Examples

Jede Funktion nimmt als Parameter entgegen:

  • ein Startdatum (-startDate) ;
  • ein Enddatum (-endDate) ;
  • die Anwendungskennung der Anwendung (-appId), die beim Erstellen der Anwendung abgerufen wird ;
  • den Mandantennamen (-tenant) ;
  • den Pfad zum Zertifikat im PFX-Format (-certificatePath), der beim Erstellen der Anwendung abgerufen wird.

Beispiele:

Zur besseren Lesbarkeit gehen wir davon aus:```powershell $appId = "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx" $tenant = "example.onmicrosoft.com" $certificatePath = "./example.pfx"

root@kitploit:~
In einem realen Fall werden diese Parameter beim [Erstellen der Anwendung](#creating-the-application) gesammelt.



Um Microsoft Entra-Protokolle der letzten 30 Tage sowie allgemeine Informationen über den Mandanten abzurufen:```powershell
$endDate = Get-Date
$startDate = $endDate.AddDays(-30)
Get-AADLogs -startDate $startDate -endDate $endDate -appId $appId -tenant $tenant -certificatePath $certificatePath

Erhalten Sie Microsoft Entra-Dienstprinzipale und deren Anwendung, oauth2PermissionGrant und appRoleAssignment:```powershell $endDate = Get-Date $startDate = $endDate.AddDays(-30) Get-AADApps --appId $appId -tenant $tenant -certificatePath $certificatePath

root@kitploit:~
Microsoft Entra-Geräte und deren Besitzer und Benutzer abrufen:```powershell
$endDate = Get-Date
$startDate = $endDate.AddDays(-30)
Get-AADDevices -appId $appId -tenant $tenant -certificatePath $certificatePath

Microsoft Entra-Benutzer und deren Authentifizierungsmethodeneinstellungen abrufen:```powershell Get-AADUsers -appId $appId -tenant $tenant -certificatePath $certificatePath -authenticationMethods

root@kitploit:~
Rufen Sie Unified Audit-Log-Ereignisse ab, die in den letzten 30 Tagen als interessant gelten, mit Ausnahme derjenigen, die sich auf Entra ID beziehen, die bereits durch den ersten Befehl abgerufen wurden:```powershell
$endDate = Get-Date
$startDate = $endDate.AddDays(-30)
Get-O365Light -startDate $startDate -endDate $endDate -appId $appId -tenant $tenant -certificatePath $certificatePath -operationsSet "allButAzureAD"

Rufen Sie die Unified-Audit-Log-Ereignisse ab, die in einem Zeitfenster zwischen -90 Tagen und -30 Tagen ab jetzt als interessant gelten:```powershell $endDate = (Get-Date).AddDays(-30) $startDate = (Get-Date).AddDays(-90) Get-O365Light -startDate $startDate -endDate $endDate -appId $appId -tenant $tenant -certificatePath $certificatePath

root@kitploit:~
Wenn die Postfachüberwachung aktiviert ist, können Sie auch `MailboxLogin`-Vorgänge mit dem entsprechenden Schalter abrufen:

_Beachten Sie das globale Limit von 50.000 Ereignissen pro Suche_```powershell
Get-O365Light -startDate $startDate -endDate $endDate -appId $appId -tenant $tenant -certificatePath $certificatePath -mailboxLogin

Wenn es Benutzer mit Office 365 E5-Lizenzen gibt oder wenn ein Microsoft Defender for Office 365 Plan im Mandanten vorhanden ist, können Sie Microsoft Defender-bezogene Protokolle der letzten 90 Tage abrufen:```powershell $endDate = Get-Date $startDate = $endDate.AddDays(-90) Get-O365Defender -startDate $startDate -endDate $endDate -appId $appId -tenant $tenant -certificatePath $certificatePath

root@kitploit:~
Um alle Unified Audit Log-Ereignisse zwischen Heiligabend 2020 und dem zweiten Weihnachtsfeiertag 2020 abzurufen: 

_Beachten Sie, dass die Leistung bei Verwendung dieses Cmdlets schlecht ist_```powershell
$endDate = Get-Date "12/26/2020"
$startdate = Get-Date "12/24/2020"
Get-O365Full -startDate $startDate -endDate $endDate -appId $appId -tenant $tenant -certificatePath $certificatePath

Sie können die Suchfunktion verwenden, um nach IP-Adressen, Aktivitäten in Bezug auf bestimmte Benutzer zu suchen oder eine Freitextsuche im Unified Audit Log durchzuführen:```powershell $endDate = Get-Date $startDate = $endDate.AddDays(-90)

Retrieve events which contains the "Python" or "Python3" free text

Search-O365 -startDate $startDate -endDate $endDate -appId $appId -tenant $tenant -certificatePath $certificatePath -freeTexts "Python","Python3"

Retrieve events related to the IP adresses 8.8.8.8 and 4.4.4.4.

Search-O365 -startDate $startDate -endDate $endDate -appId $appId -tenant $tenant -certificatePath $certificatePath -IPAddresses "8.8.8.8","4.4.4.4"

Retrieve events related to users [email protected] and [email protected]

Search-O365 -startDate $startDate -endDate $endDate -appId $appId -tenant $tenant -certificatePath $certificatePath -userIds "[email protected]","[email protected]"

root@kitploit:~
Bei der Suche nach bestimmten **Benutzern** wird `Search-O365` auch im Mailbox-Überwachungsprotokoll suchen. Das liegt daran, dass abhängig von der Lizenzstufe und den Einstellungen des Benutzers einige der Postfachprotokolle möglicherweise nicht im Unified Audit Log vorhanden sind.

Um alle Azure Resource Manager-Aktivitätsprotokolle aus den Abonnements abzurufen, auf die die Anwendung Zugriff hat:```powershell
$endDate = Get-Date
$startDate = $endDate.AddDays(-90)
Get-AzRMActivityLogs -startDate $startDate -endDate $endDate -appId $appId -tenant $tenant -certificatePath $certificatePath

Um alle Azure DevOps-Aktivitätsprotokolle von den Organisationen abzurufen, auf die die Anwendung Zugriff hat:```powershell $endDate = Get-Date $startDate = $endDate.AddDays(-90) Get-AzDevOpsActivityLogs -startDate $startDate -endDate $endDate -appId $appId -tenant $tenant -certificatePath $certificatePath

root@kitploit:~
## Generierte Dateien

Alle generierten Dateien sind im JSON-Format.

_Mehrere Cmdlets, die Purview verwenden und in dieselbe Ausgabedatei schreiben, können aufgrund einer „naiven“ Verkettung zu einem ungültigen JSON führen_

- `Get-AADApps` erstellt im Ordner `azure_ad_apps`:
  - eine JSON-Datei mit vorhandenen und gelöschten Anwendungen: `AADApps_example.onmicrosoft.com_applications_raw.json`;
  - eine JSON-Datei mit vorhandenen und gelöschten Dienstprinzipalen: `AADApps_example.onmicrosoft.com_service_principals_raw.json`;
  - eine JSON-Datei mit den angereicherten Dienstprinzipalen: `AADApps_example.onmicrosoft.com.json`.

- `Get-AADDevices` erstellt im Ordner `azure_ad_devices`:
  - eine JSON-Datei mit vorhandenen und gelöschten Geräten: `AADDevices_example.onmicrosoft.com_devices_raw.json`;
  - eine JSON-Datei mit den angereicherten Geräten: `AADDevices_example.onmicrosoft.com.json`.

- `Get-AADUsers` erstellt im Ordner `azure_ad_users`:
  - eine JSON-Datei mit vorhandenen und gelöschten Benutzern: `AADUsers_example.onmicrosoft.com_users_raw.json`;
  - eine JSON-Datei mit den Authentifizierungseinstellungen von Benutzern: `AADUsers_example.onmicrosoft.com_users_settings_raw.json`;
  - eine JSON-Datei mit den angereicherten Benutzern: `AADUsers_example.onmicrosoft.com.json`.

- `Get-AADLogs` erstellt:
  - im Ordner `azure_ad_tenant`:
    - eine JSON-Datei mit allgemeinen Informationen zum Mandanten: `AADTenant_example.onmicrosoft.com.json`.

  - im Ordner `azure_ad_audit`:
    - JSON-Dateien mit Microsoft Entra-Überwachungsprotokollen: `AADAuditLog_example.onmicrosoft.com_YYYY-MM-DD.json`.

  - im Ordner `azure_ad_signin`:
    - JSON-Dateien mit Microsoft Entra-Anmeldeprotokollen: `YYYY-MM-DD/AADSigninLog_example.onmicrosoft.com_YYYY-MM-DD_HH-00-00.json`.

- `Get-AzRMActivityLogs` erstellt:
  - im Ordner `azure_rm_subscriptions`:
    - eine JSON-Datei mit allgemeinen Informationen zu den Abonnements: `AzRMsubscriptions_example.onmicrosoft.com.json`.

  - im Ordner `azure_rm_activity`:
    - JSON-Dateien mit Azure Monitor-Aktivitätsprotokollen: `YYYY-MM-DD/AzRM_example.onmicrosoft.com_%SubscriptionID%_YYYY-MM-DD_HH-00-00.json`.

- `Get-AzDevOpsActivityLogs` erstellt:
  - im Ordner `azure_DevOps_orgs`:
    - eine JSON-Datei mit allgemeinen Informationen zu den Azure DevOps-Organisationen: `AzdevopsOrgs_example.onmicrosoft.com.json`.

  - im Ordner `azure_DevOps_activity`:
    - JSON-Dateien mit Azure DevOps-Überwachungsprotokollen: `YYYY-MM-DD/AzDevOps_example.onmicrosoft.com_%AzureDevOpsOrg%_YYYY-MM-DD_HH-00-00.json`.

- `Get-O365Full` erstellt im Ordner `O365_unified_audit_logs` (bzw. `O365_unified_audit_logs_purview` bei Verwendung von Purview):
  - JSON-Dateien mit Unified Audit-Protokollen: `YYYY-MM-DD/UnifiedAuditLog_example.onmicrosoft.com_YYYY-MM-DD_HH-00-00.json` (bzw. `*/UnifiedAuditLogPurview_*` bei Verwendung von Purview);
  - JSON-Dateien mit Unified Audit-Protokollen für angegebene [RecordTypes](https://learn.microsoft.com/en-us/office/office-365-management-api/office-365-management-activity-api-schema#enum-auditlogrecordtype---type-edmint32): `YYYY-MM-DD/UnifiedAuditLog_example.onmicrosoft.com_YYYY-MM-DD_HH-00-00_%RecordType%.json` (bzw. `*/UnifiedAuditLogPurview_*` bei Verwendung von Purview).

- `Get-O365Light` erstellt im Ordner `O365_unified_audit_logs` (bzw. `O365_unified_audit_logs_purview` bei Verwendung von Purview):
  - JSON-Dateien mit Unified Audit-Protokollen für eine Teilmenge von *Operationen*, die als interessant erachtet werden: `YYYY-MM-DD/UnifiedAuditLog_example.onmicrosoft.com_YYYY-MM-DD_HH-00-00.json` (bzw. `*/UnifiedAuditLogPurview_*` bei Verwendung von Purview).
- `Get-O365Defender` erstellt im Ordner `O365_unified_audit_logs` (bzw. `O365_unified_audit_logs_purview` bei Verwendung von Purview):
  - JSON-Dateien mit Unified Audit-Protokollen für die [RecordTypes](https://learn.microsoft.com/en-us/office/office-365-management-api/office-365-management-activity-api-schema#enum-auditlogrecordtype---type-edmint32), die mit Defender verbunden sind: `YYYY-MM-DD/UnifiedAuditLog_example.onmicrosoft.com_YYYY-MM-DD_HH-00-00_%RecordType%.json` (bzw. `*/UnifiedAuditLogPurview_*` bei Verwendung von Purview).
- `Search-O365` erstellt:
  - im Ordner `O365_unified_audit_logs` (bzw. `O365_unified_audit_logs_purview` bei Verwendung von Purview):
    - JSON-Dateien mit Unified Audit-Protokollen für den angegebenen `RequestType` (`FreeText`, `IPAddresses`, oder `UserIds`): `YYYY-MM-DD/UnifiedAuditLog_example.onmicrosoft.com_YYYY-MM-DD_HH-00-00_%RequestType%_YYYY-MM-DD-HH-MM-SS.json` (bzw. `*/UnifiedAuditLogPurview_*` bei Verwendung von Purview). `YYYY-MM-DD-HH-MM-SS` stellt den Zeitpunkt der Sammlung dar. Bei Suche nach `FreeText` wird am Ende ein zusätzliches `_%i` angehängt, das anzeigt, dass dies das Ergebnis der Suche des `%i`-ten Freitextes ist.

  - im Ordner `Exchange_mailbox_audit_logs`:
    - JSON-Dateien mit Postfach-Überwachungsprotokollen (nur bei Suche nach Benutzer-IDs): `YYYY-MM-DD/MailboxAuditLog_example.onmicrosoft.com_YYYY-MM-DD_HH-00-00_UserIds_YYYY-MM-DD-HH-MM-SS_%UserID%.json`. `YYYY-MM-DD-HH-MM-SS` stellt den Zeitpunkt der Sammlung dar. `%UserID%` zeigt an, dass dies das Ergebnis der Suche nach dieser Benutzer-ID ist.

Das Ausführen der verschiedenen Funktionen erzeugt eine Verzeichnisstruktur ähnlich der folgenden:```
output
│   Get-AADApps.log
│   Get-AADDevices.log
│   Get-AADLogs.log
│   Get-AzDevOpsActivityLogs.log
│   Get-AzRMActivityLogs.log
│   Get-O365Defender.log
│   Get-O365Full.log
│   Get-O365Light.log
│   Search-O365.log
│
├───azure_ad_apps
│       AADApps_example.onmicrosoft.com.json
│       AADApps_example.onmicrosoft.com_applications_raw.json
│       AADApps_example.onmicrosoft.com_service_principals_raw.json
│
├───azure_ad_audit
│       AADAuditLog_example.onmicrosoft.com_YYYY-MM-DD.json
│       [...]
│
├───azure_ad_devices
│       AADDevices_example.onmicrosoft.com.json
│       AADDevices_example.onmicrosoft.com_devices_raw.json
│
├───azure_ad_signin
│   ├───YYYY-MM-DD
│   │       AADSigninLog_example.onmicrosoft.com_YYYY-MM-DD_HH-00-00.json
│   │       [...]
│   │
│   ├───[...]
│
├───azure_ad_tenant
│       AADTenant_example.onmicrosoft.com.json
│
├───azure_ad_users
│       AADUsers_divreponse.onmicrosoft.com.json
│       AADUsers_divreponse.onmicrosoft.com_users_raw.json
│       AADUsers_divreponse.onmicrosoft.com_users_settings_raw.json
|
├───azure_DevOps_activity
│   ├───YYYY-MM-DD
│   │       AzDevOps_example.onmicrosoft.com_%AzureDevOpsOrg%_YYYY-MM-DD_HH-00-00.json
│   │       [...]
│   │
│   ├───[...]
│
├───azure_DevOps_orgs
│       AzdevopsOrgs_example.onmicrosoft.com.json
├───azure_rm_activity
│   ├───YYYY-MM-DD
│   │       AzRM_example.onmicrosoft.com_%SubscriptionID%_YYYY-MM-DD_HH-00-00.json
│   │       [...]
│   │
│   ├───[...]
│
├───azure_rm_subscriptions
│       AzRMsubscriptions_example.onmicrosoft.com.json
│
├───Exchange_mailbox_audit_logs
│   └───YYYY-MM-DD
│   │       MailboxAuditLog_example.onmicrosoft.com_YYYY-MM-DD_HH-00-00_UserIds_YYYY-MM-DD-HH-MM-SS_%UserID%.json
│   │       [...]
│   │
│   ├───[...]
│
├───O365_unified_audit_logs
│   ├───YYYY-MM-DD
│   │       UnifiedAuditLog_example.onmicrosoft.com_YYYY-MM-DD_HH-00-00.json
│   │       UnifiedAuditLog_example.onmicrosoft.com_YYYY-MM-DD_HH-00-00_%RecordType%.json
│   │       UnifiedAuditLog_example.onmicrosoft.com_YYYY-MM-DD_HH-00-00_UserIds_YYYY-MM-DD-HH-MM-SS.json
│   │       UnifiedAuditLog_example.onmicrosoft.com_YYYY-MM-DD_HH-00-00_IPAddresses_YYYY-MM-DD-HH-MM-SS.json
│   │       UnifiedAuditLog_example.onmicrosoft.com_YYYY-MM-DD_HH-00-00_FreeText_YYYY-MM-DD-HH-MM-SS_%i.json
│   │       [...]
│   │
│   ├───[...]
│
└───O365_unified_audit_logs_purview
│   ├───YYYY-MM-DD
│   │       UnifiedAuditLogPurview_example.onmicrosoft.com_YYYY-MM-DD_HH-00-00.json
│   │       UnifiedAuditLogPurview_example.onmicrosoft.com_YYYY-MM-DD_HH-00-00_%RecordType%.json
│   │       UnifiedAuditLogPurview_example.onmicrosoft.com_YYYY-MM-DD_HH-00-00_UserIds_YYYY-MM-DD-HH-MM-SS.json
│   │       UnifiedAuditLogPurview_example.onmicrosoft.com_YYYY-MM-DD_HH-00-00_IPAddresses_YYYY-MM-DD-HH-MM-SS.json
│   │       UnifiedAuditLogPurview_example.onmicrosoft.com_YYYY-MM-DD_HH-00-00_FreeText_YYYY-MM-DD-HH-MM-SS_%i.json
│   │       [...]
│   │
│   ├───[...]
Tool herunterladen
Datenquelle / EndpunktAufbewahrungLeistungUmfang
Unified Audit Log / Exchange Online PowerShell90 TageSchlechtAlle Microsoft-365-Protokolle (einschließlich Entra)
Unified Audit Log / Purview180 TageGutAlle Microsoft-365-Protokolle (einschließlich Entra)
Unified Audit Log / Office 365 Management API *7 TageGutAlle Microsoft-365-Protokolle (einschließlich Entra)
Microsoft Entra-Protokolle / Microsoft Graph PowerShell30 TageGutNur Entra-Anmelde- und Audit-Protokolle
Microsoft Entra-Protokolle / Microsoft Graph REST API30 TageGutNur Entra-Anmelde- und Audit-Protokolle