Skip to content
KitploitKITPLOIT
工具漏洞利用博客
Log in
提交
工具漏洞利用博客
提交

黑客、渗透测试和网络安全工具,武装您的安全武器库!

Kitploit 是一个黑客、网络安全和渗透测试工具的目录。发现最新的项目更新,查找漏洞、分析系统、自动化测试并加强你的安全。

··订阅源·联系·隐私·© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
SharePointDumper — PowerShell SharePoint 提取与审计工具,适用于红队/蓝队/紫队。通过 Microsoft Graph 枚举用户可访问的所有 SharePoint 站点/驱动器,递归下载文件,并记录每个 Graph 和 SharePoint HTTP 请求,用于 SIEM 关联、检测工程和事件响应测试。 | Kitploit
工具/GitHubGitHub/zh54321/sharepointdumper
防御工具OSINT (开源情报)数据泄露信息收集渗透测试云安全身份验证红队事件响应日志分析
GitHubzh54321/sharepointdumper

SharePointDumper

16719168个月前Kitploit 审核通过

最受欢迎

查看全部 →

发现我们社区最常用的工具。

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

PowerShell SharePoint 提取与审计工具,适用于红队/蓝队/紫队。通过 Microsoft Graph 枚举用户可访问的所有 SharePoint 站点/驱动器,递归下载文件,并记录每个 Graph 和 SharePoint HTTP 请求,用于 SIEM 关联、检测工程和事件响应测试。

查看仓库

SharePointDumper

SharePointDumper 是一个基于 PowerShell 的提取和审计工具,能够枚举用户通过 Microsoft Graph 可访问的 SharePoint 站点,并通过 SharePoint 下载文件。

该工具专为 SOC / DLP 测试、紫队行动以及非复杂的红队评估而设计,因此会生成详细的报告,包括下载的文件以及每次 HTTP 请求(Graph + SharePoint)的记录,便于 SIEM 关联。

该工具不执行身份认证,而是需要已经获取的、具备适当 Microsoft Graph 权限(Sites.Read.All 或 Sites.ReadWrite.All)的 OAuth2 访问令牌。
如果需要获取此类令牌,可以使用 EntraTokenAid(下文包含示例),它简化了可用访问令牌的生成过程。


✨ 功能特性

  • 通过 Microsoft Graph 枚举 SharePoint 站点、驱动器、文件夹和文件
  • 递归转储驱动器和文件夹(使用 SharePoint 预认证 URL)
  • 无需强制外部依赖项(无需 Microsoft Graph PowerShell 模块等)
  • 自定义用户代理(User-Agent)
  • 全局下载限制:最大文件数和最大总大小
  • 站点和文件扩展名的包含/排除过滤
  • 可调整的请求节流(带随机抖动)
  • 可选公共 IP 查询
  • 支持简单的 HTTP 代理
  • 结构化报告,包括:
    • 摘要(持续时间、限制、过滤条件、公共 IP)
    • 已访问的 SharePoint 站点
    • 完整的 HTTP 请求日志(CSV 或 JSON)
  • 可对 SharePoint 下载令牌进行脱敏处理,并提供选项记录未脱敏的令牌
  • 优雅的 Ctrl+C 处理:完成当前文件后停止,并在退出前写入完整报告和 HTTP 日志
  • 恢复模式:重新枚举但跳过已下载的文件
  • 可选的自动访问令牌刷新(需要 EntraTokenAid https://github.com/zh54321/EntraTokenAid.git)

📦 截图

执行过程:
alt text

示例 CSV API 日志(可输出为 CSV 或 JSON): alt text

示例文件下载日志(可输出为 CSV 或 JSON): alt text


📦 安装

克隆仓库

git clone https://github.com/zh54321/SharePointDumper.git
cd SharePointDumper

🔑 要求

SharePointDumper 需要一个有效的 Microsoft Graph 访问令牌,并具有委派权限来枚举站点和文件:

  • Sites.Read.All 或
  • Sites.ReadWrite.All

此外,OAuth 客户端必须被允许调用 SharePoint API。

超过 23 个 Microsoft 第一方应用程序已经预先同意 Sites.Read… 权限。它们可以从 SharePoint 下载文件,并且无需额外的租户配置即可用于获取有效令牌。

可用的第一方客户端
应用名称客户端 IDFOCIEntraTokenAid 认证命令
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'

令牌有效期建议

如果可能,请使用启用 CAE 的访问令牌,其有效期最长可达 24 小时,可减少长时间转储期间的干扰。

使用 EntraTokenAid 获取令牌

你可以使用 EntraTokenAid 通过 PowerShell 获取合适的访问令牌
(默认请求 CAE 令牌):

# 克隆模块
git clone https://github.com/zh54321/EntraTokenAid.git
Import-Module EntraTokenAid/EntraTokenAid.psm1

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

# 可选:存储到与以下示例兼容的变量中
$AccessToken = $tokens.access_token

🚀 使用

基本用法

.\Invoke-SharePointDumper.ps1 -AccessToken $accesstoken -UserAgent "Not SharePointDumper"

过滤站点

.\Invoke-SharePointDumper.ps1 -AccessToken $accesstoken -IncludeSites "Finance","Projects"
下载工具