Skip to content
KitploitKITPLOIT
StrumentiBlog
Invia
StrumentiBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

··Feed·Contatto·Privacy·© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
SharePointDumper — Strumento PowerShell di estrazione e audit per team red/blue/purple. Enumera tutti i siti/drive di SharePoint a cui un utente può accedere tramite Microsoft Graph, scarica ricorsivamente i file e registra ogni richiesta HTTP di Graph e SharePoint per correlazione SIEM, ingegneria del rilevamento e test IR. | Kitploit
Strumenti/GitHubGitHub/zh54321/sharepointdumper
Strumenti DifensiviOSINT (Open Source Intelligence)Esfiltrazione DatiRaccolta InformazioniPenetration TestingSicurezza CloudAutenticazioneRed TeamingRisposta agli Incidenti

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →

Informazioni

Analisi dei Log
GitHubzh54321/sharepointdumper

SharePointDumper

Vedi Repository
167196 mesi faRevisionato da Kitploit

Strumento PowerShell di estrazione e audit per team red/blue/purple. Enumera tutti i siti/drive di SharePoint a cui un utente può accedere tramite Microsoft Graph, scarica ricorsivamente i file e registra ogni richiesta HTTP di Graph e SharePoint per correlazione SIEM, ingegneria del rilevamento e test IR.

Condividi

SharePointDumper

SharePointDumper è un'utilità di estrazione e auditing basata su PowerShell che enumera i siti SharePoint a cui un utente ha accesso tramite Microsoft Graph e scarica i file tramite SharePoint.

È progettato per test SOC/DLP, purple teaming e valutazioni red-team non sofisticate, e pertanto produce report dettagliati che includono i file scaricati e ogni richiesta HTTP (Graph + SharePoint) per la correlazione SIEM.

Lo strumento non esegue l'autenticazione. Richiede invece un token di accesso OAuth2 già ottenuto con le autorizzazioni appropriate di Microsoft Graph (Sites.Read.All o Sites.ReadWrite.All).
Se hai bisogno di aiuto per ottenere tale token, puoi utilizzare EntraTokenAid (esempi inclusi di seguito), che semplifica la generazione di token di accesso utilizzabili.


