Skip to content
KitploitKITPLOIT
OutilsBlog
Soumettre
OutilsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

··Flux·Contact·Confidentialité·© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
Mandiant-Azure-AD-Investigator — Module PowerShell en lecture seule pour détecter UNC2452 et autres artefacts d'acteurs de menace dans Azure AD, auditer les domaines fédérés, les principaux de service, les applications et les autorisations de boîte aux lettres pour les indicateurs de compromission. | Kitploit
Outils/GitHubGitHub/mandiant/mandiant-azure-ad-investigator
Criminalistique NumériqueSécurité CloudRenseignement sur les MenacesGestion des Identités et des Accès (IAM)Mauvaise ConfigurationRéponse aux IncidentsAnalyse de JournauxArchived

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
GitHub
mandiant/mandiant-azure-ad-investigator

Mandiant-Azure-AD-Investigator

Module PowerShell en lecture seule pour détecter UNC2452 et autres artefacts d'acteurs de menace dans Azure AD, auditer les domaines fédérés, les principaux de service, les applications et les autorisations de boîte aux lettres pour les indicateurs de compromission.

Voir le dépôt
650916il y a 3 ansVérifié par Kitploit
Partager

Mandiant Azure AD Investigator

Axé sur les TTPs d'UNC2452

Aperçu

Ce dépôt contient un module PowerShell permettant de détecter des artefacts pouvant être des indicateurs de l'activité d'UNC2452 et d'autres acteurs de menace. Certains indicateurs sont des indicateurs de compromission de « haute fidélité », tandis que d'autres artefacts sont qualifiés d'« à double usage ». Les artefacts à double usage peuvent être liés à l'activité d'un acteur de menace, mais aussi à des fonctionnalités légitimes. Une analyse et une vérification seront nécessaires pour ces derniers. Pour une description détaillée des techniques utilisées par UNC2452, consultez notre blog.

Cet outil est en lecture seule. Il n'apporte aucune modification à l'environnement Microsoft 365.

En résumé, ce module va :

  • Faire de son mieux pour identifier les indicateurs de compromission qui nécessiteront une vérification et une analyse plus approfondies

Il ne va pas :

  • Identifier une compromission à 100 %, ou
  • Vous dire si un artefact est une activité administrative légitime ou une activité d'acteur de menace.

Avec les retours de la communauté, l'outil pourrait devenir plus exhaustif dans la détection des IOC. Veuillez ouvrir un issue, soumettre une PR ou contacter les auteurs si vous avez des problèmes, des idées ou des commentaires.

Fonctionnalités

Domaines fédérés (Invoke-MandiantAuditAzureADDomains)

Ce module utilise MS Online PowerShell pour rechercher et auditer les domaines fédérés dans Azure AD. Tous les domaines fédérés seront sauvegardés dans le fichier federated domains.csv.

  • Période de validité inhabituelle du certificat de signature - Alerte sur un domaine fédéré dont les certificats de signature ont une période de validité supérieure à 1 an. Les certificats gérés par AD FS sont valides un an seulement. Des périodes de validité supérieures à un an pourraient indiquer qu'un acteur de menace a trafiqué les paramètres de fédération du domaine. Elles peuvent également indiquer l'utilisation d'un certificat de signature de jeton personnalisé légitime. Demandez à vos administrateurs de vérifier si c'est le cas.
  • Incohérence du certificat de signature - Alerte sur les domaines fédérés où l'émetteur ou le sujet des certificats de signature ne correspondent pas. Dans la plupart des cas, les certificats de signature de jeton proviennent du même émetteur et ont le même sujet. S'il y a une incohérence, cela pourrait indiquer qu'un acteur de menace a trafiqué les paramètres de fédération du domaine. Demandez à vos administrateurs de vérifier si les noms du sujet et de l'émetteur sont attendus, et sinon, envisagez de mener une enquête médico-légale pour déterminer comment les modifications ont été apportées et identifier toute autre preuve de compromission.
  • Backdoor Azure AD (any.sts) - Alerte sur les domaines fédérés configurés avec any.sts comme URI d'émetteur. Cela indique l'utilisation de l'outil Backdoor Azure AD. Envisagez de mener une enquête médico-légale pour déterminer comment les modifications ont été apportées et identifier toute autre preuve de compromission.
  • Domaines fédérés - Liste tous les domaines fédérés et l'URI de l'émetteur de jetons. Vérifiez que le domaine devrait être fédéré et que l'URI de l'émetteur est attendu.
  • Domaines non vérifiés - Liste tous les domaines non vérifiés dans Azure AD. Les domaines non vérifiés ne devraient pas être conservés longtemps dans Azure AD dans un état non vérifié. Envisagez de les supprimer.

