Okta Security

学习和练习 AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) 学习和练习 GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)

支持 HackTricks

基本信息

Okta, Inc. 在身份和访问管理领域以其基于云的软件解决方案而闻名。这些解决方案旨在简化和保护各种现代应用程序的用户身份验证。它们不仅适用于希望保护敏感数据的公司,也适用于希望将身份控制集成到应用程序、网络服务和设备中的开发人员。

Okta 的旗舰产品是 Okta Identity Cloud。该平台包含一系列产品,包括但不限于:

  • Single Sign-On (SSO): 通过允许在多个应用程序中使用一组登录凭据来简化用户访问。

  • Multi-Factor Authentication (MFA): 通过要求多种形式的验证来增强安全性。

  • Lifecycle Management: 自动化用户帐户的创建、更新和停用过程。

  • Universal Directory: 使用户、组和设备的集中管理成为可能。

  • API Access Management: 保护和管理对 API 的访问。

这些服务共同旨在加强数据保护和简化用户访问,增强安全性和便利性。Okta 解决方案的多功能性使其在各个行业中广受欢迎,对大型企业、小公司和个人开发者都有益。截至 2021 年 9 月的最后更新,Okta 被公认为身份和访问管理 (IAM) 领域的知名实体。

Okta 的主要目标是为不同用户和组配置对外部应用程序的访问。如果你设法在 Okta 环境中获得管理员权限,你很可能能够攻破公司使用的所有其他平台

要对 Okta 环境进行安全审查,你应该要求管理员只读访问权限

概要

用户(可以存储在 Okta 中,从配置的Identity Providers登录或通过Active Directory或 LDAP 进行身份验证)。 这些用户可以在中。 还有认证器:不同的认证选项,如密码,以及几种 2FA,如 WebAuthn、电子邮件、电话、okta verify(它们可以启用或禁用)...

然后,有与 Okta 同步的应用程序。每个应用程序将有一些与 Okta 的映射以共享信息(如电子邮件地址、名字...)。此外,每个应用程序必须在一个认证策略中,该策略指示用户访问应用程序所需的认证器

最强大的角色是超级管理员

如果攻击者以管理员权限攻破 Okta,所有信任 Okta 的应用程序很可能会被攻破

攻击

定位 Okta 门户

通常公司的门户将位于 companyname.okta.com。如果不是,尝试简单的变体 companyname. 如果找不到,也可能该组织有一个指向Okta 门户CNAME 记录,如 okta.companyname.com

通过 Kerberos 登录 Okta

如果 companyname.kerberos.okta.com 是活跃的,Kerberos 用于 Okta 访问,通常绕过 Windows 用户的 MFA。要在 AD 中找到 Kerberos 认证的 Okta 用户,运行 getST.py 并使用适当的参数。获得 AD 用户票证后,使用 Rubeus 或 Mimikatz 等工具将其注入到受控主机,确保 clientname.kerberos.okta.com 在 Internet 选项的“内联网”区域。访问特定 URL 应返回 JSON "OK" 响应,表示 Kerberos 票证被接受,并授予 Okta 仪表板的访问权限。

攻破具有委派 SPN 的 Okta 服务帐户可以进行 Silver Ticket 攻击。然而,Okta 使用 AES 进行票证加密,需要拥有 AES 密钥或明文密码。使用 ticketer.py 生成受害用户的票证并通过浏览器传递以认证 Okta。

查看攻击 https://trustedsec.com/blog/okta-for-red-teamers

劫持 Okta AD Agent

此技术涉及访问服务器上的 Okta AD Agent,该代理同步用户并处理身份验证。通过检查和解密 OktaAgentService.exe.config 中的配置,特别是使用 DPAPI 的 AgentToken,攻击者可能拦截和操纵身份验证数据。这不仅允许监控捕获 Okta 身份验证过程中明文的用户凭据,还允许响应身份验证尝试,从而实现未经授权的访问或通过 Okta 提供通用身份验证(类似于“万能钥匙”)。

查看攻击 https://trustedsec.com/blog/okta-for-red-teamers

作为管理员劫持 AD

此技术涉及通过首先获取 OAuth 代码,然后请求 API 令牌来劫持 Okta AD Agent。该令牌与 AD 域相关联,并命名一个连接器以建立假 AD 代理。初始化允许代理处理身份验证尝试,通过 Okta API 捕获凭据。自动化工具可用于简化此过程,提供在 Okta 环境中拦截和处理身份验证数据的无缝方法。

查看攻击 https://trustedsec.com/blog/okta-for-red-teamers

Okta 假 SAML 提供商

查看攻击 https://trustedsec.com/blog/okta-for-red-teamers

该技术涉及部署假 SAML 提供商。通过使用特权帐户在 Okta 框架内集成外部身份提供商 (IdP),攻击者可以控制 IdP,随意批准任何身份验证请求。该过程包括在 Okta 中设置 SAML 2.0 IdP,操纵 IdP 单点登录 URL 以通过本地主机文件重定向,生成自签名证书,并配置 Okta 设置以匹配用户名或电子邮件。成功执行这些步骤允许以任何 Okta 用户身份进行身份验证,绕过单个用户凭据的需求,显著提升访问控制,且可能不被察觉。

使用 Evilgnix 钓鱼 Okta 门户

这篇博客文章 中解释了如何准备针对 Okta 门户的钓鱼活动。

同事冒充攻击

每个用户可以拥有和修改的属性(如电子邮件或名字)可以在 Okta 中配置。如果一个应用程序****信任用户可以修改属性作为 ID,他将能够冒充该平台上的其他用户

因此,如果应用程序信任字段 userName,你可能无法更改它(因为通常无法更改该字段),但如果它信任例如 primaryEmail,你可能能够将其更改为同事的电子邮件地址并冒充它(你需要访问该电子邮件并接受更改)。

请注意,这种冒充取决于每个应用程序的配置方式。只有信任你修改的字段并接受更新的应用程序会被攻破。 因此,如果存在,该应用程序应启用此字段:

我还见过其他没有在 Okta 设置中显示该字段的应用程序(最终不同的应用程序配置不同)。

找出你是否可以在每个应用程序上冒充任何人的最佳方法是尝试一下!

规避行为检测策略

在遇到之前,Okta 中的行为检测策略可能是未知的,但可以通过直接针对 Okta 应用程序绕过它们,避免主 Okta 仪表板。使用 Okta 访问令牌,在特定应用程序的 Okta URL而不是主登录页面重放令牌。

关键建议包括:

  • 避免使用流行的匿名代理和 VPN 服务重放捕获的访问令牌。

  • 确保客户端和重放的访问令牌之间的用户代理字符串一致

  • 避免从同一 IP 地址重放不同用户的令牌。

  • 重放令牌时对 Okta 仪表板保持谨慎。

  • 如果知道受害公司 IP 地址,限制流量到这些 IP 或其范围,阻止所有其他流量。

Okta 加固

Okta 有很多可能的配置,在此页面中你将找到如何审查它们以确保它们尽可能安全:

Okta Hardening

参考资料

学习和练习 AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) 学习和练习 GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)

支持 HackTricks

Last updated