Cómo los ciberdelincuentes pueden evadir la autenticación de dos factores
Como el nombre lo indica, dos factores, significa que necesitamos autenticación de dos capas para acceder a cualquier aplicación/recurso. Por ejemplo, primero ingresar la contraseña y luego ingresar un código o algo enviado al móvil por la aplicación. Este proceso generalmente lo llamamos autenticación de 2 factores (2FA).
Como la infracción de credenciales es algo muy común, las empresas quieren protección adicional. Las empresas generalmente usan alguna de las siguientes medidas de seguridad:
- Te hacen un par de preguntas de seguridad que ingresaste al momento de registrarte
- Hacen un envío de OTP (código de un solo uso) en tu móvil registrado
- Debes autenticarte mediante Google Authenticator
- Solicitan hacer clic en un enlace enviado a través de correo electrónico
2FA es una combinación de algo que tú sabes (preguntas secretas), tú tienes (tarjeta de crédito, teléfono), tu eres (huella digital, reconocimiento de voz).
La autenticación de dos factores es de dos tipos:
Hardware o tokens físicos: las empresas proporcionan al usuario un pequeño dispositivo de hardware, como un token RSA. Este parece un pendrive que muestra un valor aleatorio de 6 dígitos en la pantalla que se actualiza después de 30 minutos.
Software o tokens: Esto se refiere OTP a través de mensajes o correo electrónicos. Google Authenticator también es un ejemplo.
Ventajas de la autenticación de dos factores:
Proporciona una capa adicional de seguridad.
La mayoría de las personas usan la misma contraseña para varios sitios web. Por lo tanto, para protegernos es muy importante tener una capa adicional de seguridad.
Ahora que ya hemos hablado de los aspectos básicos de la autenticación de 2 factores, es momento de centrarnos en los códigos de un solo uso (OTP). Los OTP funcionan así.
El usuario visita la aplicación e ingresa sus credenciales de inicio de sesión normales.
Después de la autenticación, la aplicación redirige al usuario a la página 2FA. Ahí le pide al usuario que ingrese el OTP que se envía a su número de teléfono registrado a través de SMS.
Después de ingresar el OTP correcto, el usuario se autentica en la aplicación.
Explotación
A continuación, veremos cómo evadir la autenticación de dos factores.
Tenemos una aplicación, la aplicación tiene funcionalidad de inicio de sesión y registro. Entonces, primero, tenemos que registrar un usuario allí y luego podemos acceder a la aplicación por completo. En el momento del registro, la aplicación agrega una nota en la página web que indica que
“Si trabajas para securitybyng, debes utilizar tu dirección de correo electrónico @securitybyng.ninja”
Por lo tanto, significa que la aplicación puede proporcionar algunos de los altos privilegios de acceso a los usuarios con los correos electrónicos @securitybyng
Para registrarse, la aplicación solicita nombre de usuario, contraseña y correo electrónico.
Cuando hice clic en el botón “Registrarse”, vi lo siguiente:
La aplicación realmente está verificando la dirección de correo electrónico antes de proporcionar acceso a la aplicación. Por lo tanto, no es posible utilizar ninguno de los correos electrónicos a los que no tenemos acceso, ya que no podremos verificarlo.
Después de usar este correo electrónico, obtuvimos con éxito el enlace de registro con el token temporal.
El enlace lo debo copiar y abrirlo en el navegador. Después de eso, el registro será exitoso y obtendré acceso a la aplicación.
Ahora, con las mismas credenciales, intento iniciar sesión. Ahí tengo una pestaña de “Mi cuenta” dentro de la cuenta. Al hacer clic en esa opción, puedo ver que puedo cambiar mi correo electrónico.
Intenté con un correo electrónico ficticio para ver la funcionalidad con el cambio de correo electrónico.
El correo electrónico está actualizado y esta vez se realizó una verificación de correo electrónico. Intentemos cambiar nuestro correo electrónico a securitybyng.ninja.
Como actualizo el correo a *@securitybyng.ninja me sale el panel de administración donde puedo realizar tareas como administrador.
Técnica de evasión de la autenticación 2FA:
La autenticación de 2 factores proporciona una capa adicional de seguridad, pero se puede omitir si no se implementa correctamente. Hay algunas técnicas comunes para evadir la autenticación de 2 factores.
- Fuerza bruta del token: si los intentos de ingresar al 2FA no tienen ningún límite de velocidad, entonces el token puede ser forzado. Algunas empresas usan OTP de 4 a 6 dígitos, por lo que es fácil encontrarlos.
- Manipulación con token: es posible manipular tokens creados por dispositivos.
a) Proporcionando valores en blanco en lugar de token
b) Copiando el valor del token antiguo y pasarlo como token actual.
- La aplicación que tiene funcionalidad de autenticación 2FA debe verificarse en todos los subdominios de esa aplicación. Es posible que el inicio de sesión en el subdominio no tenga 2FA. Por lo tanto, podríamos iniciar sesión a través de cualquier subdominio y podemos evadir el requisito de 2FA.
- Puedes copiar la URL después de autenticarte con 2FA, como en el ejemplo antes mostrado o la URL de inicio. Ahora debes cerrar e iniciar sesión con tus credenciales y, sin ingresar el 2FA, intenta acceder a esa URL. Si funciona habrás evadido el requisito de 2FA
- A veces, en la funcionalidad de restablecimiento de contraseña, puedes iniciar sesión después de un restablecimiento, por lo que puedes evadir el requisito de 2FA
- También lo puedes hacer modificando la solicitud de token 2FA donde podemos establecer 2FA como “Falso” en lugar de “Verdadero”. Por lo tanto, no solicitará el código 2FA.