Exemples```

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

root@kitploit:~
:bangbang: Le script a identifié un domaine qui a été fédéré avec un URI d'émetteur qui est un indicateur d'un [Azure AD Backdoor](https://github.com/Gerenios/AADInternals/blob/master/FederatedIdentityTools.ps1). Le backdoor définit par défaut l'URI d'émetteur sur hxxp://any.sts. Envisagez de mener une enquête médico-légale pour déterminer comment les modifications ont été apportées et identifier toute autre preuve de compromission.```
!! 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

⚠️ Le script a identifié un domaine fédéré avec un certificat de signature de jeton valide pour une durée supérieure aux 365 jours standard. Consultez vos administrateurs pour savoir si le certificat de signature de jeton est géré manuellement et si la période de validité indiquée est attendue. Envisagez de mener une enquête médico-légale si ce n'est pas le cas.

Principaux de service (Invoke-MandiantAuditAzureADServicePrincipals)

Ce module utilise Azure AD PowerShell pour rechercher et auditer les principaux de service dans Azure AD.

  • Principaux de service first-party avec des informations d'identification ajoutées - Les principaux de service first-party (publiés par Microsoft) ne devraient pas avoir d'informations d'identification ajoutées, sauf dans de rares circonstances. Les environnements qui sont ou ont été auparavant en mode hybride peuvent avoir des informations d'identification ajoutées aux principaux de service Exchange Online, Skype for Business et AAD Password Protection Proxy. Vérifiez que l'information d'identification du principal de service fait partie d'un cas d'utilisation légitime. Envisagez de mener une enquête médico-légale si l'information d'identification n'est pas légitime.
  • Principaux de service avec des privilèges élevés et des informations d'identification ajoutées - Identifie les principaux de service auxquels des autorisations API à haut risque sont attribuées et qui ont des informations d'identification ajoutées. Bien que le principal de service et les autorisations ajoutées soient probablement légitimes, les informations d'identification ajoutées peuvent ne pas l'être. Vérifiez que les informations d'identification du principal de service font partie d'un cas d'utilisation légitime. Vérifiez que le principal de service a besoin des autorisations listées.

Exemples```

!! 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 :

root@kitploit:~
:warning: Le script a identifié un principal de service de première partie (Microsoft) avec des identifiants ajoutés. Les principaux de service de première partie ne doivent *pas* avoir d'identifiants ajoutés, sauf dans de rares cas. Les environnements qui sont ou étaient auparavant en mode hybride peuvent avoir des identifiants ajoutés aux principaux de service Exchange Online, Skype for Business et AAD Password Protection Proxy. Cela peut également être un artefact de l'activité UNC2452 dans votre environnement. Consultez vos administrateurs et recherchez dans les journaux d'audit pour vérifier que l'identifiant est légitime. Vous pouvez également utiliser l'onglet « Connexions du principal de service » dans le panneau Connexions Azure AD pour rechercher des authentifications à votre locataire utilisant ce principal de service.```
!! 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

