hacktricks/pentesting-web/2fa-bypass.md

157 lines
8.6 KiB
Markdown

# Bypass de 2FA/MFA/OTP
{% hint style="success" %}
Aprenda e pratique Hacking AWS:<img src="../.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="../.gitbook/assets/arte.png" alt="" data-size="line">\
Aprenda e pratique Hacking GCP: <img src="../.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="../.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary>Support HackTricks</summary>
* Confira os [**planos de assinatura**](https://github.com/sponsors/carlospolop)!
* **Junte-se ao** 💬 [**grupo do Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo do telegram**](https://t.me/peass) ou **siga**-nos no **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks_live)**.**
* **Compartilhe truques de hacking enviando PRs para os repositórios do** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud).
</details>
{% endhint %}
## **Técnicas Aprimoradas de Bypass de Autenticação de Dois Fatores**
### **Acesso Direto ao Endpoint**
Para contornar a 2FA, acesse o endpoint subsequente diretamente, sabendo que o caminho é crucial. Se não for bem-sucedido, altere o **cabeçalho Referrer** para imitar a navegação a partir da página de verificação da 2FA.
### **Reutilização de Token**
Reutilizar tokens previamente usados para autenticação dentro de uma conta pode ser eficaz.
### **Utilização de Tokens Não Utilizados**
Extrair um token da própria conta para contornar a 2FA em outra conta pode ser tentado.
### **Exposição de Token**
Investigue se o token é divulgado em uma resposta da aplicação web.
### **Exploração de Link de Verificação**
Usar o **link de verificação de e-mail enviado na criação da conta** pode permitir o acesso ao perfil sem 2FA, como destacado em um [post](https://srahulceh.medium.com/behind-the-scenes-of-a-security-bug-the-perils-of-2fa-cookie-generation-496d9519771b).
### **Manipulação de Sessão**
Iniciar sessões tanto para a conta do usuário quanto para a conta de uma vítima, e completar a 2FA para a conta do usuário sem prosseguir, permite uma tentativa de acessar o próximo passo no fluxo da conta da vítima, explorando limitações de gerenciamento de sessão no backend.
### **Mecanismo de Redefinição de Senha**
Investigar a função de redefinição de senha, que faz login de um usuário na aplicação após a redefinição, por seu potencial de permitir múltiplas redefinições usando o mesmo link é crucial. Fazer login com as credenciais recém-redefinidas pode contornar a 2FA.
### **Comprometimento de Plataforma OAuth**
Comprometer a conta de um usuário em uma plataforma **OAuth** confiável (por exemplo, Google, Facebook) pode oferecer uma rota para contornar a 2FA.
### **Ataques de Força Bruta**
#### **Ausência de Limite de Taxa**
A falta de um limite no número de tentativas de código permite ataques de força bruta, embora um possível limite de taxa silencioso deva ser considerado.
Note que mesmo se um limite de taxa estiver em vigor, você deve tentar ver se a resposta é diferente quando o OTP válido é enviado. Em [**este post**](https://mokhansec.medium.com/the-2-200-ato-most-bug-hunters-overlooked-by-closing-intruder-too-soon-505f21d56732), o caçador de bugs descobriu que mesmo se um limite de taxa for acionado após 20 tentativas malsucedidas respondendo com 401, se o válido for enviado, uma resposta 200 foi recebida.
#### **Força Bruta Lenta**
Um ataque de força bruta lento é viável onde limites de fluxo existem sem um limite geral de taxa.
#### **Redefinição do Limite de Reenvio de Código**
Reenviar o código redefine o limite de taxa, facilitando tentativas contínuas de força bruta.
#### **Circunvenção de Limite de Taxa do Lado do Cliente**
Um documento detalha técnicas para contornar limites de taxa do lado do cliente.
#### **Ações Internas Sem Limite de Taxa**
Limites de taxa podem proteger tentativas de login, mas não ações internas da conta.
#### **Custos de Reenvio de Código SMS**
O reenvio excessivo de códigos via SMS gera custos para a empresa, embora não contorne a 2FA.
#### **Regeneração Infinita de OTP**
A geração infinita de OTP com códigos simples permite força bruta ao tentar um pequeno conjunto de códigos.
### **Exploração de Condição de Corrida**
Explorar condições de corrida para contornar a 2FA pode ser encontrado em um documento específico.
### **Vulnerabilidades CSRF/Clickjacking**
Explorar vulnerabilidades CSRF ou Clickjacking para desativar a 2FA é uma estratégia viável.
### **Explorações da Função "Lembrar de Mim"**
#### **Valores de Cookie Previsíveis**
Adivinhar o valor do cookie "lembrar de mim" pode contornar restrições.
#### **Imitação de Endereço IP**
Imitar o endereço IP da vítima através do cabeçalho **X-Forwarded-For** pode contornar restrições.
### **Utilização de Versões Antigas**
#### **Subdomínios**
Testar subdomínios pode usar versões desatualizadas que não suportam 2FA ou conter implementações vulneráveis de 2FA.
#### **Endpoints de API**
Versões mais antigas da API, indicadas por caminhos de diretório /v\*/, podem ser vulneráveis a métodos de bypass de 2FA.
### **Tratamento de Sessões Anteriores**
Encerrar sessões existentes ao ativar a 2FA protege contas contra acesso não autorizado de sessões comprometidas.
### **Falhas de Controle de Acesso com Códigos de Backup**
A geração imediata e a potencial recuperação não autorizada de códigos de backup ao ativar a 2FA, especialmente com configurações incorretas de CORS/vulnerabilidades XSS, representam um risco.
### **Divulgação de Informações na Página de 2FA**
A divulgação de informações sensíveis (por exemplo, número de telefone) na página de verificação da 2FA é uma preocupação.
### **Redefinição de Senha Desativando a 2FA**
Um processo que demonstra um método potencial de bypass envolve a criação de conta, ativação da 2FA, redefinição de senha e login subsequente sem a exigência de 2FA.
### **Requisições Falsas**
Utilizar requisições falsas para ofuscar tentativas de força bruta ou enganar mecanismos de limitação de taxa adiciona outra camada às estratégias de bypass. Criar tais requisições requer uma compreensão sutil das medidas de segurança da aplicação e dos comportamentos de limitação de taxa.
### Erros de Construção de OTP
Caso o OTP seja criado com base em dados que o usuário já possui ou que estão sendo enviados anteriormente para criar o OTP, é possível que o usuário também o gere e contorne.
## Referências
* [https://medium.com/@iSecMax/two-factor-authentication-security-testing-and-possible-bypasses-f65650412b35](https://github.com/carlospolop/hacktricks/blob/master/pentesting-web/%22https:/medium.com/@iSecMax/two-factor-authentication-security-testing-and-possible-bypasses-f65650412b35%22/README.md)
* [https://azwi.medium.com/2-factor-authentication-bypass-3b2bbd907718](https://azwi.medium.com/2-factor-authentication-bypass-3b2bbd907718)
* [https://getpocket.com/read/aM7dap2bTo21bg6fRDAV2c5thng5T48b3f0Pd1geW2u186eafibdXj7aA78Ip116\_1d0f6ce59992222b0812b7cab19a4bce](https://getpocket.com/read/aM7dap2bTo21bg6fRDAV2c5thng5T48b3f0Pd1geW2u186eafibdXj7aA78Ip116_1d0f6ce59992222b0812b7cab19a4bce)
P
{% hint style="success" %}
Aprenda e pratique Hacking AWS:<img src="../.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="../.gitbook/assets/arte.png" alt="" data-size="line">\
Aprenda e pratique Hacking GCP: <img src="../.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="../.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary>Support HackTricks</summary>
* Confira os [**planos de assinatura**](https://github.com/sponsors/carlospolop)!
* **Junte-se ao** 💬 [**grupo do Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo do telegram**](https://t.me/peass) ou **siga**-nos no **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks_live)**.**
* **Compartilhe truques de hacking enviando PRs para os repositórios do** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud).
</details>
{% endhint %}