Recent Posts

Username enumeration via account lock

Debemos encontrar la contraseña de un usuario valido para poder autenticarnos en el login del sitio web. Además, el enunciado del laboratorio, nos indica que se ha implementado como medida de seguridad un bloqueo de las cuentas valida después de ciertos intentos fallidos de iniciar sesión en ellas. Teniendo en cuenta este detalle, elabore un script en Python que me realizara una enumeración de usernames donde supuse que el limite de intentos fallidos es igual a 4, logrando obtener un username valido. Luego, para el ataque de fuerza bruta de contraseñas, elabore otro script en Python donde tome en cuenta el mensaje de error emitido en el bloqueo de la cuenta, y el tiempo que iba a ser bloqueada la cuenta después de exceder el limite de intentos fallidos.

Broken brute-force protection, IP block

Debemos encontrar unas credenciales validas para lograr autenticarnos en el login de un sitio web. Primero, intente autenticarme con cualquier unas credenciales no validas, y observe que el mensaje de error emitido en la respuesta HTML de la aplicacion web, es bastante generico, es decir, no va cambiar si me autentico con username valido o con una contraseña valida. Ademas, observe que hay un diferencia en el tiempo de respuesta cuando nos autenticamos con un username valido y uno incorrecto. Ademas, observe que hay un limite en el numero intento fallidos. Luego, cree un script en Python para realizar la enumeracion de usernames, teniendo encuenta los condiciones anteriores. Luego, cree otro script en Python para la fuerza bruta de contraseñas.

Username enumeration via response timing

Debemos encontrar unas credenciales validas para lograr autenticarnos en el login de un sitio web. Primero, intente autenticarme con cualquier unas credenciales no validas, y observe que el mensaje de error emitido en la respuesta HTML de la aplicacion web, es bastante generico, es decir, no va cambiar si me autentico con username valido o con una contraseña valida. Ademas, observe que hay un diferencia en el tiempo de respuesta cuando nos autenticamos con un username valido y uno incorrecto. Ademas, observe que hay un limite en el numero intento fallidos. Luego, cree un script en Python para realizar la enumeracion de usernames, teniendo encuenta los condiciones anteriores. Luego, cree otro script en Python para la fuerza bruta de contraseñas.

VulnNet:dotpy - TryHackMe

Debemos encontrar 2 banderas. Donde a partir de un escaneo de puertos pude saber que hay un servidor web que aloja una aplicación web, que está compuesta de un login, y de un registro. Luego, cree una cuenta para observar el panel de gestión de la aplicación web donde la mayoría de sus funcionalidades no están desarrolladas aún por lo que no representan un vector de ataque. Luego, realice fuerza bruta de directorios en el directorio raíz del servidor web, logrando encontrar un error que nos condujo a una página web con vulnerabilidad XSS Reflected y SSTI. Luego, encontré el tipo template engine, y probe diferentes payloads para omitir el blacklist, y lograr generar una reverse Shell. Luego, para la escalada de privilegio horizontal, aproveche que podía ejecutar el administrador de paquetes pip para instalar paquetes Python con privilegios de otro usuario, y en la escalada vertical, utilice la técnica Python Library Hijacking y la configuración SETENV habilitada en un comando a traves de sudo.

hackerNote - TryHackMe

Debemos encontrar dos banderas. Donde a partir de un escaneo de puertos pude saber que hay un servidor web que aloja una aplicación web, que está compuesta de un login, y de un registro. Además, lograremos realizar una enumeración de usernames mediante un script en Python, aprovechando que hay una diferencia entre el tiempo de respuesta cuando ingresamos un username valido y cuando ingresamos un username incorrecto. Luego, realizamos fuerza bruta de contraseñas mediante un script en Python y un wordlist, que fue creado teniendo en cuenta la pista configurada por el propietario de la cuenta cuando se registró. Luego, de autenticarnos exitosamente, llegamos a obtener las credenciales para acceder al sistema destino mediante el servicio SSH. Luego, hubo dos formas para realizar la escalada privilegio vertical, la primera fue explotando la vulnerabilidad CVE-2021-3156, la segunda fue explotando la vulnerabilidad CVE-2019-18634, ambas vulnerabilidad relacionadas con sudo.

Capture! - TryHackMe