⚠️ Le script a identifié un principal de service avec des autorisations API à haut risque et a ajouté des informations d’identification. Cela peut être attendu, car certaines applications tierces ou développées sur mesure nécessitent l’ajout d’informations d’identification pour fonctionner. Cela peut également être un artefact de l’activité UNC2452 dans votre environnement. Consultez vos administrateurs et recherchez dans les journaux d’audit pour vérifier que l’information d’identification est légitime. Vous pouvez également utiliser l’onglet « Connexions du principal de service » dans le panneau Connexions Azure AD pour rechercher les authentifications dans votre locataire utilisant ce principal de service.

Applications (Invoke-MandiantAuditAzureADApplications)

Ce module utilise Azure AD PowerShell pour rechercher et auditer les applications dans Azure AD.

  • Applications avec privilèges élevés et informations d’identification ajoutées – Alerte sur les applications disposant d’autorisations API à haut risque et ayant ajouté des informations d’identification. Bien que les applications et les autorisations ajoutées soient probablement légitimes, les informations d’identification ajoutées peuvent ne pas l’être. Vérifiez que les informations d’identification de l’application font partie d’un cas d’usage légitime. Vérifiez que l’application a besoin des autorisations listées.

Exemple```

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

root@kitploit:~
:warning : Le script a identifié une application avec des autorisations API à haut risque et a ajouté des identifiants. Cela peut être normal, car certaines applications tierces ou personnalisées nécessitent l'ajout d'identifiants pour fonctionner. Cela peut également être une trace de l'activité d'UNC2452 dans votre environnement. Consultez vos administrateurs et recherchez dans les journaux d'audit pour vérifier que l'identifiant est légitime.

### Programme Fournisseur de solutions cloud (Invoke-MandiantGetCSPInformation)

Ce module vérifie si le locataire est géré par un CSP (Fournisseur de solutions cloud), ou partenaire, et si l'administration déléguée est activée. L'administration déléguée permet au CSP d'accéder au locataire client avec les mêmes privilèges qu'un administrateur général. Bien que le programme CSP impose des contrôles de sécurité stricts sur le locataire du partenaire, un acteur malveillant qui compromet le CSP pourrait accéder aux environnements clients. Les organisations doivent vérifier si leur partenaire a besoin des privilèges d'administration déléguée et les supprimer si ce n'est pas le cas. Si le partenaire doit conserver l'accès d'administration déléguée, envisagez de mettre en œuvre des stratégies d'accès conditionnel pour restreindre son accès.

Les organisations peuvent vérifier et gérer les relations partenaires en accédant au [Centre d'administration](https://admin.microsoft.com) et en naviguant vers `Paramètres` -> `Relations partenaires` dans la barre de menu de gauche.

### Autorisations des dossiers de boîte aux lettres (Get-MandiantMailboxFolderPermissions)

Ce module audite toutes les boîtes aux lettres du locataire pour détecter la présence d'autorisations suspectes sur les dossiers. Plus précisément, ce module examinera les dossiers « Top of Information Store » et « Boîte de réception » de chaque boîte aux lettres et vérifiera les autorisations attribuées aux utilisateurs « Par défaut » et « Anonyme ». Toute valeur autre que « Aucun » entraînera le signalement de la boîte aux lettres pour analyse. En général, les utilisateurs Par défaut et Anonyme ne devraient pas avoir d'autorisations sur les boîtes de réception des utilisateurs, car cela permettrait à tout utilisateur de lire leur contenu. Certaines organisations peuvent trouver des boîtes aux lettres partagées avec cette autorisation, mais ce n'est pas une pratique recommandée.

### Emprunt d'identité d'application (Get-MandiantApplicationImpersonationHolders)

Ce module affiche la liste des utilisateurs et des groupes qui détiennent le rôle ApplicationImpersonation. Tout utilisateur ou membre d'un groupe figurant dans la sortie de cette commande peut utiliser l'emprunt d'identité pour « agir en tant que » et accéder à la boîte aux lettres de tout autre utilisateur du locataire. Les organisations doivent auditer la sortie de cette commande pour s'assurer que seuls les utilisateurs et groupes attendus sont inclus et, dans la mesure du possible, restreindre davantage l'étendue.

### Audit Purview (anciennement Advanced Auditing) (Invoke-MandiantCheckAuditing)

Ce module énumérera tous les utilisateurs sous licence du locataire qui sont autorisés pour Purview Audit Mail Items Accessed. Il générera un rapport CSV documentant si la fonctionnalité a été activée sur une boîte aux lettres éligible. Les organisations doivent filtrer les boîtes aux lettres éligibles pour Mail Items Accessed mais dont la fonctionnalité est désactivée et vérifier que cela est intentionnel.

### Journal d'audit unifié (Get-MandiantUnc2452AuditLogs)

Ce module est un script d'assistance pour rechercher le journal d'audit unifié. La recherche dans le journal d'audit unifié comporte de nombreuses mises en garde techniques qui peuvent être facilement négligées. Ce module peut aider à simplifier le processus de recherche en mettant en œuvre les bonnes pratiques pour naviguer dans ces mises en garde et gérer certaines erreurs courantes.

Par défaut, le module recherche les entrées de journal qui peuvent enregistrer les techniques UNC2452. Les enregistrements du journal peuvent également capturer une activité d'administrateur légitime et devront être vérifiés.

* **Mettre à jour l'application** - Enregistre les actions entreprises pour mettre à jour les inscriptions d'applications.
* **Définir l'authentification de domaine** - Enregistre les modifications apportées aux paramètres d'authentification d'un domaine, y compris la création d'objets de domaine de fédération. Ces événements devraient être rares dans un environnement et peuvent indiquer qu'un acteur malveillant configure une porte dérobée Azure AD.
* **Définir les paramètres de fédération** - Enregistre les modifications apportées à l'objet de domaine de fédération pour un domaine. Ces événements devraient être rares dans un environnement et peuvent indiquer qu'un acteur malveillant se prépare à exécuter une attaque Golden SAML.
* **Mettre à jour les certificats et secrets d'application** - Enregistre lorsqu'un secret ou un certificat est ajouté à une inscription d'application.
* **Connexions à la boîte aux lettres via PowerShell** - Enregistre les opérations de connexion à la boîte aux lettres où l'application cliente était PowerShell.
* **Mettre à jour le principal de service** - Enregistre les mises à jour apportées à un principal de service existant.
* **Ajouter des informations d'identification au principal de service** - Enregistre lorsqu'un secret ou un certificat est ajouté à un principal de service.
* **Ajouter une attribution de rôle d'application** - Enregistre lorsqu'un rôle d'application (autorisation d'application) est ajouté.
* **Attribution de rôle d'application pour l'utilisateur** - Enregistre lorsqu'un rôle d'application est attribué à un utilisateur.
* **Authentification PowerShell** - Enregistre lorsqu'un utilisateur s'authentifie auprès d'Azure AD à l'aide d'un client PowerShell.
* **Nouvelles attributions de rôles de gestion** - Enregistre la création de nouvelles attributions de rôles de gestion. Cela peut être utile pour identifier de nouvelles attributions ApplicationImpersonation.

## Utilisation

### Modules requis

Le module PowerShell nécessite l'installation de trois modules PowerShell Microsoft 365.
* AzureAD
* MSOnline
* ExchangeOnlineManagement
* Microsoft.Graph

Pour installer les modules :
1. Ouvrez une fenêtre PowerShell en tant qu'administrateur local (clic droit puis sélectionnez Exécuter en tant qu'administrateur)
2. Exécutez la commande `Install-Module <NOM DU MODULE ICI>` et suivez les invites

### Autorisations utilisateur requises
Le module PowerShell doit être exécuté avec un compte Microsoft 365 disposant de privilèges spécifiques.
* Rôle `Administrateur général` ou `Lecteur général` dans le portail Azure AD
* `Journaux d'audit en lecture seule` dans le Centre d'administration Exchange
* Étendues `User.Read.All` et `Directory.Read.All`. Les titulaires du rôle `Lecteur général` devraient pouvoir utiliser ces étendues automatiquement.

