AWS - Identity Center & SSO Unauthenticated Enum
AWS Device Code Phishing
Inicialmente proposto neste post de blog, é possível enviar um link para um usuário usando AWS SSO que, se o usuário aceitar, o atacante poderá obter um token para se passar pelo usuário e acessar todos os papéis que o usuário pode acessar no Identity Center.
Para realizar este ataque, os requisitos são:
A vítima precisa usar Identity Center
O atacante deve conhecer o subdomínio usado pela vítima
<victimsub>.awsapps.com/start
Apenas com as informações anteriores, o atacante poderá enviar um link para o usuário que, se aceito, concederá acesso ao atacante sobre a conta do usuário AWS.
Ataque
Encontrando o subdomínio
O primeiro passo do atacante é descobrir o subdomínio que a empresa vítima está usando em seu Identity Center. Isso pode ser feito via OSINT ou adivinhação + BF, já que a maioria das empresas usará seu nome ou uma variação de seu nome aqui.
Com essa informação, é possível obter a região onde o Identity Center foi configurado com:
Gerar o link para a vítima e enviá-lo
Execute o seguinte código para gerar um link de login AWS SSO para que a vítima possa se autenticar. Para a demonstração, execute este código em um console python e não saia dele, pois mais tarde você precisará de alguns objetos para obter o token:
Envie o link gerado para a vítima usando suas incríveis habilidades de engenharia social!
Espere até que a vítima aceite
Se a vítima já estava logada no AWS, ela só precisará aceitar a concessão das permissões; se não estava, precisará fazer login e então aceitar a concessão das permissões. É assim que o prompt se parece atualmente:
Obtenha o token de acesso SSO
Se a vítima aceitou o prompt, execute este código para gerar um token SSO se passando pelo usuário:
O token de acesso SSO é válido por 8h.
Impersonar o usuário
Phishing the unphisable MFA
É interessante saber que o ataque anterior funciona mesmo se um "MFA infalível" (webAuth) estiver sendo usado. Isso ocorre porque o fluxo de trabalho anterior nunca sai do domínio OAuth usado. Diferente de outros ataques de phishing onde o usuário precisa substituir o domínio de login, no caso, o fluxo de trabalho do código do dispositivo é preparado para que um código seja conhecido por um dispositivo e o usuário possa fazer login mesmo em uma máquina diferente. Se o prompt for aceito, o dispositivo, apenas por conhecer o código inicial, será capaz de recuperar credenciais para o usuário.
Para mais informações sobre isso verifique este post.
Ferramentas Automáticas
Referências
Last updated