Debemos encontrar una bandera. Donde a partir de un escaneo de puertos pude saber que hay un servidor web que aloja una aplicación web construida con Python. Además, esta aplicación web esta compuesta de un login, y luego de un numero intentos fallidos, aparece un Captcha que viene a ser una operación matemática como suma o resta o multiplicación o división. Este captcha ha sido creado para evitar ataques automatizados de fuerza bruta pero debido a que es una operación matemática, logre crear un script en Python que me permitió primero realizar fuerza bruta de usernames aprovechando el mensaje de error “The user name does not exist”. Luego, conociendo un username valido, puede crear otro script en Python que me permitió realizar fuerza bruta de contraseñas, logrando encontrar unas credenciales valida.

SafeZone - TryHackMe

Debemos encontrar dos banderas. Donde a partir de un escaneo de puertos pude saber que hay un servicio Web y SSH. Luego, realice fuerza bruta de directorios encontrando una aplicación web con un login y un registro. Luego, a partir de un modulo del servidor Apache, logre encontrar pistas del password del admin que me permitió crear un sciprt Python para automatizar la fuerza bruta de contraseña sobre el login. Luego, me encontré con la vulnerabilidad LFI en la aplicación web, permitiéndome obtener acceso al sistema mediante la explotación de la vulnerabilidad Login poisoning. Luego, para la doble escalada de privilegio horizontal, cracke el hash encontrado en un archivo. Luego, realice un túnel SSH para acceder a servidor Ngnix, que solo admitía conexiones locales. Ademas, el servidor tenía almacenado una aplicación web vulnerable a Command Injection. Luego, para la escalada vertical, realice un Command Injection sobre un script Python ejecutado con el comando sudo y privilegios root.

Battery - TryHackMe

Debemos encontrar tres banderas. Donde a partir de un escaneo de puertos pude saber que hay un servicio Web y SSH. Luego, realicé una fuerza bruta de directorios, logrando encontrar recursos de una aplicación web como un registro y un login. Además, logre descargar un archivo binario ejecutable, cuyo contenido contenía una lista de posibles usernames válidos. Luego, me percate que el campo username del registro solo permitía 12 caracteres como máximo, logrando realizar un ataque SQL Truncation que me permitió autenticarme en el panel de administración siendo el usuario admin@bank.a . Luego, observe el contenido de archivos sensibles del sistema destino mediante una entidad XML externa en un documento XML de una solicitud POST realizada por una de las secciones de la aplicación web. Luego, para la escalada privielgio vertical, suplante un script en Python, que era ejecutado con los privilegios del usuario root, logrando crear una nueva instancia de Shell.

Res - TryHackMe

Debemos encontrar dos banderas. Donde a partir de un escaneo de puertos pude saber que hay un servicio Web, Redis. Además, debido a que no se ha configurado un mecanismo de autenticación en el acceso al servidor Redis, es que pude ejecutar algunos comandos con el fin de generar una webshell PHP haciendo una suposición en la ruta del directorio raíz del servidor web. Luego, a traves de la webshell ejecute un comando codificado en URL que me genero una reverse Shell. Luego, en la escalada de privilegio horizontal, aproveche que el archivo binario xxd tenia habilitado el bit SUID, logrando observar el contenido del archivo /etc/shadow con el fin de obtener el hash del usuario vianka. Además, cracke el hash con John The Ripper. Luego, en la escalada de privilegio vertical, aproveche que el usuario vianka podía ejecutar cualquier programa o comando con los privilegios de root mediante el comando sudo.

Devie - TryHackMe

Debemos encontrar tres banderas. Donde a partir de un escaneo de puertos pude saber que hay un servicio desconocido, SSH. Además, gracias a una respuesta HTTP emitida por el servidor web pude saber que hay una aplicación web alojado en el servidor web. Luego, analizando el código fuente de la aplicación web, que constaba de tres formularios, pude notar que utilizaba la función eval sin ninguna verificación en los datos que se le pasaba. Por lo tanto, inserte código malicioso en uno de los campos del formulario de la aplicación web para generar una reverse Shell a traves de la función eval. Luego, para la escalada privilegio horizontal, logre decodificar la contraseña de un usuario local codificada con base64 y XOR. Luego, para la escalada privilegio vertical, logre crear una copia del archivo binario Bash con el bit SUID habilitado aprovechando el sudo del comando copy y wilcard en un script en Bash ejecutado de manera periódica y automatizada por root.