Pour accorder à un compte les `Journaux d'audit en lecture seule` dans le Centre d'administration Exchange :
1. Accédez à https://outlook.office365.com/ecp et connectez-vous en tant qu'administrateur général ou administrateur Exchange (l'URL exacte peut différer si vous êtes dans un cloud alternatif)
2. Cliquez sur `rôles d'administration` dans le tableau de bord, ou développez l'onglet `rôles` à gauche et cliquez sur `rôles d'administration` si vous êtes dans la nouvelle interface utilisateur
3. Créez un nouveau rôle d'administration en cliquant sur le signe `+` ou en cliquant sur `ajouter un groupe de rôles`
4. Donnez un nom à votre rôle et une étendue d'écriture par défaut
5. Ajoutez l'autorisation `Journaux d'audit en lecture seule` au rôle
6. Ajoutez l'utilisateur au rôle

**Remarque** : l'application de ce rôle peut prendre jusqu'à une heure

### Exécution de l'outil
1. Téléchargez cet outil au format ZIP et décompressez-le, ou clonez le dépôt sur votre système
2. Ouvrez une fenêtre PowerShell
3. Changez de répertoire vers l'emplacement de ce module `cd C:\chemin\vers\le\module`
4. Importez ce module `Import-Module .\MandiantAzureADInvestigator.psd1` vous devriez recevoir cette sortie```

      Mandiant Azure AD Investigator
    Focusing on UNC2452 Investigations

PS C:\Users\admin\Desktop\mandiant>
  1. Connectez-vous à Azure AD en exécutant Connect-MandiantAzureEnvironment -UserPrincipalName <votre nom d'utilisateur ici>. Vous devriez recevoir une invite de connexion et un affichage dans la fenêtre PowerShell indiquant que les connexions ont été établies. Remarque : Si vous rencontrez des problèmes, vous devrez peut-être modifier votre stratégie d'exécution en exécutant Set-ExecutionPolicy -ExecutionPolicy RemoteSigned. Cette opération peut nécessiter des privilèges d'administrateur.```

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

