Az - OAuth Apps Phishing
Last updated
Last updated
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Azure 应用程序 配置了用户同意应用程序时将能够使用的权限(例如枚举目录、访问文件或执行其他操作)。请注意,应用程序将代表用户进行操作,因此即使应用程序可能请求管理权限,如果 同意的用户没有该权限,应用程序 将无法执行管理操作。
默认情况下,任何 用户都可以给应用程序提供同意,尽管可以配置为用户只能同意 来自经过验证的发布者的特定权限的应用程序,甚至 移除用户同意应用程序的权限。
如果用户无法同意,像 GA
、Application Administrator
或 Cloud Application
Administrator
的 管理员 可以 同意用户将能够使用的应用程序。
此外,如果用户只能同意使用 低风险 权限的应用程序,这些权限默认是 openid、profile、email、User.Read 和 offline_access,尽管可以 向此列表添加更多。
如果他们可以同意所有应用程序,他们可以同意所有应用程序。
未认证:从外部帐户创建一个具有 低风险权限 User.Read
和 User.ReadBasic.All
的应用程序,例如,钓鱼用户,您将能够访问目录信息。
这要求被钓鱼的用户 能够接受来自外部租户的 OAuth 应用程序
如果被钓鱼的用户是可以 同意任何应用程序的任何权限 的某些管理员,则该应用程序也可以 请求特权权限
已认证:在拥有足够权限的主体被攻陷后,在帐户内创建一个应用程序 并 钓鱼 一些 特权 用户,这些用户可以接受特权 OAuth 权限。
在这种情况下,您已经可以访问目录的信息,因此权限 User.ReadBasic.All
不再有趣。
您可能对 需要管理员授予的权限 感兴趣,因为普通用户无法给 OAuth 应用程序任何权限,这就是为什么您需要 仅钓鱼这些用户(稍后会详细介绍哪些角色/权限授予此特权)。
请注意,您需要从租户内的用户执行此命令,您无法从外部租户找到此配置。以下 CLI 可以帮助您了解用户权限:
用户可以对所有应用程序进行同意:如果在 permissionGrantPoliciesAssigned
中可以找到:ManagePermissionGrantsForSelf.microsoft-user-default-legacy
,则用户可以接受每个应用程序。
用户可以对来自经过验证的发布者或您组织的应用程序进行同意,但仅限于您选择的权限:如果在 permissionGrantPoliciesAssigned
中可以找到:ManagePermissionGrantsForOwnedResource.microsoft-dynamically-managed-permissions-for-team
,则用户可以接受每个应用程序。
禁用用户同意:如果在 permissionGrantPoliciesAssigned
中只能找到:ManagePermissionGrantsForOwnedResource.microsoft-dynamically-managed-permissions-for-chat
和 ManagePermissionGrantsForOwnedResource.microsoft-dynamically-managed-permissions-for-team
,则用户无法进行同意。
可以在以下位置找到每个注释策略的含义:
检查被视为应用程序管理员的用户(可以接受新应用程序):
攻击涉及几个步骤,针对一个通用公司。以下是可能的展开方式:
域名注册和应用托管:攻击者注册一个类似于可信网站的域名,例如 "safedomainlogin.com"。在该域名下,创建一个子域名(例如 "companyname.safedomainlogin.com")来托管一个旨在捕获授权代码和请求访问令牌的应用程序。
在 Azure AD 中注册应用:攻击者随后在其 Azure AD 租户中注册一个多租户应用,命名为目标公司的名称,以显得合法。他们将应用的重定向 URL 配置为指向托管恶意应用的子域名。
设置权限:攻击者为应用设置各种 API 权限(例如 Mail.Read
、Notes.Read.All
、Files.ReadWrite.All
、User.ReadBasic.All
、User.Read
)。一旦用户授予这些权限,攻击者就可以代表用户提取敏感信息。
分发恶意链接:攻击者制作一个包含恶意应用客户端 ID 的链接,并与目标用户分享,诱使他们授予权限。
注册一个 新应用。如果您使用的是被攻击目录中的用户,则只能针对当前目录,或者如果这是外部攻击,则可以针对任何目录(如以下图像所示)。
还要将 重定向 URI 设置为您希望接收代码以获取令牌的预期 URL(默认值为 http://localhost:8000/callback
)。
然后创建一个应用密钥:
选择 API 权限(例如 Mail.Read
、Notes.Read.All
、Files.ReadWrite.All
、User.ReadBasic.All
、User.Read
)
执行网页 (azure_oauth_phishing_example),请求权限:
将 URL 发送给受害者
在这种情况下 http://localhost:8000
受害者 需要 接受提示:
使用 访问令牌访问请求的权限:
根据请求的权限,您可能能够访问租户的不同数据(列出用户、组...或甚至修改设置)和用户的信息(文件、笔记、电子邮件...)。然后,您可以使用这些权限执行这些操作。
查看页面的应用程序和服务主体部分:
学习和实践 AWS 黑客攻击:HackTricks 培训 AWS 红队专家 (ARTE) 学习和实践 GCP 黑客攻击:HackTricks 培训 GCP 红队专家 (GRTE)