mirror of
https://github.com/carlospolop/hacktricks
synced 2024-12-18 09:03:30 +00:00
123 lines
5.9 KiB
Markdown
123 lines
5.9 KiB
Markdown
# Bypass de 2FA/MFA/OTP
|
|
|
|
## **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 de sua 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 o login de um usuário na aplicação após a redefinição, para 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.
|
|
|
|
#### **Força Bruta Lenta**
|
|
|
|
Um ataque de força bruta lento é viável onde existem limites de taxa de fluxo sem um limite geral.
|
|
|
|
#### **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 a limitação 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 possuem suporte a 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)
|