________ _________
/ / by RedByte1337 __ / /
/ _____/___________ ______ | |__ / _____/_____ ______
/ \ __\_ __ \__ \ \____ \| | \ \_____ \\____ \ | |
\ \_\ \ | \/ __ \| |_> | \ \/ \ |_> \___ |
\______ /__| |____ | __/|___| /_______ / ___/ ____|
\/ \/|__| \/ \/|__| \/
以下内容介绍了使用 pipx 的推荐安装流程,以避免任何依赖冲突。
GraphSpy 可在所有操作系统上运行,不过主要是在 Linux 和 Windows 上进行测试。
如需其他安装选项和详细说明,请查看 wiki 上的安装页面。
# Install pipx (skip this if you already have it)
apt install pipx
pipx ensurepath
# Install the latest version of GraphSpy from pypi
pipx install graphspy
安装完成后,可以在系统的任意位置使用 graphspy 命令启动该应用程序。
在不带任何命令行参数的情况下运行 GraphSpy,将启动 GraphSpy,并默认使其在 http://127.0.0.1:5000 上可用。
graphspy
现在只需在您常用的浏览器中打开 http://127.0.0.1:5000 即可开始使用!
使用 -i 和 -p 参数可以修改要监听的接口和端口。
# Run GraphSpy on http://192.168.0.10
graphspy -i 192.168.0.10 -p 80
# Run GraphSpy on port 8080 on all interfaces
graphspy -i 0.0.0.0 -p 8080
有关详细说明和其他命令行参数,请参阅 wiki 上的执行页面。
请参阅 GitHub Wiki 获取完整的使用详情。
如需快速了解功能概览,请查看官方发布博客文章。
如果您正在为 GraphSpy 做贡献或修改内部实现,请从这里开始:
在一个位置存储多个用户和作用域的访问令牌和刷新令牌。


可以轻松地在它们之间切换,或从任何页面请求新的访问令牌。

可以轻松地一次创建并轮询多个设备代码。如果用户使用设备代码进行了身份验证,GraphSpy 将自动把访问令牌和刷新令牌存储到其数据库中。

配置在设备代码身份验证成功后立即自动执行的操作。

查看、修改和创建与用户账户关联的 MFA 方法。

可以通过 GraphSpy 添加以下 MFA 方法以建立持久化:

在 GraphSpy 中请求、导入或使用主刷新令牌。
这些 PRT 比常规刷新令牌强大得多,因为它们不绑定到某个特定应用程序,而是可以用来以用户身份获取任何应用程序/作用域的访问令牌(包括 FOCI 和非 FOCI)。

此外,这些 PRT 令牌可用于生成 PRT Cookie,这些 Cookie 可以直接导入浏览器,为任何与 Entra ID SSO 集成的 Web 应用程序提供完整的交互式访问。

在 GraphSpy 中为用户与设备的组合注册 Windows Hello 企业版 (whfb) 密钥,或从其他工具或受感染设备导入这些密钥。
这些 WinHello 密钥可用于为用户生成新的主刷新令牌,即使在密码重置之后也是如此,因此它们是非常强大的账户持久化手段!

通过直观的文件资源管理器界面,浏览用户 OneDrive 或任何可访问的 SharePoint 站点中的文件和文件夹。
当然,也可以直接下载文件,或上传新文件。

此外,还可以列出用户最近访问的文件或共享给用户的文件。

只需一个 Outlook 访问令牌 (FOCI),即可单击打开用户的 Outlook 网页邮件!


或者使用 Outlook Graph 模块,仅凭 MS Graph API 的访问令牌即可列出、阅读、搜索、删除、回复或发送电子邮件!

直接在 GraphSpy 中编写完全 HTML 格式的电子邮件,并包含图片和附件。

使用 Microsoft Teams 模块,通过 skype API (https://api.spaces.skype.com/) 的 FOCI 访问令牌读取和发送消息。

使用 Microsoft Search API 在所有 Microsoft 365 应用程序中搜索关键词。
例如,可以使用它搜索任何包含 "password"、"secret" 等关键词的文件或电子邮件……

使用 GraphSpy 中存储的访问令牌,向任何端点执行自定义 API 请求。

带有变量的自定义请求模板可以存储在数据库中,以便轻松复用常见的自定义 API 请求。

使用 Microsoft Graph API 列出所有 Entra ID 用户及其属性。

查看用户的更多详细信息,例如其组成员身份、角色分配、设备、应用角色和 API 权限。

GraphSpy 支持多个数据库。当同时处理多个评估时,这有助于保持令牌和设备代码的有序管理。

默认使用深色模式,也可以切换到浅色模式。
请参阅 GitHub Wiki 上的版本发布说明页面
您或您的组织是否希望作为本项目的重要赞助商在此展示,甚至出现在 GraphSpy 本身中?还是您只是喜欢 GraphSpy,想要支持我的工作?
请查看我的赞助页面。
如果您暂时没有能力赞助,但仍想表达感谢,欢迎给项目加一颗星。 ⭐
创建 GraphSpy 的主要动机是,当时缺乏一种易用的方式,仅凭一个访问令牌即可针对 Office365 应用程序(如 Outlook、Microsoft Teams、OneDrive、SharePoint 等)执行入侵后的操作。
虽然已有一些提供基本功能的命令行工具,但它们都无法与原始应用程序提供的直观交互体验(例如 OneDrive 和 SharePoint 的文件资源管理器式界面)相媲美。
然而,此前已有无数人完成了大量研究(特别是关于设备代码钓鱼的研究,这种钓鱼最初催生了对此类工具的需求)。