Send your product improvement suggestions and feedback to [email protected]. For issues related to the module, contact Microsoft support. Don't use the feedback alias for problems or support issues.

Account Environment TenantId TenantDomain


[email protected] AzureCloud xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx test.onm...

root@kitploit:~
5. Exécutez toutes les vérifications `Invoke-MandiantAllChecks -OutputPath <path\to\output\files>`. Vous pouvez également exécuter des vérifications individuelles à l'aide de l'applet de commande spécifique.
6. Consultez la sortie à l'écran et les fichiers CSV générés.

## Lectures complémentaires

Pour plus d'informations de Mandiant concernant UNC2452, veuillez consulter :
* [Un attaquant très furtif exploite la chaîne d'approvisionnement de SolarWinds pour compromettre plusieurs victimes mondiales avec la porte dérobée SUNBURST](https://www.mandiant.com/resources/evasive-attacker-leverages-solarwinds-supply-chain-compromises-with-sunburst-backdoor)
* [Stratégies de remédiation et de durcissement pour Microsoft 365 afin de se défendre contre UNC2452](https://www.mandiant.com/resources/remediation-and-hardening-strategies-for-microsoft-365-to-defend-against-unc2452)


La riposte à UNC2452 a nécessité un effort considérable de la part de l'industrie de la sécurité et ces blogs citent abondamment d'autres contributions qui seront utiles aux utilisateurs de cet outil. Nous vous recommandons de lire le matériel lié à partir de ces articles pour mieux comprendre l'activité dans votre environnement. Comme toujours, l'équipe Mandiant est disponible pour répondre à des questions complémentaires ou pour vous assister davantage dans une enquête [en nous contactant ici.](https://www.mandiant.com/report-incident)
Télécharger l’outil