dirkjanm/ROADtools
GitHub: dirkjanm/ROADtools
ROADtools 是一套用于 Azure AD/Entra ID 环境信息探索、数据导出分析和 Token 交换操作的综合安全工具集。
Stars: 2672 | Forks: 386
# ROADtools
*(**R**ogue **O**ffice 365 and **A**zure (active) **D**irectory tools)*


ROADtools 是一个用于与 Azure AD 交互的框架。它由一个包含通用组件的库(roadlib)、Azure AD 探索工具 ROADrecon 以及 ROADtools Token eXchange (roadtx) 工具组成。
## ROADlib

ROADlib 是一个库,可用于向 Azure AD 进行身份验证,或用于构建与包含 ROADrecon 数据的数据库集成的工具。ROADlib 中的数据库模型是根据 Azure AD 内部 API 的 metadata 定义自动生成的。ROADlib 位于 ROADtools namespace 中,因此要在你的脚本中导入它,请使用 `from roadtools.roadlib import X`
## ROADrecon

[](https://dev.azure.com/dirkjanm/ROADtools/_build/latest?definitionId=19&branchName=master)
ROADrecon 是一款从红队和蓝队视角探索 Azure AD 信息的工具。简而言之,它的功能如下:
* 使用自动生成的 metadata 模型在磁盘上创建由 SQLAlchemy 支持的数据库。
* 在 Python 中使用异步 HTTP 调用,将 Azure AD graph 中的所有可用信息 dump 到此数据库中。
* 提供插件来查询此数据库并将其输出为有用的格式。
* 提供一个基于 Angular 构建的广泛界面,可直接查询离线数据库进行分析。
ROADrecon 使用了 `async` Python 特性,仅兼容 Python 3.10 及更高版本(开发环境使用 Python 3.11,测试环境最高运行至 Python 3.14 版本)。
### 安装说明
安装 ROADrecon 有多种方式:
**使用 PyPi 上发布的版本**
稳定版本可以通过 `pip install roadrecon` 进行安装。这会自动将 `roadrecon` 命令添加到你的 PATH 中。
**使用 GitHub 上的版本**
每次提交到 master 的代码都会通过 Azure Pipelines 自动构建为发布版本。这确保了你可以安装最新版本的 GUI,而无需安装 `npm` 及其所有依赖项。你可以从 [Azure Pipelines artifacts](https://dev.azure.com/dirkjanm/ROADtools/_build/latest?definitionId=19&branchName=master) 下载 `roadlib` 和 `roadrecon` 的构建文件(点击“1 Published”按钮)。构建输出文件存储在 `ROADtools.zip` 中。你可以直接使用 pip 安装 `.whl` 或 `.tar.gz` 文件,或者将它们全部解压并按正确的顺序安装文件夹(先安装 `roadlib`):
```
pip install roadlib/
pip install roadrecon/
```
你也可以使用 `pip install -e roadlib/` 以开发模式安装它们。
**开发前端**
如果你想对 Angular 前端进行修改,需要安装 `node` 和 `npm`。然后从 git 安装相关组件:
```
git clone https://github.com/dirkjanm/roadtools.git
pip install -e roadlib/
pip install -e roadrecon/
cd roadrecon/frontend/
npm install
```
你可以在 `roadrecon/frontend/` 目录下使用 `npm start` 或通过 Angular CLI 运行 `ng serve` 来启动 Angular 前端。要将 JavaScript 文件构建到 ROADrecon 的 `dist_gui` 目录中,请运行 `npm run build`。
### 使用 ROADrecon
请参阅 [此 Wiki 页面](https://github.com/dirkjanm/ROADtools/wiki/Getting-started-with-ROADrecon) 了解如何开始。
## ROADtools Token eXchange (roadtx)

[](https://dev.azure.com/dirkjanm/ROADtools/_build/latest?definitionId=19&branchName=master)
roadtx 是一款用于交换和使用不同类型的 Azure AD 颁发 token 的工具。它支持多种不同的身份验证流程、设备注册以及 PRT 相关操作。有关该工具的概述,请参阅 [roadtx Wiki](https://github.com/dirkjanm/ROADtools/wiki/ROADtools-Token-eXchange-(roadtx))。
### 安装说明
安装 roadtx 有多种方式。请注意,roadtx 需要 Python 3.10 或更高版本。
**使用 PyPi 上发布的版本**
稳定版本可以通过 `pip install roadtx` 进行安装。这会自动将 `roadtx` 命令添加到你的 PATH 中。
**使用 GitHub 上的版本**
你可以 clone 此代码仓库,然后依次安装 `roadlib` 和 `roadtx`,以确保你拥有最新版本的工具和库:
```
pip install roadlib/
pip install roadtx/
```
你也可以使用 `pip install -e roadtx/` 以开发模式安装它们。
### 使用 roadtx
有关如何使用 roadtx,请参阅 [Wiki](https://github.com/dirkjanm/ROADtools/wiki/ROADtools-Token-eXchange-(roadtx))。另请参阅[发布博客](https://dirkjanm.io/introducing-roadtools-token-exchange-roadtx/)。
标签:Azure AD, Python, Web报告查看器, 无后门, 暗色界面, 身份与访问管理, 逆向工具