M365Pwned - 基于 Graph API 的微软 365 红队图形化攻击工具包发布

代号为 OtterHacker 的红队研究人员公开发布了 M365Pwned,这是一套 WinForms 图形界面工具,专为通过应用级 OAuth 令牌(无需用户交互)枚举、搜索和窃取 Microsoft 365 环境数据而设计。

工具架构与认证机制

该工具包完全基于 PowerShell 5.1 构建,利用 Microsoft Graph API,为针对企业 M365 租户的渗透测试人员和攻击模拟操作人员提供了强大的入侵后攻击能力。

工具包包含两个组件:

  • MailPwned-GUI.ps1:针对 Exchange Online 和 Outlook
  • SharePwned-GUI.ps1:针对 SharePoint 和 OneDrive

两款工具均通过注册的 Azure AD 应用程序运行(需管理员同意的应用程序权限),支持三种认证方式:客户端密钥、证书指纹和原始访问令牌(pass-the-token)。

工具 目标 功能
MailPwned-GUI.ps1 Exchange Online/Outlook 浏览邮箱、搜索邮件、下载附件、发送仿冒邮件
SharePwned-GUI.ps1 SharePoint/OneDrive 浏览站点和驱动器、搜索文件、预览和下载文档

MailPwned 核心功能

MailPwned 提供全功能 WinForms 界面,支持大规模操作 Exchange Online。认证后,操作人员可以:

  • 使用User.Read.All枚举所有租户邮箱
  • 在所有邮箱中执行全局关键词搜索
  • 阅读完整 HTML 渲染的电子邮件(支持内联图片预览,无需外部请求)

该工具原生支持批量附件下载、仿冒攻击邮件撰写和 CSV 导出功能,并突破了 Graph API 的关键限制:使用message实体类型的/v1.0/search/query接口不支持应用程序权限。

技术实现与红队应用场景

MailPwned 通过逐用户邮箱枚举和限定范围的单邮箱搜索技术实现突破,这种技术不仅功能完善,当从 OSINT 预加载 UPN 列表时还能产生更低的审计足迹。

所需关键权限包括:

  • Mail.Read
  • User.Read.All
  • (可选)Mail.ReadWrite(用于发送和删除操作)

作者强调的红队应用场景包括:

  • 凭证收集(搜索_password_、VPN、_secret_等关键词)
  • 通过线程劫持进行横向钓鱼
  • HR 和投资者情报收集
  • 批量附件窃取

SharePwned 文件存储渗透能力

SharePwned 采用与 MailPwned 类似的方法针对文件存储环境。操作人员可以:

  • 枚举租户内所有 SharePoint 站点
  • 浏览文档库
  • 通过/v1.0/search/query接口(使用driveItem实体)执行全文文件搜索

Sites.Read.All不可用时,工具会回退到使用Files.Read.All权限执行单驱动器搜索模式。

权限 用途
Sites.Read.All 枚举所有 SharePoint 站点和驱动器
Files.Read.All 从任意驱动器读取和下载文件
User.Read.All (可选)按用户枚举 OneDrive 驱动器

文件预览支持内联文本提取,工具还包含扩展名感知图标和实时彩色编码的 API 日志面板用于操作调试。

多区域支持与安全防护建议

两款工具均支持通过Prefer: exchange.region=<region>标头选择欧洲、北美、亚太等主权云和 GCC 云区域,确保非默认租户的数据中心路由正确。

从操作安全(OPSEC)角度看:

  • 所有请求直接路由至https://graph.microsoft.com
  • Graph 审计日志会记录在注册应用程序身份下的访问

安全团队应采取以下防护措施:

  • 审计 Azure AD 应用程序权限
  • 监控异常的Mail.ReadSites.Read.All应用级访问
  • 审查非用户交互式服务主体的授权许可

注:Ethical-Kaizoku 开发的 SharePwned CLI 版本已在 GitHub 上单独发布。

相关推荐
qqacj21 小时前
MSSQL2022的一个错误:未在本地计算机上注册“Microsoft.ACE.OLEDB.16.0”提供程序
数据库·microsoft
安逸sgr1 天前
【Agent 架构设计】记忆系统深度解析:从 RAG 到 Hindsight 的演进之路!
人工智能·microsoft·大模型·claude·cursor
测试人社区—66792 天前
当代码面临道德选择:VR如何为AI伦理决策注入“人性压力”
网络·人工智能·python·microsoft·vr·azure
卤炖阑尾炎2 天前
Web 技术基础与 Nginx 网站环境部署全解析
前端·nginx·microsoft
宝桥南山2 天前
GitHub Copilot - 尝试一下Plan mode
microsoft·微软·github·aigc·copilot·ai编程
专注VB编程开发20年2 天前
Windows 依赖「注册表 + API+COM」的模式,linux全是读文件
linux·microsoft·.net
MarkHD2 天前
增强型技术集成——Day 55-58 邮件自动化实战:从发送附件到智能处理收件箱
运维·microsoft·自动化
忧郁的橙子.2 天前
12- - AI 应用开发新范式 MCP 技术详解
人工智能·microsoft·mcp
IT 行者2 天前
每天了解几个MCP SERVER:Slack
人工智能·microsoft·mcp