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
AzureHunter — Un module Powershell de forensique cloud pour exécuter des playbooks de chasse aux menaces sur les données d'Azure et d'O365 | Kitploit
Outils/GitHubGitHub/darkquasar/azurehunter
Collecte d'InformationsCriminalistique NumériqueSécurité CloudRenseignement sur les MenacesRéponse aux IncidentsAnalyse de Journaux
GitHubdarkquasar/azurehunter

AzureHunter

Un module Powershell de forensique cloud pour exécuter des playbooks de chasse aux menaces sur les données d'Azure et d'O365

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

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 →
Partager

azurehunter-logo

Un module PowerShell permettant d'exécuter des playbooks de chasse aux menaces sur les données d'Azure et d'O365 à des fins de criminalistique cloud.

ko-fi

CI PS Gallery Coverage Status Documentation Status azurehunter-demo-gif

Mise en route

1. Vérifiez que vous disposez des bonnes autorisations O365

Les rôles suivants sont requis dans Exchange Online pour avoir un accès en lecture seule au UnifiedAuditLog : View-Only Audit Logs ou Audit Logs.

Ces rôles sont attribués par défaut au groupe de rôles Compliance Management dans le centre d'administration Exchange.

REMARQUE : si vous êtes analyste en sécurité, réponse aux incidents ou chasseur de menaces et que votre organisation ne vous donne PAS l'accès lecture seule à ces journaux d'audit, vous devez sérieusement vous interroger sur sa stratégie de détection et de réponse !

Plus d'informations :

  • Comment rechercher le journal d'audit à l'aide de l'interface graphique
  • Gérer les groupes de rôles dans Exchange Online
  • Comment activer le UnifiedAuditLog

REMARQUE : votre administrateur peut vérifier ces prérequis en exécutant Get-ManagementRoleEntry "*\Search-UnifiedAuditLog" dans le cloud shell de votre locataire Azure ou dans une instance PowerShell locale connectée à Azure.

2. Assurez-vous que le module PowerShell ExchangeOnlineManagement v2 est installé

Veuillez vous assurer que vous avez ExchangeOnlineManagement (EXOv2) installé. Vous trouverez des instructions sur le web ou rendez-vous directement sur ma petite base de connaissances the soc analyst scrolls

3. Clonez le dépôt ou installez AzureHunter à partir de la PSGallery

3.1 Cloner le dépôt

  1. Clonez ce dépôt
  2. Importez le module Import-Module .\source\AzureHunter.psd1

3.2 Installer AzureHunter à partir de la PSGallery

Il vous suffit de :

root@kitploit:~
Install-Module AzureHunter -Scope CurrentUser
Import-Module AzureHunter

Qu'est-ce que le UnifiedAuditLog ?

Le journal d'audit unifié contient les activités des utilisateurs, groupes, applications, domaines et répertoires effectuées dans le centre d'administration Microsoft 365 ou dans le portail de gestion Azure. Pour une liste complète des événements Azure AD, voir la liste des RecordTypes.

Le UnifiedAuditLog est une excellente source d'informations de criminalistique cloud car il contient une multitude de données sur plusieurs types d'opérations cloud comme ExchangeItems, SharePoint, Azure AD, OneDrive, Gouvernance des données, Prévention des pertes de données, Alertes Windows Defender et événements de quarantaine, événements de renseignement sur les menaces dans Microsoft Defender pour Office 365, et la liste est encore longue !

Vérifications de cohérence des données d'AzureHunter

AzureHunter implémente une logique utile pour garantir que la plus haute densité de journaux est extraite et exportée des journaux d'audit Azure & O365. Pour ce faire, nous exécutons deux opérations différentes pour chaque cycle (lot) :

  1. Réduction automatique de la fenêtre temporelle : cette vérification garantit que l'intervalle de temps est réduit à l'intervalle optimal en fonction du paramètre ResultSizeUpperThreshold qui par défaut est de 20k. Cela signifie que si le nombre de journaux retournés dans votre TimeInterval désigné est supérieur à ResultSizeUpperThreshold, un ajustement automatique aura lieu.
  2. Vérification séquentielle des données : les index des enregistrements retournés sont-ils séquentiellement valides ?

azurehunter-logical-consistency-checks

Utilisation

Assurez-vous de vous connecter à ExchangeOnline

