EntraGoat 从零上手教程:3 步搭好你自己的 Entra ID 提权演练靶场 EntraGoat 从零上手教程3 步搭好你自己的 Entra ID 提权演练靶场【免费下载链接】EntraGoatA deliberately vulnerable Microsoft Entra ID environment. Learn identity security through hands-on, realistic attack challenges.项目地址: https://gitcode.com/GitHub_Trending/en/EntraGoat学 Microsoft Entra ID 身份安全的人大多会卡在两个地方手上没有一个可以放心乱搞的真实漏洞环境或者怕把租户弄脏而不敢动手。EntraGoat 就是为此而生的一个故意存在漏洞的 Microsoft Entra ID 环境——它把常见的身份配置错误和提权路径直接部署进你的测试租户然后让你在黑盒 CTF 的模式下从一个低权限账号一路打穿到 Global Admin。 开始前确认你手上有这 4 样东西不用安装任何重东西先把下面这张清单过一遍缺哪个补哪个需要的东西说明一个 Entra ID 测试/试用租户务必是专用测试租户千万别指向生产租户该租户的 Global Administrator 权限部署脚本要创建用户、应用和角色分配普通权限跑不动Windows PowerShell 5.1 或 7只有跑 PowerShell GUI 才强制要求 WindowsWeb UI 和手动脚本不限系统Microsoft Graph PowerShell SDK主流程第二步会教你装Node.js 只有走 Web UI 时才需要 主线操作三步看到可用界面第一步克隆代码把仓库拉到本地后面所有脚本、界面、清理工具都在这里面git clone https://gitcode.com/GitHub_Trending/en/EntraGoat cd EntraGoat第二步安装 Microsoft Graph SDKEntraGoat 的所有场景脚本都靠它调用 Microsoft Graph API 去改租户配置所以必须先装好Install-Module Microsoft.Graph -Scope CurrentUser -Force这里有个高频坑如果Install-Module直接报错把 PowerShell 以管理员身份重启一次或者确认命令里带了-Scope CurrentUser。如果你机器上已经装过旧版本换成Update-Module Microsoft.Graph升到最新否则场景脚本可能因模块缺少新 cmdlet 而中途挂掉。第三步选一个入口启动官方给了三种用法按你的环境二选一即可不必全装方式 APowerShell GUI官方推荐免 Node.js.\Start-EntraGoat.ps1会弹出一个深色 WPF 窗口6 个挑战场景以卡片形式列出点开任意一张能看到完整描述、起始凭证、可展开的提示还能直接在界面里点按钮执行 setup 和 cleanup 脚本。界面支持CtrlPlus/CtrlMinus缩放、Ctrl0复位。坑点这个 GUI 是 WPF 应用只能在 Windows 上跑。如果你在 macOS 或 Linux 上执行会直接抛 WPF 相关错误——这不是 bug属于设计限制请改用方式 B 或下面的手动方式。方式 BWeb UI需要 Node.js 和 npmcd frontend npm install npm start装完后浏览器打开http://localhost:3000点任意挑战卡片查看详情然后回到你的终端里手动执行对应的 setup 脚本脚本位于frontend/public/scripts/challenge1/等目录按挑战编号组织。方式 C纯手动跑脚本什么界面都不要cd scenarios .\EntraGoat-Scenario1-Setup.ps1适合只想在纯终端环境里干活的场景。 玩一个挑战部署 → 打穿 → 拿旗 → 清理的四步循环每个场景都由四个固定部分组成部署易受攻击配置的setup 脚本在 scenarios/ 目录、还原现场的cleanup 脚本在 cleanups/ 目录、带注释的solution 脚本在 solutions/ 目录含剧透别提前看以及一个隐藏的 flag。完整一轮的流程是这样的跑 setup脚本会在你的租户里创建一批看起来正常但有漏洞的用户、应用、组或角色分配例如场景 1 故意让低权限用户成为高危服务主体的 Owner。用起始凭证登录GUI 或终端输出会给你一个低权限账号。你的任务就是从它出发做枚举找到那条提权链把权限打到 Global Admin。取旗flag 一般藏在管理员用户的extensionAttribute1属性里具体位置以挑战页说明为准拿到后在 GUI 里提交即可标记完成。跑 cleanup把该场景创建的对象全部清走租户回到干净状态。六个场景难度逐级递增服务主体所有权滥用、App-only Graph 权限、组成员关系链、PIM 滥用、Administrative Unit 逃逸、证书认证滥用。建议从场景 1、2、3Beginner 档打起感受一下攻击路径再上后面两个 Advanced 场景比如场景 5 这种多段式提权链坑点一setup 中途失败或者提示对象已存在。九成是上一次没清干净租户里还残留着同名应用或用户。解决办法是先执行对应场景的清理脚本比如 EntraGoat-Scenario1-Cleanup.ps1等它跑完再重试 setup不要反复裸跑 setup 脚本硬撞。坑点二脚本报Connect-MgGraph认证错误。说明当前会话和租户的连接状态不对。手动先执行一次Connect-MgGraph -Scopes Directory.ReadWrite.All确认能连通、且登录的是有 Global Admin 权限的那个账号再回去重跑 setup。 进阶重置进度、控制节奏与安全边界进度重置。GUI 的完成状态存在%APPDATA%\EntraGoat\state.jsonWeb UI 独立维护自己的状态。想把全部挑战恢复成未完成用.\Start-EntraGoat.ps1 -Reset节奏控制。一次只玩一个场景做完就清理再做下一个。多个场景的漏洞对象同时挂在租户里轻则对象命名互相干扰、cleanup 误伤重则把 API 调用频率打高触发限流。跑之前顺带看一眼租户配额免得建到一半卡住。安全边界重要。EntraGoat 仅限教育用途和经过授权的测试。部署前再三确认Connect-MgGraph连的是专用测试租户而不是公司生产租户在授权环境之外使用、或因误用产生的后果官方在 LICENSE 里已经写明了免责条款。✅ 下一步整个上手过程其实就一句话克隆 → 装 SDK → 跑一个入口脚本。建议你现在就把场景 1 的 setup 跑起来从那个低权限用户拥有高危服务主体的经典坑开始练手卡住了就翻 docs/challenges.md 里每个场景的玩法说明或者 docs/getting-started.md 的排障表。【免费下载链接】EntraGoatA deliberately vulnerable Microsoft Entra ID environment. Learn identity security through hands-on, realistic attack challenges.项目地址: https://gitcode.com/GitHub_Trending/en/EntraGoat创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考