AWS - Identity Center & SSO Unauthenticated Enum
AWS Device Code Phishing
Propuesto inicialmente en esta publicación de blog, es posible enviar un enlace a un usuario que usa AWS SSO que si el usuario acepta el atacante podrá obtener un token para hacerse pasar por el usuario y acceder a todos los roles a los que el usuario puede acceder en el Identity Center.
Para realizar este ataque los requisitos son:
La víctima necesita usar Identity Center
El atacante debe conocer el subdominio usado por la víctima
<victimsub>.awsapps.com/start
Solo con la información anterior, el atacante podrá enviar un enlace al usuario que si es aceptado otorgará al atacante acceso a la cuenta del usuario de AWS.
Ataque
Encontrar el subdominio
El primer paso del atacante es averiguar el subdominio que la empresa víctima está usando en su Identity Center. Esto se puede hacer mediante OSINT o adivinanza + BF ya que la mayoría de las empresas usarán su nombre o una variación de su nombre aquí.
Con esta información, es posible obtener la región donde se configuró el Identity Center con:
Generar el enlace para la víctima y enviarlo
Ejecuta el siguiente código para generar un enlace de inicio de sesión de AWS SSO para que la víctima pueda autenticarse. Para la demostración, ejecuta este código en una consola de python y no la cierres ya que más tarde necesitarás algunos objetos para obtener el token:
Envía el enlace generado a la víctima usando tus increíbles habilidades de ingeniería social.
Espera hasta que la víctima lo acepte
Si la víctima ya estaba conectada en AWS, solo necesitará aceptar la concesión de permisos; si no lo estaba, necesitará iniciar sesión y luego aceptar la concesión de permisos. Así es como se ve el aviso hoy en día:
Obtén el token de acceso SSO
Si la víctima aceptó el aviso, ejecuta este código para generar un token SSO suplantando al usuario:
El token de acceso SSO es válido por 8h.
Suplantar al usuario
Phishing the unphisable MFA
Es divertido saber que el ataque anterior funciona incluso si se está utilizando un "MFA infalsificable" (webAuth). Esto se debe a que el flujo de trabajo anterior nunca deja el dominio OAuth utilizado. A diferencia de otros ataques de phishing donde el usuario necesita suplantar el dominio de inicio de sesión, en este caso, el flujo de trabajo del código de dispositivo está preparado para que un código sea conocido por un dispositivo y el usuario pueda iniciar sesión incluso en una máquina diferente. Si se acepta el aviso, el dispositivo, solo con conocer el código inicial, podrá recuperar credenciales para el usuario.
Para más información sobre esto consulta este post.
Automatic Tools
References
Last updated