Il est recommandé d'exécuter Connect-ExchangeOnline avant d'exécuter des commandes AzureHunter. Le programme vérifie la présence d'une session distante active et tente de se connecter, mais certaines versions de Powershell ne le permettent pas et vous devez le faire vous-même.

Exécutez AzureHunter

AzureHunter dispose de deux commandes principales : Search-AzureCloudUnifiedLog et Invoke-AzHunterPlaybook.

Le but de Search-AzureCloudUnifiedLog est d'implémenter une logique complexe pour garantir que le plus grand pourcentage d'enregistrements UnifiedAuditLog soit extrait d'Azure. Par défaut, elle exportera les enregistrements extraits et dédoublonnés dans un fichier CSV.

Le but de Invoke-AzHunterPlaybook est de fournir une interface flexible pour les playbooks de chasse stockés dans le dossier playbooks. Ces playbooks sont conçus pour que chacun puisse contribuer avec ses propres analyses et idées. Pour l'instant, seuls deux playbooks très simples ont été développés : AzHunter.Playbook.Exporter et AzHunter.Playbook.LogonAnalyser. L'Exporter se charge d'exporter les enregistrements après avoir appliqué des opérations de dédoublonnage et de tri aux données. Le LogonAnalyser est en mode bêta et extrait les événements dont la propriété Operations est UserLoggedIn. C'est un exemple de ce qui peut être fait avec les playbooks et de la facilité à en construire un.

Lors de l'exécution de Search-AzureCloudUnifiedLog, vous pouvez passer une liste de playbooks à exécuter par lot de journaux. Search-AzureCloudUnifiedLog transmettra le lot aux playbooks via Invoke-AzHunterPlaybook.

Enfin, Invoke-AzHunterPlaybook peut être utilisé de manière autonome. Si vous disposez d'une exportation d'enregistrements UnifiedAuditLog, vous pouvez les charger dans un tableau PowerShell et les transmettre à cette commande en spécifiant les playbooks pertinents.

Exemple 1 | Exécuter une recherche sur le UnifiedAuditLog Azure et extraire les enregistrements dans un fichier CSV (comportement par défaut)

root@kitploit:~
Search-AzureCloudUnifiedLog -StartDate "2020-03-06T10:00:00" -EndDate "2020-06-09T12:40:00" -TimeInterval 12 -AggregatedResultsFlushSize 5000 -Verbose

Cette commande va :

  • Rechercher les données entre les dates de StartDate et EndDate
  • Implémenter une fenêtre de 12 heures entre ces dates, qui sera utilisée pour balayer toute la longueur de l'intervalle de temps (StartDate --> EndDate). Cette fenêtre sera automatiquement réduite et ajustée pour fournir le maximum d'enregistrements dans la fenêtre, garantissant ainsi une meilleure qualité de sortie. La fenêtre glisse séquentiellement jusqu'à atteindre EndDate.
  • Le paramètre AggregatedResultsFlushSize spécifie les lots d'enregistrements qui seront traités par les playbooks en aval. Nous indiquons ici à AzureHunter de traiter le lot d'enregistrements une fois que le total atteint 5000. Ainsi, vous pouvez obtenir des résultats en vol, sans avoir à attendre des heures jusqu'à ce qu'une vaste étendue d'enregistrements soit exportée dans des fichiers CSV.

Exemple 2 | Exécuter des playbooks de chasse sur un fichier CSV

Supposons que vous ayez exporté des enregistrements UnifiedAuditLog dans un fichier CSV, vous pouvez alors faire :

root@kitploit:~
$RecordArray = Import-Csv .\my-exported-records.csv
Invoke-AzHunterPlaybook -Records $RecordArray -Playbooks 'AzHunter.Playbook.UAL.LogonAnalyser'

Vous pouvez exécuter plusieurs playbooks en les séparant par des virgules ; ils s'exécuteront séquentiellement :

root@kitploit:~
$RecordArray = Import-Csv .\my-exported-records.csv
Invoke-AzHunterPlaybook -Records $RecordArray -Playbooks 'AzHunter.Playbook.UAL.Exporter', 'AzHunter.Playbook.UAL.LogonAnalyser'

Exemple 3 | Exécuter un playbook de chasse pour produire un rapport récapitulatif eDiscovery propre

Supposons que vous ayez exporté un rapport récapitulatif eDiscovery dans un fichier CSV, vous pouvez alors faire :

