You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

复现Azure AD中基于ROPC的恶意Azure CLI登录操作

复现ROPC登录Azure CLI的实操指引

一、Azure CLI中触发ROPC认证的正确方式

Azure CLI不会直接把ROPC作为显式选项展示,但可以通过参数触发,前提是满足前置条件:

  • 测试账号未启用MFA(ROPC不支持MFA,有MFA的话请求直接失败)
  • 租户临时允许该测试账号绕过相关条件访问策略(否则会被拦截)

触发方式有两种:

  1. 直接使用账号密码登录CLI:
    执行命令:

    az login -u <测试用户名> -p <测试密码>
    

    当满足条件时,CLI底层会自动调用ROPC流,此时查看登录日志应该能看到对应Windows Azure Service Management API的记录。

  2. 手动获取管理API令牌后导入CLI:
    如果直接登录没触发,可先通过ROPC请求获取Azure管理平面的令牌,再导入CLI:

    • 用Postman或curl发送ROPC请求,指定资源为https://management.core.windows.net/(对应Windows Azure Service Management API)
    • 获取到access_token后,执行:
      az login --access-token <获取到的令牌>
      az account set --subscription <目标订阅ID>
      

二、调整Postman的ROPC请求以匹配恶意日志资源

你当前Postman请求的资源是Microsoft Graph,是因为默认请求的是Graph的权限,要改成对应Azure管理API的资源:

针对Azure AD v1端点的请求(更匹配旧版ROPC场景)

POST https://login.microsoftonline.com/{租户ID}/oauth2/token
Content-Type: application/x-www-form-urlencoded

client_id=04b07795-8ddb-461a-bbee-02f9e1bf7b46&resource=https://management.core.windows.net/&username=<测试用户名>&password=<测试密码>&grant_type=password

注:04b07795-8ddb-461a-bbee-02f9e1bf7b46是Azure CLI官方的服务主体ID,直接使用即可。

针对Azure AD v2端点的请求

POST https://login.microsoftonline.com/{租户ID}/oauth2/v2.0/token
Content-Type: application/x-www-form-urlencoded

client_id=04b07795-8ddb-461a-bbee-02f9e1bf7b46&scope=https://management.core.windows.net//user_impersonation&username=<测试用户名>&password=<测试密码>&grant_type=password

发送以上请求后,查看Azure AD登录日志,就能看到资源为Windows Azure Service Management API的记录。

三、复现前的必要检查

  • 确认测试账号未启用MFA,且没有被条件访问策略强制要求MFA或其他限制
  • 确认租户中Azure CLI的服务主体(ID:04b07795-8ddb-461a-bbee-02f9e1bf7b46)未被禁用ROPC流(默认是允许的,除非有自定义配置)

内容的提问来源于stack exchange,提问作者sysadmintor

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.02 20:50:23