Okta Security

Support HackTricks

Información Básica

Okta, Inc. es reconocida en el sector de gestión de identidades y accesos por sus soluciones de software basadas en la nube. Estas soluciones están diseñadas para simplificar y asegurar la autenticación de usuarios en diversas aplicaciones modernas. Atienden no solo a empresas que buscan proteger sus datos sensibles, sino también a desarrolladores interesados en integrar controles de identidad en aplicaciones, servicios web y dispositivos.

La oferta principal de Okta es la Okta Identity Cloud. Esta plataforma incluye una suite de productos, entre los que se encuentran:

  • Single Sign-On (SSO): Simplifica el acceso de los usuarios permitiendo un conjunto de credenciales de inicio de sesión para múltiples aplicaciones.

  • Multi-Factor Authentication (MFA): Mejora la seguridad al requerir múltiples formas de verificación.

  • Lifecycle Management: Automatiza los procesos de creación, actualización y desactivación de cuentas de usuario.

  • Universal Directory: Permite la gestión centralizada de usuarios, grupos y dispositivos.

  • API Access Management: Asegura y gestiona el acceso a APIs.

Estos servicios en conjunto buscan fortalecer la protección de datos y simplificar el acceso de los usuarios, mejorando tanto la seguridad como la conveniencia. La versatilidad de las soluciones de Okta las hace una opción popular en diversas industrias, siendo beneficiosas para grandes empresas, pequeñas compañías y desarrolladores individuales por igual. Hasta la última actualización en septiembre de 2021, Okta es reconocida como una entidad prominente en el ámbito de la Gestión de Identidades y Accesos (IAM).

El objetivo principal de Okta es configurar el acceso a diferentes usuarios y grupos a aplicaciones externas. Si logras comprometer privilegios de administrador en un entorno de Okta, es muy probable que puedas comprometer todas las demás plataformas que la empresa está utilizando.

Para realizar una revisión de seguridad de un entorno de Okta, deberías solicitar acceso de solo lectura de administrador.

Resumen

Hay usuarios (que pueden estar almacenados en Okta, registrados desde Identity Providers configurados o autenticados vía Active Directory o LDAP). Estos usuarios pueden estar dentro de grupos. También hay autenticadores: diferentes opciones para autenticar como contraseña, y varios 2FA como WebAuthn, email, teléfono, okta verify (pueden estar habilitados o deshabilitados)...

Luego, hay aplicaciones sincronizadas con Okta. Cada aplicación tendrá algún mapeo con Okta para compartir información (como direcciones de correo electrónico, nombres...). Además, cada aplicación debe estar dentro de una Política de Autenticación, que indica los autenticadores necesarios para que un usuario acceda a la aplicación.

El rol más poderoso es Super Administrator.

Si un atacante compromete Okta con acceso de Administrador, todas las apps que confían en Okta serán muy probablemente comprometidas.

Ataques

Localizando el Portal de Okta

Usualmente el portal de una empresa estará ubicado en companyname.okta.com. Si no, intenta variaciones simples de companyname. Si no puedes encontrarlo, también es posible que la organización tenga un registro CNAME como okta.companyname.com apuntando al portal de Okta.

Iniciar sesión en Okta vía Kerberos

Si companyname.kerberos.okta.com está activo, Kerberos se usa para el acceso a Okta, típicamente omitiendo MFA para usuarios de Windows. Para encontrar usuarios de Okta autenticados por Kerberos en AD, ejecuta getST.py con parámetros apropiados. Al obtener un ticket de usuario de AD, inyéctalo en un host controlado usando herramientas como Rubeus o Mimikatz, asegurando que clientname.kerberos.okta.com esté en la zona "Intranet" de las Opciones de Internet. Acceder a una URL específica debería devolver una respuesta JSON "OK", indicando la aceptación del ticket Kerberos y otorgando acceso al panel de Okta.

Comprometer la cuenta de servicio de Okta con el SPN de delegación permite un ataque de Silver Ticket. Sin embargo, el uso de AES por parte de Okta para la encriptación de tickets requiere poseer la clave AES o la contraseña en texto plano. Usa ticketer.py para generar un ticket para el usuario víctima y entrégalo a través del navegador para autenticar con Okta.

Revisa el ataque en https://trustedsec.com/blog/okta-for-red-teamers.

Secuestrando el Agente de AD de Okta

