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
SharePointDumper — PowerShell SharePoint-Extraktions- und Audit-Tool für Red/Blue/Purple-Teams. Listet alle SharePoint-Websites/Laufwerke auf, auf die ein Benutzer über Microsoft Graph zugreifen kann, lädt rekursiv Dateien herunter und protokolliert jede Graph- + SharePoint-HTTP-Anfrage für SIEM-Korrelation, Detection Engineering und IR-Tests. | Kitploit
Tools/GitHubGitHub/zh54321/sharepointdumper
DefensivwerkzeugeOSINT (Open-Source-Intelligence)DatenexfiltrationInformationsbeschaffungPenetrationstestsCloud-SicherheitAuthentifizierungRed TeamingIncident Response

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →

Über

Log-Analyse
GitHubzh54321/sharepointdumper

SharePointDumper

Repository anzeigen
16719vor 6 MonatenVon Kitploit geprüft

PowerShell SharePoint-Extraktions- und Audit-Tool für Red/Blue/Purple-Teams. Listet alle SharePoint-Websites/Laufwerke auf, auf die ein Benutzer über Microsoft Graph zugreifen kann, lädt rekursiv Dateien herunter und protokolliert jede Graph- + SharePoint-HTTP-Anfrage für SIEM-Korrelation, Detection Engineering und IR-Tests.

Teilen

SharePointDumper

SharePointDumper ist ein PowerShell-basiertes Extraktions- und Prüfprogramm, das SharePoint-Websites auflistet, auf die ein Benutzer über Microsoft Graph zugreifen kann, und Dateien über SharePoint herunterlädt.

Es ist für SOC-/DLP-Tests, Purple Teaming und nicht anspruchsvolle Red-Team-Bewertungen konzipiert und erstellt detaillierte Berichte, einschließlich heruntergeladener Dateien und aller HTTP-Anfragen (Graph + SharePoint) für die SIEM-Korrelation.

Das Tool führt keine Authentifizierung durch. Stattdessen benötigt es ein bereits erlangtes OAuth2-Zugriffstoken mit den entsprechenden Microsoft Graph-Berechtigungen (Sites.Read.All oder Sites.ReadWrite.All).
Wenn Sie Hilfe bei der Beschaffung eines solchen Tokens benötigen, können Sie EntraTokenAid verwenden (Beispiele unten enthalten), das die Erstellung nutzbarer Zugriffstoken vereinfacht.


