Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !
SharePointDumper — Outil d'extraction et d'audit PowerShell pour SharePoint, destiné aux équipes rouges, bleues et violettes. Énumère tous les sites/dossiers SharePoint qu'un utilisateur peut atteindre via Microsoft Graph, télécharge récursivement les fichiers, et enregistre chaque requête HTTP Graph et SharePoint pour la corrélation SIEM, l'ingénierie de détection et les tests de réponse aux incidents. | Kitploit
Outil d'extraction et d'audit PowerShell pour SharePoint, destiné aux équipes rouges, bleues et violettes. Énumère tous les sites/dossiers SharePoint qu'un utilisateur peut atteindre via Microsoft Graph, télécharge récursivement les fichiers, et enregistre chaque requête HTTP Graph et SharePoint pour la corrélation SIEM, l'ingénierie de détection et les tests de réponse aux incidents.
Partager
SharePointDumper
SharePointDumper est un utilitaire d'extraction et d'audit basé sur PowerShell qui énumère les sites SharePoint auxquels un utilisateur peut accéder via Microsoft Graph et télécharge des fichiers via SharePoint.
Il est conçu pour les tests SOC / DLP, le purple teaming et les évaluations de red team non sophistiquées, et produit donc des rapports détaillés comprenant les fichiers téléchargés et chaque requête HTTP (Graph + SharePoint) pour une corrélation avec les SIEM.
L'outil n'effectue pas d'authentification. Il nécessite un jeton d'accès OAuth2 déjà obtenu avec les autorisations Microsoft Graph appropriées (Sites.Read.All ou Sites.ReadWrite.All).
Si vous avez besoin d'aide pour obtenir un tel jeton, vous pouvez utiliser EntraTokenAid (des exemples sont inclus ci-dessous), qui simplifie la génération de jetons d'accès utilisables.
✨ Fonctionnalités
Énumère les sites, lecteurs, dossiers et fichiers SharePoint via Microsoft Graph
Vide récursivement les lecteurs et dossiers (en utilisant les URL de pré-authentification SharePoint)
Aucune dépendance externe obligatoire (pas de modules Microsoft Graph PowerShell, etc.)
Personnalisation du User-Agent
Limites globales de téléchargement : nombre maximum de fichiers et taille totale maximum
Filtrage d'inclusion/exclusion pour les sites et les extensions de fichiers
Réglage de la limitation des requêtes avec gigue aléatoire
Recherche facultative d'adresse IP publique
Rapport structuré comprenant :
Résumé (durée, limites, filtres, IP publique)
Sites SharePoint consultés
Journaux complets des requêtes HTTP (CSV ou JSON)
Masquage des jetons de téléchargement SharePoint, avec option de journalisation non masquée
Gestion gracieuse de Ctrl+C qui s'arrête après le fichier en cours et écrit le rapport complet et le journal HTTP avant de quitter
Mode reprise, qui ré-énumère mais ignore les fichiers déjà téléchargés
Exemple de journal d'API CSV (peut être CSV ou JSON) :
Exemple de journal de téléchargement de fichier (peut être CSV ou JSON)
📦 Installation
Cloner le dépôt
root@kitploit:~
git clone https://github.com/zh54321/SharePointDumper.git
cd SharePointDumper
🔑 Prérequis
SharePointDumper nécessite un jeton d'accès Microsoft Graph valide avec des autorisations déléguées pour énumérer les sites et les fichiers :
Sites.Read.Allou
Sites.ReadWrite.All
De plus, le client OAuth doit être autorisé à appeler l'API SharePoint.
Plus de 23 applications Microsoft first-party ont déjà des autorisations Sites.Read… pré-consenties. Elles peuvent télécharger des fichiers depuis SharePoint et peuvent être utilisées pour obtenir un jeton valide sans configuration supplémentaire du locataire.
En mode reprise, -OutputFolderdoit pointer vers le dossier de l'exécution précédente.
Utilisation du rafraîchissement automatique du jeton
SharePointDumper peut automatiquement rafraîchir un jeton d'accès expiré (HTTP 401) à l'aide d'un jeton de rafraîchissement et d'EntraTokenAid.
root@kitploit:~
# Obligatoire : le module doit être importé pour que l'outil puisse utiliser la commande Invoke-Refresh
Import-Module .\EntraTokenAid\EntraTokenAid.psm1
# Facultatif : obtenir les jetons avec EntraTokenAid (d'autres méthodes sont également possibles)
$tokens = Invoke-Auth -ClientId 'b26aadf8-566f-4478-926f-589f601d9c74' -RedirectUrl 'urn:ietf:wg:oauth:2.0:oob'
# Exécuter SharePointDumper avec prise en charge du rafraîchissement
.\Invoke-SharePointDumper.ps1 -AccessToken $tokens.access_token -RefreshToken $tokens.refresh_token -RefreshClientId 'b26aadf8-566f-4478-926f-589f601d9c74'
Remarque : les tentatives de rafraîchissement du jeton ne sont PAS consignées dans le journal d'API.
Paramètres
Paramètre
Requis
Type
Description
AccessToken
Oui
Chaîne
Jeton d'accès OAuth2. Aucune authentification effectuée dans l'outil.
OutputFolder
Non
Chaîne
Répertoire pour le vidage. Par défaut : ".". En mode -Resume, doit pointer vers un dossier de vidage existant.
UserAgent
Non
Chaîne
UserAgent personnalisé pour toutes les requêtes HTTP. Par défaut : SharePointDumper