Esta técnica implica acceder al Agente de AD de Okta en un servidor, que sincroniza usuarios y maneja la autenticación. Al examinar y descifrar configuraciones en OktaAgentService.exe.config, notablemente el AgentToken usando DPAPI, un atacante puede potencialmente interceptar y manipular datos de autenticación. Esto permite no solo monitorear y capturar credenciales de usuario en texto plano durante el proceso de autenticación de Okta, sino también responder a intentos de autenticación, permitiendo así acceso no autorizado o proporcionando autenticación universal a través de Okta (similar a una 'llave maestra').

Revisa el ataque en https://trustedsec.com/blog/okta-for-red-teamers.

Secuestrando AD como Administrador

Esta técnica implica secuestrar un Agente de AD de Okta primero obteniendo un Código OAuth, luego solicitando un token de API. El token está asociado con un dominio de AD, y se nombra un conector para establecer un agente de AD falso. La inicialización permite que el agente procese intentos de autenticación, capturando credenciales a través de la API de Okta. Hay herramientas de automatización disponibles para agilizar este proceso, ofreciendo un método fluido para interceptar y manejar datos de autenticación dentro del entorno de Okta.

Revisa el ataque en https://trustedsec.com/blog/okta-for-red-teamers.

Proveedor SAML Falso de Okta

Revisa el ataque en https://trustedsec.com/blog/okta-for-red-teamers.

La técnica implica desplegar un proveedor SAML falso. Al integrar un Proveedor de Identidad (IdP) externo dentro del marco de Okta usando una cuenta privilegiada, los atacantes pueden controlar el IdP, aprobando cualquier solicitud de autenticación a voluntad. El proceso implica configurar un IdP SAML 2.0 en Okta, manipulando la URL de Single Sign-On del IdP para redirección a través del archivo de hosts local, generando un certificado autofirmado y configurando los ajustes de Okta para coincidir con el nombre de usuario o correo electrónico. Ejecutar estos pasos con éxito permite la autenticación como cualquier usuario de Okta, eludiendo la necesidad de credenciales de usuario individuales, elevando significativamente el control de acceso de manera potencialmente inadvertida.

Phishing del Portal de Okta con Evilgnix

En esta publicación de blog se explica cómo preparar una campaña de phishing contra un portal de Okta.

Ataque de Suplantación de Colegas

Los atributos que cada usuario puede tener y modificar (como correo electrónico o nombre) pueden configurarse en Okta. Si una aplicación está confiando como ID en un atributo que el usuario puede modificar, podrá suplantar a otros usuarios en esa plataforma.

Por lo tanto, si la app confía en el campo userName, probablemente no podrás cambiarlo (porque usualmente no puedes cambiar ese campo), pero si confía, por ejemplo, en primaryEmail podrías cambiarlo a la dirección de correo de un colega y suplantarlo (necesitarás tener acceso al correo y aceptar el cambio).

Ten en cuenta que esta suplantación depende de cómo se configuró cada aplicación. Solo las que confían en el campo que modificaste y aceptan actualizaciones serán comprometidas. Por lo tanto, la app debería tener este campo habilitado si existe:

También he visto otras apps que eran vulnerables pero no tenían ese campo en la configuración de Okta (al final, diferentes apps se configuran de manera diferente).

La mejor manera de averiguar si podrías suplantar a alguien en cada app sería intentarlo.

Evadiendo políticas de detección de comportamiento

Las políticas de detección de comportamiento en Okta pueden ser desconocidas hasta que se encuentren, pero evitarlas se puede lograr dirigiéndose directamente a las aplicaciones de Okta, evitando el panel principal de Okta. Con un token de acceso de Okta, reproduce el token en la URL específica de la aplicación de Okta en lugar de la página principal de inicio de sesión.

Recomendaciones clave incluyen:

  • Evitar usar proxies de anonimización populares y servicios VPN al reproducir tokens de acceso capturados.

  • Asegurar consistencia en las cadenas de agente de usuario entre el cliente y los tokens de acceso reproducidos.

  • Abstenerse de reproducir tokens de diferentes usuarios desde la misma dirección IP.

  • Tener precaución al reproducir tokens contra el panel de Okta.

  • Si conoces las direcciones IP de la empresa víctima, restringe el tráfico a esas IPs o su rango, bloqueando todo otro tráfico.

Endurecimiento de Okta

Okta tiene muchas configuraciones posibles, en esta página encontrarás cómo revisarlas para que sean lo más seguras posible:

Okta Hardening

Referencias

Support HackTricks

Last updated