Enumeracion de usuarios de un portal web
-------------------------------------------------------------------------------------------------------
La vulnerabilidad de enumeración de usuarios es un tipo de ataque que explota la falta de medidas de seguridad en un sistema que permiten a un atacante obtener información sobre los usuarios registrados en un sistema. Por lo general, se logra a través de un proceso de enumeración en el que un atacante realiza una serie de intentos sistemáticos para recopilar información sobre los usuarios registrados en un sistema. Esto se puede hacer a través de diversas técnicas, como el uso de fuerza bruta o la explotación de vulnerabilidades en la configuración del sistema.
El objetivo de la enumeración de usuarios es recopilar información sobre los usuarios registrados en un sistema para su uso en futuros ataques, como intentos de acceso no autorizado a cuentas de usuario o ataques de phishing dirigidos a usuarios específicos. Por lo tanto, la enumeración de usuarios es una fase común en muchos tipos de ataques informáticos y puede ser utilizada como parte de un ataque más grande o como un ataque independiente en sí mismo.
Para comprobar la vulnerabilidad se requiere analizar muy de cerca la aplicación en los formularios donde se solicita cualquier tipo de username y ver su respuesta. En nuestro caso, se puede observar que la aplicación responde con “Incorrect Password” cuando el usuario es valido pero la contraseña es incorrecta.

Teniendo lo anterior podríamos usar un listado de usuarios y ejecutar una enumeración de usuarios para crear un listado de usuarios registrados en la plataforma. Usando intruder sobre el parámetro email, podemos generar el ataque. Para realizar el proceso primero genere un intento de autenticación fallido y desde la pestaña proxy, hacer click derecho y seleccione “send to intruder” como se visualiza a continuacion:

Al igual que ffuf, Intruder requiere saber que campo del request se desea atacar, por lo que debemos marcarlo:

En la pestaña de “Payloads”, podemos cargar el listado de palabras que deseamos que utilice la herramienta, para nuestro caso usaremos la lista que se encuentra en
https://github.com/danielmiessler/SecLists/blob/master/Usernames/top-usernames-shortlist.txt

Si cuenta con una versión licenciada se recomienda utilizar la siguiente configuracion para evitar cualquier regla de Rate Limit:

Por último, damos click en el botón “Start Attack” y analizamos el contenido del intruder. La ventaja de la herramienta es que es algo visual y permite manipulación de filtros con el mouse. Observando de cerca, se puede ver que una respuesta tiene una longitud que no es como las otras:

Si renderizamos el DOM del HTML se visualiza asi:

En la evidencia previa se puede apreciar que efectivamente el usuario esta registrado en la aplicación. Normalmente no se recomienda hacer uso de fuerza bruta en los aplicativos sin no sabemos las políticas de bloqueo internas. Sin embargo para el ejercicio, no contamos con esas políticas implementadas, haciendo el formulario susceptible a ataques de fuerza bruta.
A continuación, mostramos la configuración en intruder que se debe tener en cuenta para hacer el ataque sobre el usuario “admin@localhost.com”
Last updated