Ferramentas de Hacking, PenTest e Cibersegurança para o seu Arsenal de Segurança!
SharePointDumper — Ferramenta de extração e auditoria do SharePoint em PowerShell para equipes red/blue/purple. Enumera todos os sites/unidades do SharePoint que um usuário pode acessar via Microsoft Graph, baixa arquivos recursivamente e registra todas as requisições HTTP do Graph + SharePoint para correlação com SIEM, engenharia de detecção e testes de IR. | Kitploit
Ferramenta de extração e auditoria do SharePoint em PowerShell para equipes red/blue/purple. Enumera todos os sites/unidades do SharePoint que um usuário pode acessar via Microsoft Graph, baixa arquivos recursivamente e registra todas as requisições HTTP do Graph + SharePoint para correlação com SIEM, engenharia de detecção e testes de IR.
Compartilhar
SharePointDumper
O SharePointDumper é um utilitário de extração e auditoria baseado em PowerShell que enumera sites do SharePoint que um usuário pode acessar via Microsoft Graph e baixa arquivos via SharePoint.
Ele é projetado para testes de SOC / DLP, purple teaming e avaliações de red team não sofisticadas, e portanto produz relatórios detalhados incluindo arquivos baixados e cada requisição HTTP (Graph + SharePoint) para correlação com SIEM.
A ferramenta não realiza autenticação. Em vez disso, ela requer um token de acesso OAuth2 já obtido com as permissões apropriadas do Microsoft Graph (Sites.Read.All ou Sites.ReadWrite.All).
Se você precisar de ajuda para obter tal token, pode usar o EntraTokenAid (exemplos incluídos abaixo), que simplifica a geração de tokens de acesso utilizáveis.
✨ Funcionalidades
Enumera sites, drives, pastas e arquivos do SharePoint via Microsoft Graph
Despeja recursivamente drives e pastas (usando URLs de pré-autenticação do SharePoint)
Sem dependências externas obrigatórias (sem módulos do PowerShell do Microsoft Graph etc.)
Personalize o User-Agent
Limites globais de download: máximo de arquivos e tamanho total máximo
Filtros de inclusão/exclusão para sites e extensões de arquivo
Limitação de requisição ajustável com jitter aleatório
Consulta opcional de IP público
Suporte a proxy HTTP simples
Relatório estruturado incluindo:
Resumo (duração, limites, filtros, IP público)
Sites do SharePoint acessados
Logs completos de requisições HTTP (CSV ou JSON)
Ofuscação de tokens de download do SharePoint, com opção de registrá-los sem ofuscação
Tratamento elegante de Ctrl+C que para após o arquivo atual e ainda escreve o relatório completo e o log HTTP antes de sair
Modo de retomada, que re-enumera mas pula arquivos já baixados
Exemplo de Log de Download de Arquivos (pode ser CSV ou JSON)
📦 Instalação
Clone o repositório
root@kitploit:~
git clone https://github.com/zh54321/SharePointDumper.git
cd SharePointDumper
🔑 Requisitos
O SharePointDumper requer um token de acesso válido do Microsoft Graph com permissões delegadas para enumerar sites e arquivos:
Sites.Read.Allou
Sites.ReadWrite.All
Além disso, o cliente OAuth deve ter permissão para chamar a API do SharePoint.
Mais de 23 aplicativos próprios da Microsoft já possuem permissões Sites.Read… pré-consentidas. Eles podem baixar arquivos do SharePoint e podem ser usados para obter um token válido sem configuração adicional do tenant.
Se possível, use um token de acesso habilitado para CAE, que permanece válido por até 24 horas e reduz interrupções durante despejos de longa duração.
Obtendo um token com o EntraTokenAid
Você pode usar o EntraTokenAid para obter um token de acesso adequado via PowerShell
(tokens CAE são solicitados por padrão):
root@kitploit:~
# Clone the module
git clone https://github.com/zh54321/EntraTokenAid.git
Import-Module EntraTokenAid/EntraTokenAid.psm1
# Get the the tokens
$tokens = Invoke-Auth -ClientID 'b26aadf8-566f-4478-926f-589f601d9c74' -RedirectUrl 'urn:ietf:wg:oauth:2.0:oob'
# Optional: Store in variable which is compatible with the examples below
$AccessToken = $tokens.access_token
No modo de retomada, -OutputFolderdeve apontar para a pasta da execução anterior.
Usando Atualização Automática de Token
O SharePointDumper pode atualizar automaticamente um token de acesso expirado (HTTP 401) usando um token de atualização e o EntraTokenAid.
root@kitploit:~
# Mandatory: The module must be imported so the tool can use the Invoke-Refresh command
Import-Module .\EntraTokenAid\EntraTokenAid.psm1
# Optional: Obtain tokens using EntraTokenAid (other methods are also possible)
$tokens = Invoke-Auth -ClientId 'b26aadf8-566f-4478-926f-589f601d9c74' -RedirectUrl 'urn:ietf:wg:oauth:2.0:oob'
# Run SharePointDumper with refresh support
.\Invoke-SharePointDumper.ps1 -AccessToken $tokens.access_token -RefreshToken $tokens.refresh_token -RefreshClientId 'b26aadf8-566f-4478-926f-589f601d9c74'
Nota: As tentativas de atualização de token NÃO são registradas no log da API.
Parâmetros
Parâmetro
Obrigatório
Tipo
Descrição
AccessToken
Sim
String
Token de acesso OAuth2. Nenhuma autenticação é realizada dentro da ferramenta.
OutputFolder
Não
String
Diretório para o despejo. Padrão: ".". No modo -Resume, deve apontar para uma pasta de despejo existente da execução anterior.
UserAgent
Não
String
UserAgent personalizado para todas as requisições HTTP. Padrão: SharePointDumper
Proxy
Não
String
Proxy HTTP opcional (ex.: http://127.0.0.1:8080).
IncludeExtensions
Não
String[]
Baixar apenas estas extensões.
ExcludeExtensions
Não
String[]
Pular estas extensões (ignorado se IncludeExtensions for usado).
IncludeSites
Não
String[]
Processar apenas sites que correspondam a qualquer um desses valores.
ExcludeSites
Não
String[]
Pular sites que correspondam a qualquer um desses valores.
DisableIpLookup
Não
Switch
Não consultar ifconfig.me para IP público.
RequestDelaySeconds
Não
Double
Atraso base antes de cada requisição HTTP.
Variation
Não
Double
Jitter aleatório adicionado ao atraso base.
MaxFiles
Não
Int
Número máximo de arquivos para baixar. Padrão: sem limite.
MaxTotalSizeMB
Não
Double
Tamanho total máximo de download. Padrão: sem limite.
Resume
Não
Switch
Pula arquivos já baixados. Requer -OutputFolder.
🧾 Estrutura de Saída
Estrutura de diretórios
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/
Logs
Relatório: resumo de alto nível (Report_*.txt)
Log da API: cada requisição HTTP do Graph + SharePoint
(ApiLog_*.csv ou .json)
Execuções de retomada geram:
SharePointDumper_ReportResume_*
SharePointDumper_ApiLogResume_*
⚠️ Erros de Autenticação
401 – Não Autorizado
Token de acesso inválido ou expirado.
403 – Proibido
Token de acesso válido, mas faltam permissões necessárias do Microsoft Graph ou SharePoint.
🔍 Detecção
As atividades do SharePointDumper são registradas em:
Log de Auditoria Unificado (UAL): registra atividade de pesquisa e download do SharePoint.
Logs de Atividade do Graph: registram todas as requisições de enumeração de sites e drives (/organization, /sites, /drives).