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

158 lines
8.3 KiB
Markdown
Raw Normal View History

# Bypass de 2FA/MFA/OTP
{% hint style="success" %}
Aprende y practica Hacking en 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">\
Aprende y practica Hacking en 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)
2023-06-05 18:33:24 +00:00
<details>
2023-06-05 18:33:24 +00:00
<summary>Apoya a HackTricks</summary>
* Revisa los [**planes de suscripción**](https://github.com/sponsors/carlospolop)!
* **Únete al** 💬 [**grupo de Discord**](https://discord.gg/hRep4RUj7f) o al [**grupo de telegram**](https://t.me/peass) o **síguenos** en **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Comparte trucos de hacking enviando PRs a los** [**HackTricks**](https://github.com/carlospolop/hacktricks) y [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repos de github.
2023-06-05 18:33:24 +00:00
</details>
{% endhint %}
2023-06-05 18:33:24 +00:00
## **Técnicas Mejoradas de Bypass de Autenticación de Dos Factores**
### **Acceso Directo a Endpoints**
2023-06-05 18:33:24 +00:00
Para eludir 2FA, accede directamente al siguiente endpoint, conociendo la ruta es crucial. Si no tienes éxito, altera el **header Referrer** para imitar la navegación desde la página de verificación de 2FA.
2023-06-05 18:33:24 +00:00
### **Reutilización de Tokens**
2023-06-05 18:33:24 +00:00
Reutilizar tokens previamente utilizados para la autenticación dentro de una cuenta puede ser efectivo.
2023-06-05 18:33:24 +00:00
### **Utilización de Tokens No Usados**
2023-06-05 18:33:24 +00:00
Extraer un token de la propia cuenta para eludir 2FA en otra cuenta puede ser intentado.
2023-06-05 18:33:24 +00:00
### **Exposición de Token**
2023-06-05 18:33:24 +00:00
Investiga si el token se divulga en una respuesta de la aplicación web.
2023-06-05 18:33:24 +00:00
### **Explotación de Enlace de Verificación**
2023-06-05 18:33:24 +00:00
Usar el **enlace de verificación de correo electrónico enviado al crear la cuenta** puede permitir el acceso al perfil sin 2FA, como se destaca en un [post](https://srahulceh.medium.com/behind-the-scenes-of-a-security-bug-the-perils-of-2fa-cookie-generation-496d9519771b).
2023-06-05 18:33:24 +00:00
### **Manipulación de Sesiones**
2023-06-05 18:33:24 +00:00
Iniciar sesiones tanto para la cuenta del usuario como para la de una víctima, y completar 2FA para la cuenta del usuario sin proceder, permite intentar acceder al siguiente paso en el flujo de la cuenta de la víctima, explotando las limitaciones de gestión de sesiones en el backend.
2023-06-05 18:33:24 +00:00
### **Mecanismo de Restablecimiento de Contraseña**
2023-06-05 18:33:24 +00:00
Investigar la función de restablecimiento de contraseña, que inicia sesión a un usuario en la aplicación después del restablecimiento, por su potencial para permitir múltiples restablecimientos usando el mismo enlace es crucial. Iniciar sesión con las credenciales recién restablecidas podría eludir 2FA.
2023-06-05 18:33:24 +00:00
### **Compromiso de Plataforma OAuth**
Comprometer la cuenta de un usuario en una plataforma **OAuth** de confianza (por ejemplo, Google, Facebook) puede ofrecer una ruta para eludir 2FA.
2023-06-05 18:33:24 +00:00
### **Ataques de Fuerza Bruta**
2023-06-05 18:33:24 +00:00
#### **Ausencia de Límite de Tasa**
2023-06-05 18:33:24 +00:00
La falta de un límite en el número de intentos de código permite ataques de fuerza bruta, aunque se debe considerar un posible limitador de tasa silencioso.
2023-06-05 18:33:24 +00:00
#### **Fuerza Bruta Lenta**
2023-06-05 18:33:24 +00:00
Un ataque de fuerza bruta lento es viable donde existen límites de flujo sin un límite de tasa general.
2023-06-05 18:33:24 +00:00
#### **Restablecimiento del Límite de Reenvío de Código**
2023-06-05 18:33:24 +00:00
Reenviar el código restablece el límite de tasa, facilitando intentos de fuerza bruta continuos.
2023-06-05 18:33:24 +00:00
#### **Evasión de Límite de Tasa del Lado del Cliente**
2023-06-05 18:33:24 +00:00
Un documento detalla técnicas para eludir el límite de tasa del lado del cliente.
2023-06-05 18:33:24 +00:00
#### **Falta de Límite de Tasa en Acciones Internas**
2023-06-05 18:33:24 +00:00
Los límites de tasa pueden proteger los intentos de inicio de sesión, pero no las acciones internas de la cuenta.
2023-06-05 18:33:24 +00:00
#### **Costos de Reenvío de Código SMS**
2023-06-05 18:33:24 +00:00
El reenvío excesivo de códigos a través de SMS incurre en costos para la empresa, aunque no elude 2FA.
#### **Regeneración Infinita de OTP**
La generación infinita de OTP con códigos simples permite la fuerza bruta al volver a intentar un pequeño conjunto de códigos.
### **Explotación de Condiciones de Carrera**
Explotar condiciones de carrera para eludir 2FA se puede encontrar en un documento específico.
### **Vulnerabilidades CSRF/Clickjacking**
Explorar vulnerabilidades CSRF o Clickjacking para deshabilitar 2FA es una estrategia viable.
### **Explotaciones de la Función "Recordarme"**
#### **Valores de Cookie Predecibles**
Adivinar el valor de la cookie "recordarme" puede eludir restricciones.
#### **Suplantación de Dirección IP**
2023-06-05 18:33:24 +00:00
Suplantar la dirección IP de la víctima a través del header **X-Forwarded-For** puede eludir restricciones.
2023-06-05 18:33:24 +00:00
### **Utilización de Versiones Anteriores**
2023-06-05 18:33:24 +00:00
#### **Subdominios**
Probar subdominios puede usar versiones desactualizadas que carecen de soporte para 2FA o contener implementaciones vulnerables de 2FA.
2023-06-05 18:33:24 +00:00
#### **Endpoints de API**
2023-06-05 18:33:24 +00:00
Las versiones antiguas de API, indicadas por rutas de directorio /v\*/, pueden ser vulnerables a métodos de bypass de 2FA.
2023-06-05 18:33:24 +00:00
### **Manejo de Sesiones Anteriores**
2023-06-05 18:33:24 +00:00
Terminar sesiones existentes al activar 2FA asegura cuentas contra accesos no autorizados desde sesiones comprometidas.
2023-06-05 18:33:24 +00:00
### **Fallos de Control de Acceso con Códigos de Respaldo**
2023-06-05 18:33:24 +00:00
La generación inmediata y la posible recuperación no autorizada de códigos de respaldo al activar 2FA, especialmente con configuraciones incorrectas de CORS/vulnerabilidades XSS, representa un riesgo.
2023-06-05 18:33:24 +00:00
### **Divulgación de Información en la Página de 2FA**
2023-06-05 18:33:24 +00:00
La divulgación de información sensible (por ejemplo, número de teléfono) en la página de verificación de 2FA es una preocupación.
2023-06-05 18:33:24 +00:00
### **Restablecimiento de Contraseña Deshabilitando 2FA**
2023-06-05 18:33:24 +00:00
Un proceso que demuestra un posible método de bypass implica la creación de una cuenta, activación de 2FA, restablecimiento de contraseña y posterior inicio de sesión sin el requisito de 2FA.
### **Solicitudes de Señuelo**
Utilizar solicitudes de señuelo para ofuscar intentos de fuerza bruta o desviar mecanismos de limitación de tasa añade otra capa a las estrategias de bypass. Elaborar tales solicitudes requiere un entendimiento matizado de las medidas de seguridad de la aplicación y los comportamientos de limitación de tasa.
### Errores de Construcción de OTP
En caso de que el OTP se cree en base a datos que el usuario ya tiene o que se envían previamente para crear el OTP, es posible que el usuario también lo genere y lo eluda.
## Referencias
2024-04-06 18:13:31 +00:00
* [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" %}
Aprende y practica Hacking en 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">\
Aprende y practica Hacking en 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>Apoya a HackTricks</summary>
* Revisa los [**planes de suscripción**](https://github.com/sponsors/carlospolop)!
* **Únete al** 💬 [**grupo de Discord**](https://discord.gg/hRep4RUj7f) o al [**grupo de telegram**](https://t.me/peass) o **síguenos** en **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Comparte trucos de hacking enviando PRs a los** [**HackTricks**](https://github.com/carlospolop/hacktricks) y [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repos de github.
</details>
{% endhint %}