✨ Caratteristiche

  • Enumera siti SharePoint, unità, cartelle e file tramite Microsoft Graph
  • Scarica ricorsivamente unità e cartelle (utilizzando URL di pre-autenticazione SharePoint)
  • Nessuna dipendenza esterna obbligatoria (nessun modulo Microsoft Graph PowerShell, ecc.)
  • Personalizza lo User-Agent
  • Limiti di download globali: numero massimo di file e dimensione totale massima
  • Filtri di inclusione/esclusione per siti ed estensioni di file
  • Regolazione della limitazione delle richieste con jitter casuale
  • Opzionale: ricerca IP pubblico
  • Supporto proxy HTTP semplice
  • Report strutturato che include:
    • Riepilogo (durata, limiti, filtri, IP pubblico)
    • Siti SharePoint visitati
    • Registri completi delle richieste HTTP (CSV o JSON)
  • Oscuramento dei token di download di SharePoint, con opzione per registrarli non oscurati
  • Gestione elegante di Ctrl+C che si ferma dopo il file corrente e scrive comunque il report completo e il registro HTTP prima di uscire
  • Modalità di ripresa, che ri-enumera ma salta i file già scaricati
  • Aggiornamento automatico opzionale del token di accesso (richiede EntraTokenAid https://github.com/zh54321/EntraTokenAid.git)

📦 Immagini

Esecuzione:
alt text

Esempio di registro API CSV (può essere CSV o JSON): alt text

Esempio di registro download file (può essere CSV o JSON) alt text


📦 Installazione

Clona il repository

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

🔑 Requisiti

SharePointDumper richiede un token di accesso Microsoft Graph valido con autorizzazioni delegate per enumerare siti e file:

  • Sites.Read.All oppure
  • Sites.ReadWrite.All

Inoltre, il client OAuth deve essere autorizzato a chiamare l'API SharePoint.

Più di 23 applicazioni Microsoft di prima parte hanno già autorizzazioni Sites.Read… pre-consentite. Possono scaricare file da SharePoint e possono essere utilizzate per ottenere un token valido senza ulteriore configurazione del tenant.

Client di prima parte utilizzabili

Raccomandazione sulla durata del token

Se possibile, utilizza un token di accesso abilitato per CAE, che rimane valido fino a 24 ore e riduce le interruzioni durante dump di lunga durata.

Ottenere un token con EntraTokenAid

Puoi utilizzare EntraTokenAid per ottenere un token di accesso adatto tramite PowerShell
(i token CAE sono richiesti per impostazione predefinita):

root@kitploit:~
# Clona il modulo
git clone https://github.com/zh54321/EntraTokenAid.git
Import-Module EntraTokenAid/EntraTokenAid.psm1

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

# Opzionale: salva in una variabile compatibile con gli esempi seguenti
$AccessToken = $tokens.access_token

🚀 Utilizzo

Utilizzo base

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

Filtra siti

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

Filtra estensioni file

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

Limita download

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

Rallenta le richieste

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

Con jitter:

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

Riprendi (esempio dopo scadenza token)

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

In modalità ripresa, -OutputFolder deve puntare alla cartella dell'esecuzione precedente.

Utilizzo dell'aggiornamento automatico del token

SharePointDumper può aggiornare automaticamente un token di accesso scaduto (HTTP 401) utilizzando un token di aggiornamento ed EntraTokenAid.

root@kitploit:~
# Obbligatorio: il modulo deve essere importato affinché lo strumento possa utilizzare il comando Invoke-Refresh
Import-Module .\EntraTokenAid\EntraTokenAid.psm1

# Opzionale: ottieni i token utilizzando EntraTokenAid (sono possibili anche altri metodi)
$tokens = Invoke-Auth -ClientId 'b26aadf8-566f-4478-926f-589f601d9c74' -RedirectUrl 'urn:ietf:wg:oauth:2.0:oob'

# Esegui SharePointDumper con supporto aggiornamento
.\Invoke-SharePointDumper.ps1 -AccessToken $tokens.access_token -RefreshToken $tokens.refresh_token -RefreshClientId 'b26aadf8-566f-4478-926f-589f601d9c74'

Nota: i tentativi di aggiornamento del token NON vengono registrati nel registro API.


Parametri

🧾 Struttura dell'output

Struttura delle directory

root@kitploit:~
20261115_MySecureTenant/
 ├── SharePointDumper_Report_20261115_080333.txt
 ├── SharePointDumper_ApiLog_20261115_080333.csv
 ├── SharePointDumper_FileLog_20261115_080333.csv
 ├── Sito A/
 │    └── Documenti/
 │         ├── file1.docx
 │         └── file2.pdf
 └── Sito B/
      └── Risorse del sito/

Registri

  • Report: riepilogo di alto livello (Report_*.txt)
  • Registro API: ogni richiesta HTTP Graph + SharePoint
    (ApiLog_*.csv o .json)
  • Esecuzioni in ripresa generano:
    • SharePointDumper_ReportResume_*
    • SharePointDumper_ApiLogResume_*

⚠️ Errori di autenticazione

401 – Non autorizzato

Il token di accesso non è valido o è scaduto.

403 – Vietato

Il token di accesso è valido, ma mancano le autorizzazioni Microsoft Graph o SharePoint richieste.


🔍 Rilevamento

Le attività di SharePointDumper vengono registrate in:

  • Registro di controllo unificato (UAL): registra l'attività di ricerca e download di SharePoint.
  • Registri attività Graph: registrano tutte le richieste di enumerazione di siti e unità (/organization, /sites, /drives).

Esempio UAL:
asd

Esempio registro attività Graph:
asd


📝 Licenza

Rilasciato sotto la Licenza MIT.


Scarica lo strumento
Nome AppID ClientFOCIComando Auth EntraTokenAid
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'
App iOS OneDriveaf124e86-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'
Generatore trascrizioni vocali Office 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'
App Azure AI Studiocb2ff863-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'
App Microsoft Loopa187e399-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'
ParametroObbligatorioTipoDescrizione
AccessTokenSìStringToken di accesso OAuth2. Nessuna autenticazione eseguita all'interno dello strumento.
OutputFolderNoStringDirectory per il dump. Predefinito: ".". In modalità -Resume, deve puntare a una cartella di dump esistente precedente.
UserAgentNoStringUserAgent personalizzato per tutte le richieste HTTP. Predefinito: SharePointDumper
ProxyNoStringProxy HTTP opzionale (es., http://127.0.0.1:8080).
IncludeExtensionsNoString[]Scarica solo queste estensioni.
ExcludeExtensionsNoString[]Salta queste estensioni (ignorato se viene utilizzato IncludeExtensions).
IncludeSitesNoString[]Elabora solo i siti che corrispondono a uno qualsiasi di questi valori.
ExcludeSitesNoString[]Salta i siti che corrispondono a uno qualsiasi di questi valori.
DisableIpLookupNoSwitchNon interrogare ifconfig.me per l'IP pubblico.
RequestDelaySecondsNoDoubleRitardo base prima di ogni richiesta HTTP.
VariationNoDoubleJitter casuale aggiunto al ritardo base.
MaxFilesNoIntNumero massimo di file da scaricare. Predefinito: nessun limite.
MaxTotalSizeMBNoDoubleDimensione totale massima di download. Predefinito: nessun limite.
ResumeNoSwitchSalta i file già scaricati. Richiede -OutputFolder.
ApiLogFormatNoStringCsv (predefinito), Json, o None.
ApiLogPathNoStringPercorso di output personalizzato per il file di registro API.
FileLogFormatNoStringCsv (predefinito), Json, o None.
FileLogPathNoStringPercorso di output personalizzato per il file di registro download.
LogDownloadTokensNoSwitchRegistra gli URL di download completi di SharePoint inclusi i token tempauth (non sicuro). Predefinito: i token sono oscurati.
RefreshTokenNoStringToken di aggiornamento OAuth2 utilizzato per il rinnovo automatico del token di accesso su HTTP 401.
RefreshClientIdNoStringID client utilizzato insieme a -RefreshToken.
RefreshTenantNoStringAutorità tenant per l'endpoint di aggiornamento (predefinito: common).