root@kitploit:~
$eDiscoReportFile = .\eDisco-Summary-Report-PersonOfInterest.csv
Invoke-AzHunterPlaybook -Records $eDiscoReportFile -Playbooks 'AzHunter.Playbook.eDisco.SummaryReportCleaner'

Nous pouvons également passer quelques paramètres au playbook comme ceci :

root@kitploit:~
$eDiscoReportFile = .\eDisco-Summary-Report-PersonOfInterest.csv
Invoke-AzHunterPlaybook -Records $eDiscoReportFile -Playbooks 'AzHunter.Playbook.eDisco.SummaryReportCleaner' -PlayBookParameters @{"CsvRecordsBatchSize" = 700}

Le paramètre "CsvRecordsBatchSize" indique au playbook de vider les enregistrements sur le disque par lots de 700 enregistrements.

Pourquoi ?

Depuis les conséquences de la Compromission de la chaîne d'approvisionnement SolarWinds, de nombreux outils ont émergé des forges profondes des criminalistes informatiques, soigneusement développés par des ninjas cyberforgerons. Ces outils vous aident généralement à effectuer de la criminalistique cloud dans Azure. Mon intention avec AzureHunter n'est pas d'ajouter plus de bruit dans cet espace déjà encombré, mais je me suis retrouvé dans le besoin de combler certaines lacunes que j'ai observées dans certains outils de cet espace (je peux me tromper cependant, car il y a une prolifération d'outils et je ne les connais pas tous...) :

  1. Les outils de criminalistique cloud Azure ne traitent généralement pas les complications de l'API Powershell pour le UnifiedAuditLog. Cette API est très instable et incohérente lors de l'exportation de grandes quantités de données. Je voulais développer une interface tolérante aux pannes (assez) pour résoudre certains de ces problèmes en me concentrant uniquement sur le UnifiedAuditLog, car c'est l'artefact Azure qui contient les journaux d'activité les plus pertinents et détaillés pour les utilisateurs, applications et services.
  2. Les outils de criminalistique cloud Azure ne mettent généralement pas l'accent sur le développement de Playbooks extensibles. Je voulais proposer un framework simple qui aiderait la communauté à créer et partager de nouveaux playbooks pour extraire différents types de signification des mêmes données.

Si, cependant, vous recherchez une application plus riche en fonctionnalités et mature pour la criminalistique cloud Azure, je vous suggère de consulter l'excellent travail réalisé par les experts en cybersécurité qui ont créé les applications suivantes :

  • CISA's Sparrow
  • HAWK
  • CrowdStrike Reporting Tool for Azure CRT

Je suis sûr qu'il existe une liste plus exhaustive d'outils, mais ce sont ceux auxquels j'ai pensé. N'hésitez pas à en suggérer d'autres.

Pourquoi PowerShell ?

  1. Je ne voulais pas réinventer la roue.
  2. Oui, l'interface PowerShell du UnifiedAuditLog d'Azure est instable, mais en termes de temps de mise en production, il m'aurait fallu un nombre d'heures insensé pour réaliser la même chose en écrivant une toute nouvelle interface dans des langages comme .NET, Golang ou Python pour atteindre les mêmes objectifs. En attendant, le monde de la cyberdéfense et de la réponse n'attend pas !

À faire

  • Spécifier les attributs de métadonnées standard des playbooks qui doivent être présents pour qu'AzureHunter puisse les exploiter.
  • Permettre aux playbooks de spécifier des dépendances envers d'autres playbooks, afin qu'un playbook doive être exécuté avant l'autre. L'enchaînement des playbooks pourrait donner des résultats intéressants et éviter la duplication de code.
  • Développer des tests Pester et les résultats Coveralls.
  • Développer la documentation dans ReadTheDocs.
  • Permettre la spécification de playbooks selon le standard de règle SIGMA (cela pourrait nécessiter une PR sur le dépôt SIGMA)

Plus d'informations

Pour plus d'informations

  • AzureHunter.readthedocs.io
  • github.com/darkquasar/AzureHunter
  • ThreatHunterz.com

Remerciements et contributeurs

Merci à toutes les personnes qui soutiennent ce projet et d'autres projets Open Source ! Vous aidez des gars comme moi à suivre la voie du cyber-guerrier et à livrer des outils de qualité à la communauté :)

Crédits

  • Icône réalisée par itim2101 sur www.flaticon.com
Télécharger l’outil