EntraTrace 是一款防御性安全研究工具,用于记录和识别针对 Microsoft Entra ID 的进攻性工具的可观察行为。
该项目围绕 AzureHound、AADInternals、O365Enum、PingCastle 等工具构建自动知识库,重点关注它们生成的 UserAgent 和 API 痕迹。
🚧 早期开发阶段
该项目正在积极开发中。数据、工具覆盖范围和功能将随时间不断演进。
欢迎贡献、研究、修正以及额外的工具分析。
EntraTrace 关注对防御者有用的信息,包括:
目标是让防御团队更容易理解进攻性工具的行为,并将其转化为可操作的信息。
| 工具 | 唯一 API 数 | 唯一 API 调用数 | UserAgents |
|---|---|---|---|
| aadinternals | 4 | 110 | 18 |
| AzureHound | 2 | 28 | 0 |
| Graphpython | 3 | 119 | 17 |
| GraphRunner | 4 | 67 | 21 |
| GraphSpy | 2 | 38 | 2 |
| MFASweep | 4 | 17 | 11 |
| MicroBurst | 3 | 78 | 0 |
| MSOLSpray | 1 | 1 | 0 |
| o365enum | 1 | 1 | 2 |
| o365spray | 1 | 1 | 2 |
| pingcastle | 3 | 14 | 1 |
| PowerZure | 3 | 29 | 0 |
| ROADtools | 4 | 434 | 7 |
| ropci |
进攻性安全工具经常被用于评估和攻击身份环境。了解这些工具如何与 Entra ID 交互,可以帮助防御者识别其使用、调查可疑活动并提高检测覆盖率。
EntraTrace 旨在弥合进攻性工具研究与防御性安全运营之间的差距。
EntraTrace 可用于:
🤖 EntraTrace 在 AI 的协助下开发。 AI 贯穿于整个开发和研究过程,并由人工对结果进行审查和验证。
该仓库每日更新,但也支持本地部署。要在仓库根目录下使用 Python 本地运行。在运行之前,请使用内置帮助输出确认可用选项。
⚠️ - 在本地运行脚本可能会触发安全警报,因为包含进攻性工具的仓库会被下载到本地,以提取创建档案所需的信息。
# Extract API behavior from a repo or refresh all profile entries
python .\Scripts\ExtractToolBehavior.py --all-profiles --output-dir .\Profiles
# Export tool user agents from YAML profiles into a CSV
python .\Scripts\SummarizeUserAgents.py --profiles-dir .\Profiles --output .\Indicator Lists\UserAgents.csv
SummarizeUserAgents.py 将档案 YAML 文件中的用户代理数据导出为狩猎用 CSV。ExtractToolBehavior.py 在存在时从 Profiles\Tools.txt 读取仓库 URL,否则回退到输出目录中 YAML 档案文件里找到的每个 repository_url。-h 或 --help 运行任一脚本,可查看完整的参数集和行为。有关许可信息,请参阅 LICENSE。
| 3 |
| 15 |
| 0 |
| Stormspotter | 3 | 4 | 0 |
| TeamFiltration | 3 | 62 | 2 |
| TokenSmith | 2 | 8 | 0 |
| TokenTactics | 4 | 8 | 16 |
| TokenTacticsV2 | 4 | 30 | 23 |