✨ Funktionen

  • Listet SharePoint-Websites, Laufwerke, Ordner und Dateien über Microsoft Graph auf
  • Rekursives Herunterladen von Laufwerken und Ordnern (unter Verwendung von SharePoint-Vorauthentifizierungs-URLs)
  • Keine zwingenden externen Abhängigkeiten (keine Microsoft Graph PowerShell-Module usw.)
  • Anpassbarer User-Agent
  • Globale Download-Limits: maximale Anzahl von Dateien und maximale Gesamtgröße
  • Ein-/Ausschlussfilter für Websites und Dateierweiterungen
  • Einstellbare Anforderungsdrosselung mit zufälligem Jitter
  • Optionale öffentliche IP-Abfrage
  • Unterstützt einfachen HTTP-Proxy
  • Strukturierter Bericht mit:
    • Zusammenfassung (Dauer, Limits, Filter, öffentliche IP)
    • Aufgerufene SharePoint-Websites
    • Vollständige HTTP-Anfrageprotokolle (CSV oder JSON)
  • Schwärzung von SharePoint-Download-Tokens, mit Option zur ungeschwärzten Protokollierung
  • Graziöse Ctrl+C-Behandlung: wird nach der aktuellen Datei gestoppt und schreibt vor dem Beenden den vollständigen Bericht und das HTTP-Protokoll
  • Fortsetzungsmodus, der die Auflistung wiederholt, aber bereits heruntergeladene Dateien überspringt
  • Optionale automatische Zugriffstoken-Aktualisierung (erfordert EntraTokenAid https://github.com/zh54321/EntraTokenAid.git)

📦 Bilder

Ausführung:
alt text

Beispiel-CSV-API-Protokoll (kann CSV oder JSON sein): alt text

Beispiel-Datei-Download-Protokoll (kann CSV oder JSON sein): alt text


📦 Installation

Repository klonen

root@kitploit:~
git clone https://github.com/zh54321/SharePointDumper.git
cd SharePointDumper

🔑 Voraussetzungen

SharePointDumper benötigt ein gültiges Microsoft Graph-Zugriffstoken mit delegierten Berechtigungen zum Auflisten von Websites und Dateien:

  • Sites.Read.All oder
  • Sites.ReadWrite.All

Darüber hinaus muss der OAuth-Client berechtigt sein, die SharePoint-API aufzurufen.

Mehr als 23 Microsoft-Erstanbieteranwendungen haben bereits vorab zugestimmte Sites.Read…-Berechtigungen. Sie können Dateien von SharePoint herunterladen und verwendet werden, um ohne zusätzliche Mandantenkonfiguration ein gültiges Token zu erhalten.

Verwendbare Erstanbieter-Clients

Token-Lebensdauer-Empfehlung

Verwenden Sie nach Möglichkeit ein CAE-aktiviertes Zugriffstoken, das bis zu 24 Stunden gültig bleibt und Unterbrechungen bei länger andauernden Dumps reduziert.

Token mit EntraTokenAid abrufen

Sie können EntraTokenAid verwenden, um ein geeignetes Zugriffstoken über PowerShell zu erhalten
(CAE-Token werden standardmäßig angefordert):

root@kitploit:~
# Modul klonen
git clone https://github.com/zh54321/EntraTokenAid.git
Import-Module EntraTokenAid/EntraTokenAid.psm1

# Token abrufen
$tokens = Invoke-Auth -ClientID 'b26aadf8-566f-4478-926f-589f601d9c74' -RedirectUrl 'urn:ietf:wg:oauth:2.0:oob'

# Optional: In mit den folgenden Beispielen kompatibler Variable speichern
$AccessToken = $tokens.access_token

🚀 Verwendung

Grundlegende Verwendung

root@kitploit:~
.\Invoke-SharePointDumper.ps1 -AccessToken $accesstoken -UserAgent "Not SharePointDumper"

Websites filtern

root@kitploit:~
.\Invoke-SharePointDumper.ps1 -AccessToken $accesstoken -IncludeSites "Finance","Projects"
root@kitploit:~
.\Invoke-SharePointDumper.ps1 -AccessToken $accesstoken -ExcludeSites "HR","Legal"

Dateierweiterungen filtern

root@kitploit:~
.\Invoke-SharePointDumper.ps1 -AccessToken $accesstoken -IncludeExtensions pdf,docx
root@kitploit:~
.\Invoke-SharePointDumper.ps1 -AccessToken $accesstoken -ExcludeExtensions jpg,bmp

Downloads begrenzen

root@kitploit:~
.\Invoke-SharePointDumper.ps1 -AccessToken $accesstoken -MaxFiles 500
root@kitploit:~
.\Invoke-SharePointDumper.ps1 -AccessToken $accesstoken -MaxTotalSizeMB 100

Anfragen verlangsamen

root@kitploit:~
.\Invoke-SharePointDumper.ps1 -AccessToken $accesstoken -RequestDelaySeconds 2

Mit Jitter:

root@kitploit:~
.\Invoke-SharePointDumper.ps1 -AccessToken $accesstoken -RequestDelaySeconds 2 -Variation 3

Fortsetzen (Beispiel nach Token-Ablauf)

root@kitploit:~
.\Invoke-SharePointDumper.ps1 -AccessToken $accesstoken -Resume -OutputFolder .\20251121_1551_MyTenant

Im Fortsetzungsmodus muss -OutputFolder zwingend auf den Ordner des vorherigen Laufs verweisen.

Automatische Token-Aktualisierung verwenden

SharePointDumper kann ein abgelaufenes Zugriffstoken (HTTP 401) automatisch mit einem Aktualisierungstoken und EntraTokenAid erneuern.

root@kitploit:~
# Zwingend: Das Modul muss importiert sein, damit das Tool den Befehl Invoke-Refresh verwenden kann
Import-Module .\EntraTokenAid\EntraTokenAid.psm1

# Optional: Token mit EntraTokenAid abrufen (andere Methoden sind ebenfalls möglich)
$tokens = Invoke-Auth -ClientId 'b26aadf8-566f-4478-926f-589f601d9c74' -RedirectUrl 'urn:ietf:wg:oauth:2.0:oob'

# SharePointDumper mit Aktualisierungsunterstützung ausführen
.\Invoke-SharePointDumper.ps1 -AccessToken $tokens.access_token -RefreshToken $tokens.refresh_token -RefreshClientId 'b26aadf8-566f-4478-926f-589f601d9c74'

Hinweis: Token-Aktualisierungsversuche werden NICHT im API-Protokoll protokolliert.


Parameter

🧾 Ausgabestruktur

Verzeichnisstruktur

root@kitploit:~
20261115_MySecureTenant/
 ├── SharePointDumper_Report_20261115_080333.txt
 ├── SharePointDumper_ApiLog_20261115_080333.csv
 ├── SharePointDumper_FileLog_20261115_080333.csv
 ├── Site A/
 │    └── Documents/
 │         ├── file1.docx
 │         └── file2.pdf
 └── Site B/
      └── Site Assets/

Protokolle

  • Bericht: Zusammenfassung auf hoher Ebene (Report_*.txt)
  • API-Protokoll: Jede Graph- + SharePoint-HTTP-Anfrage
    (ApiLog_*.csv oder .json)
  • Fortsetzungsläufe erzeugen:
    • SharePointDumper_ReportResume_*
    • SharePointDumper_ApiLogResume_*

⚠️ Authentifizierungsfehler

401 – Nicht autorisiert

Das Zugriffstoken ist ungültig oder abgelaufen.

403 – Verboten

Das Zugriffstoken ist gültig, aber die erforderlichen Microsoft Graph- oder SharePoint-Berechtigungen fehlen.


🔍 Erkennung

Aktivitäten von SharePointDumper werden protokolliert in:

  • Unified Audit Log (UAL): protokolliert SharePoint-Such- und Download-Aktivitäten.
  • Graph Activity Logs: zeichnen alle Anforderungen zur Auflistung von Websites und Laufwerken auf (/organization, /sites, /drives).

Beispiel UAL:
asd

Beispiel Graph Activity Log:
asd


📝 Lizenz

Veröffentlicht unter der MIT-Lizenz.


Tool herunterladen
App-NameClient-IDFOCIEntraTokenAid-Auth-Befehl
Microsoft Teams1fec8e78-bce4-4aaf-ab1b-5451cc387264TRUE$tokens = Invoke-Auth -ClientID '1fec8e78-bce4-4aaf-ab1b-5451cc387264' -RedirectUrl 'https://login.microsoftonline.com/common/oauth2/nativeclient'
Outlook Mobile27922004-5251-4030-b22d-91ecd9a37ea4TRUE$tokens = Invoke-Auth -ClientID '27922004-5251-4030-b22d-91ecd9a37ea4' -RedirectUrl 'x-msauth-outlook-prod://com.microsoft.Office.Outlook'
OneDrive SyncEngineab9b8c07-8f02-4f72-87fa-80105867a763TRUE$tokens = Invoke-Auth -ClientID 'ab9b8c07-8f02-4f72-87fa-80105867a763' -RedirectUrl 'https://login.microsoftonline.com/common/oauth2/nativeclient'
OneDrive iOS Appaf124e86-4e96-495a-b70a-90f90ab96707TRUE$tokens = Invoke-Auth -ClientID 'af124e86-4e96-495a-b70a-90f90ab96707' -RedirectUrl 'ms-onedrive-auth://com.microsoft.skydrive.shareextension'
Microsoft Bing Searchcf36b471-5b44-428c-9ce7-313bf84528deTRUE$tokens = Invoke-Auth -ClientID 'cf36b471-5b44-428c-9ce7-313bf84528de' -RedirectUrl 'msauth.com.microsoft.bing://auth'
OneDriveb26aadf8-566f-4478-926f-589f601d9c74TRUE$tokens = Invoke-Auth -ClientID 'b26aadf8-566f-4478-926f-589f601d9c74' -RedirectUrl 'urn:ietf:wg:oauth:2.0:oob'
SharePointd326c1ce-6cc6-4de2-bebc-4591e5e13ef0TRUE$tokens = Invoke-Auth -ClientID 'd326c1ce-6cc6-4de2-bebc-4591e5e13ef0' -RedirectUrl 'msauth://code/ms-sharepoint-auth%3A%2F%2Fcom.microsoft.sharepoint'
SharePoint Androidf05ff7c9-f75a-4acd-a3b5-f4b6a870245dTRUE$tokens = Invoke-Auth -ClientID 'f05ff7c9-f75a-4acd-a3b5-f4b6a870245d' -RedirectUrl 'msauth://com.microsoft.sharepoint/gSoqzhbCjkyvI%2Fl7kC7IdG7KbPU%3D'
OfficeHome4765445b-32c6-49b0-83e6-1d93765276caFALSE$tokens = Invoke-Auth -ClientID '4765445b-32c6-49b0-83e6-1d93765276ca' -RedirectUrl 'https://scuprodprv.www.microsoft365.com/spalanding' -Origin 'https://doesnotmatter'
SharePoint Online Web Client Extensibility08e18876-6177-487e-b8b5-cf950c1e598cFALSE$tokens = Invoke-Auth -ClientID '08e18876-6177-487e-b8b5-cf950c1e598c' -RedirectUrl 'https://onedrive.cloud.microsoft/_forms/spfxsinglesignon.aspx' -Origin 'https://doesnotmatter'
Microsoft Teams Web Client5e3ce6c0-2b1f-4285-8d4b-75ee78787346FALSE$tokens = Invoke-Auth -ClientID '5e3ce6c0-2b1f-4285-8d4b-75ee78787346' -RedirectUrl 'https://teams.cloud.microsoft/convene/townhall' -Origin 'https://doesnotmatter'
Portfoliosf53895d3-095d-408f-8e93-8f94b391404eFALSE$tokens = Invoke-Auth -ClientID 'f53895d3-095d-408f-8e93-8f94b391404e' -RedirectUrl 'https://project.microsoft.com/msal-redirect2' -Origin 'https://doesnotmatter'
Microsoft Remote Assistfca5a20d-55aa-4395-9c2f-c6147f3c9ffaFALSE$tokens = Invoke-Auth -ClientID 'fca5a20d-55aa-4395-9c2f-c6147f3c9ffa' -RedirectUrl 'http://localhost:13824'
ProcessSimpleGCC38a893b6-d74c-4786-8fe7-bc3b4318e881FALSE$tokens = Invoke-Auth -ClientID '38a893b6-d74c-4786-8fe7-bc3b4318e881' -RedirectUrl 'https://make.gov.powerautomate.us/auth-redirect.html' -Origin 'https://doesnotmatter'
WindowsShareExperienceProda8759234-4b8b-4d94-8c0a-ee1ab73af270FALSE$tokens = Invoke-Auth -ClientID 'a8759234-4b8b-4d94-8c0a-ee1ab73af270' -RedirectUrl 'ms-appx-web://Microsoft.AAD.BrokerPlugin/a8759234-4b8b-4d94-8c0a-ee1ab73af270'
Office voice transcript generator AADd2eb9fef-f34c-40ec-b6a3-4bf524065158FALSE$tokens = Invoke-Auth -ClientID 'd2eb9fef-f34c-40ec-b6a3-4bf524065158' -RedirectUrl 'msauth.com.microsoft.Office.TestVoice.TestVoice2://auth'
Azure OpenAI Studiodc807dec-d211-4b3f-bc8a-43b3443c4874FALSE$tokens = Invoke-Auth -ClientID 'dc807dec-d211-4b3f-bc8a-43b3443c4874' -RedirectUrl 'https://dev.oai.azure.com' -Origin 'https://doesnotmatter'
Azure AI Studio Appcb2ff863-7f30-4ced-ab89-a00194bcf6d9FALSE$tokens = Invoke-Auth -ClientID 'cb2ff863-7f30-4ced-ab89-a00194bcf6d9' -RedirectUrl 'https://int.ai.azure.com/agents' -Origin 'https://doesnotmatter'
Azure Machine Learning Workbench Web Appd7304df8-741f-47d3-9bc2-df0e24e2071fFALSE$tokens = Invoke-Auth -ClientID 'd7304df8-741f-47d3-9bc2-df0e24e2071f' -RedirectUrl 'https://dev.ml.azure.com/redirect' -Origin 'https://doesnotmatter'
M365ChatClientc0ab8ce9-e9a0-42e7-b064-33d422df41f1FALSE$tokens = Invoke-Auth -ClientID 'c0ab8ce9-e9a0-42e7-b064-33d422df41f1' -RedirectUrl 'https://fa000000128.resources.office.net/f7024bdc-7caf-4ca8-807d-2908f09640d6/1.0.2412.19011/en-us_web/login.html' -Origin 'https://doesnotmatter'
Microsoft Loop Appa187e399-0c36-4b98-8f04-1edc167a0996FALSE$tokens = Invoke-Auth -ClientID 'a187e399-0c36-4b98-8f04-1edc167a0996' -RedirectUrl 'https://hosted.loop.cloud.dev.microsoft/authLanding.html' -Origin 'https://doesnotmatter'
Viva Goalsc8423563-e8f6-49f2-924b-90d9f664378aFALSE$tokens = Invoke-Auth -ClientID 'c8423563-e8f6-49f2-924b-90d9f664378a' -RedirectUrl 'https://goals-ppe.microsoft.com/aad/consume' -Origin 'https://doesnotmatter'
Microsoft Mesheea619ad-603a-4b03-a386-860fcc7410d1FALSE$tokens = Invoke-Auth -ClientID 'eea619ad-603a-4b03-a386-860fcc7410d1' -RedirectUrl 'http://localhost:13824'
ParameterErforderlichTypBeschreibung
AccessTokenJaStringOAuth2-Zugriffstoken. Keine Authentifizierung innerhalb des Tools.
OutputFolderNeinStringVerzeichnis für den Dump. Standard: ".". Im Modus -Resume muss es auf einen vorhandenen vorherigen Dump-Ordner verweisen.
UserAgentNeinStringBenutzerdefinierter UserAgent für alle HTTP-Anfragen. Standard: SharePointDumper
ProxyNeinStringOptionaler HTTP-Proxy (z.B. http://127.0.0.1:8080).
IncludeExtensionsNeinString[]Nur diese Erweiterungen herunterladen.
ExcludeExtensionsNeinString[]Diese Erweiterungen überspringen (ignoriert, wenn IncludeExtensions verwendet wird).
IncludeSitesNeinString[]Nur Websites verarbeiten, die auf einen dieser Werte zutreffen.
ExcludeSitesNeinString[]Websites überspringen, die auf einen dieser Werte zutreffen.
DisableIpLookupNeinSwitchifconfig.me nicht nach öffentlicher IP abfragen.
RequestDelaySecondsNeinDoubleBasisverzögerung vor jeder HTTP-Anfrage.
VariationNeinDoubleZufälliger Jitter, der zur Basisverzögerung hinzugefügt wird.
MaxFilesNeinIntMaximale Anzahl herunterzuladender Dateien. Standard: kein Limit.
MaxTotalSizeMBNeinDoubleMaximale Gesamt-Download-Größe. Standard: kein Limit.
ResumeNeinSwitchÜberspringt bereits heruntergeladene Dateien. Erfordert -OutputFolder.
ApiLogFormatNeinStringCsv (Standard), Json oder None.
ApiLogPathNeinStringBenutzerdefinierter Ausgabepfad für die API-Protokolldatei.
FileLogFormatNeinStringCsv (Standard), Json oder None.
FileLogPathNeinStringBenutzerdefinierter Ausgabepfad für die Datei-Protokolldatei.
LogDownloadTokensNeinSwitchVollständige SharePoint-Download-URLs inklusive tempauth-Token protokollieren (unsicher). Standard: Token werden geschwärzt.
RefreshTokenNeinStringOAuth2-Aktualisierungstoken für die automatische Erneuerung des Zugriffstokens bei HTTP 401.
RefreshClientIdNeinStringClient-ID, die zusammen mit -RefreshToken verwendet wird.
RefreshTenantNeinStringMandantenautorität für den Aktualisierungsendpunkt (Standard: common).