Posts by Year

2024

HA Jocker CTF - TryHackMe

Debemos encontrar 1 bandera. Primero, a partir de un escaneo de puertos pude saber que había un servidor web que alojaba un sitio web con contenido estático y que admitía conexiones desde el puerto 80 Además, había otro sitio web que admitía conexiones desde el puerto 8080 pero su directorio raíz estaba protegido por un mecanismo de autenticación. Luego, realice fuerza bruta de directorios en el directorio raíz del primer sitio web, logrando encontrar un username valido para ser usado en un ataque de fuerza bruta contra el login. Luego, pude saber que el segundo sitio web estaba siendo gestionado con el CMS Joomla. Luego, con la fuerza bruta de directorios realizada por “ Nikto” , logre encontrar un archivo Zip que contenía un archivo SQL con diversas instrucciones SQL donde una de ella contenía las credenciales del usuario admin, pero su contraseña estaba en forma de hash, que logre crackearlo fácilmente, logrando acceder al portal de gestión del CMS. Luego, en el portal de gestión del CMS, logre modifica...

JPGChat - TryHackMe

Debemos encontrar 1 bandera. Primero, a partir de un escaneo de puertos pude saber que había un servicio desconocido ejecutándose. Además, en el banner emitido por el servicio al momento de establecer una conexión, se podía observar un mensaje que nos indicaba que el código fuente del servicio estaba en un repositorio Github. Luego, de buscar el repositorio en Internet, pude analizar su código fuente, dándome cuenta de que era vulnerable a Command Injection, por lo que establecí una conexión con el servicio mediante Netcat, logrando ejecutar una reverse Shell. Luego, en la escalada de privilegios, pude observar que el usuario podía ejecutar un script en Python con los privilegios de root mediante el comando sudo. Además, pude observar que la configuración “SETENV” estaba habilitada en el archivo “sudoers” permitiendo ejecutar un Python Library Hijackign mediante la variable de entorno PYTHONPATH y aprovechando que el script importaba una librería. Logrando, asignar el bit SUID al archivo binario bash con e...

Dreaming - TryHackMe

Debemos encontrar 3 banderas. Primero, a partir de un escaneo de puertos pude saber que había un servidor web que admitía conexiones desde el puerto 80. Luego, realice fuerza bruta de directorios en el directorio raíz del servidor web, logrando encontrar el directorio raíz del “CMS Pluck”. Luego, logre acceder al portal de gestión del CMS debido al uso de credenciales por defecto en su mecanismo de autenticación. En el portal de gestión logre saber la versión del CMS, por lo que pude encontrar un exploit que explotaba la vulnerabilidad “File Upload”, logrando replicar la explotación de manera manual. Luego, en la escalada de privilegio horizontal, encontré las credenciales del usuario “Lucien” en un script en Python. Luego, en otra escalada horizontal, aproveche que podía ejecutar un script en Python con los privilegios del usuario “death” mediante el comando sudo, permitiéndome explotar la vulnerabilidad “Command Injection”, que consistía en inyectar nuestro payload como un registro en la base de datos My...

DAV - TryHackMe

Debemos encontrar 2 banderas. Primero, a partir de un escaneo de puertos pude saber que había un servidor web ejecutándose en el puerto 80. Luego, realice fuerza bruta de directorios en el directorio raíz del servidor web, logrando obtener el directorio “webdav” que estaba protegido por un mecanismo de autenticación que consistía en un login. Además, debido al nombre de este directorio, pude deducir que el servidor web tenía habilitado la extensión “WebDAV”, por lo que logre enumerar los tipos de archivos que podía cargar en el directorio “webdav”, y logre cargar un archivo PHP con el fin de ejecutar una reverse Shell. Luego, en la escalada de privilegios, me di cuenta que el usuario “www-data” podía ejecutar el comando “cat” con los privilegios de root mediante el comando “sudo”, por lo que pude observar el contenido de los archivos localizados en directorios “home” del usuario “merlin” y “root”, que contenían las dos banderas.

Super Secret Tip - TryHackMe

Debemos encontrar 2 banderas. Primero, a partir de un escaneo de puertos pude saber que un servidor FTP permitía conexiones anónimas,logrando enumerar un recurso compartido que contenía un mensaje codificado con Base64 y Vigenere. Además, para conocer la clave utilizada en el cifrado Vigenere, observe el espectrograma de un archivo de audio, que fue encontrado a partir de una fuerza bruta de directorios desde el directorio raíz del servidor web. Luego, de decodificar y descifrar el mensaje, logre saber el password de un usuario local del sistema destino. Luego, en la escalada de privilegio horizontal, aproveche que un script Python era ejecutado de manera periódica y automatizada con los privilegios de un usuario local, logrando realizar un Command Injection para ejecutar una reverse Shell con los privilegios de dicho usuario. Luego, en la escalada de privilegios vertical, aproveche que el usuario pertenencia al grupo secundario lxd para ejecutar un contenedor donde se ejecuta una Shell Bash con privilegio...

VulnNet - TryHackMe

Debemos encontrar 2 banderas. Primero, a partir de un escaneo de puertos pude saber que había un servidor web que alojaba un sitio web cuyas funcionalidades y formularios no estaban operativos. Luego, analizando los scripts JavaScript que se cargan en el sitio web, encontramos el dominio del sitio web y un subdominio cuyo directorio raíz está siendo protegido por un login. Además, se logró encontrar un parámetro GET vulnerable a “LFI” que me permitió observar el contenido del archivo “000-default.conf” que contiene la ruta del archivo “.htpasswd”, logrando obtener las credenciales para acceder al directorio raíz del subdominio en el archivo “.htpasswd”. Luego, me encontré con la aplicación “CLIPBUCKET” con la versión 4.0 vulnerable a “File Upload”, logrando cargar un archivo PHP en el servidor web destino con el fin de obtener una reverse shell. Para la escalada de privilegio, encontré una clave privada SSH encriptada (cuyo passphrase puedo ser encontrada con “John The Ripper”) del usuario “server-managem...

Mindgames - TryHackMe

Debemos encontrar 2 bandera. Primero, a partir de un escaneo de puertos pude saber que había un servidor web que alojaba una aplicación web que contaba de un formulario con un campo donde podías ingresar código en BrainFuck que luego iba a ser traducido a código en Python e iba a ser ejecutado, por lo tanto, aprovechando que la librería os y sus métodos logro ejecutar comandos en el sistema operativo del sistema destino con el fin de ejecutar una reverse Shell. Luego, para la escalada de privilegio vertical, aproveche que el archivo binario openssl tenía asignado el capability cap_setuid, logrando obtener los privilegios de root. Además, el procedimiento de la escalada de privilegio vertical a partir del uso del binario openssl esta mejor detallada en el articulo https://chaudhary1337.github.io/p/how-to-openssl-cap_setuid-ep-privesc-exploit/.

ConvertMyVideo - TryHackMe

Debemos encontrar 1 bandera. Primero, a partir de un escaneo de puertos pude saber que había un servidor web que alojaba una aplicación web que constaba de un formulario con un campo asociado a la funcionalidad de convertir videos en archivos de audio en formato MP3. Además, el campo del formulario aceptaba como valor el identificador del video. Luego, a partir del análisis de un script JavaScript insertado en el código fuente, se logró saber que el identificador del video era incorporado en una URL dentro de un parámetro llamado yt_url que formaba parte de la solicitud POST. Ademas,se supo que el cuerpo de la respuesta estaba en formato JSON, y el valor de una clave era reflejada en la página de la aplicación web. Se logro inyectar comandos en el parámetro yt_url de la solicitud POST con el fin de observar los resultados en el valor de la clave “output” de la data JSON de la respuesta HTTP. Mediante esta vulnerabilidad se logró ejecutar una reverse Shell. Luego, en la escalada vertical, aproveche que un s...

Back to Top ↑

2023

VulnNet:Internal - TryHackMe

Debemos encontrar 3 banderas. Primero, a partir de un escaneo de puertos pude saber que había un servidor NFS que alojaba un directorio compartido que contenía el archivo de configuración del programa Redis. Luego, con el valor del parámetro “requirepasss” logre autenticarme y volcar los datos de las bases de datos de Redis, logrando encontrar un mensaje codificado en Base64, cuyo contenido decodificado contenía unas credenciales para acceder al módulo compartido del Rsync, que contenía el directorio home de un usuario local, logrando cargar una clave publica SSH con el fin de acceder al sistema destino mediante la clave privada SSH del servicio SSH. Luego, en la escalada de privilegio vertical, pude saber que la herramienta TeamCity estaba siendo ejecutado por el usuario root, y en el puerto 8111 y que solo admitía conexiones provenientes del mismo sistema, por tal razón realice un Local Port Forwarding con el fin de poder acceder a su interfaz web, logrando autenticarme mediante una token de autenticació...

For Business Reasons - TryHackMe

Debemos encontrar 2 banderas. Primero, a partir de un escaneo de puertos pude saber que un servidor web que alojaba un sitio web creado con el CMS WordPress. Luego, utilizando WPScan logre obtener una credencial válida para acceder al panel de gestión del CMS. Luego, logre obtener acceso a un contenedor Docker del sistema destino mediante tres formas (modificando el código fuente de un archivo de un Theme, Plugin o instalando y activando un Plugin malicioso). Luego, cree un script en Bash para escanear la subred de los contenedores Docker y el sistema anfitrión, logrando saber que el sistema anfitrión tenia un puerto abierto con el servicio SSH ejecutado. Luego, mediante un Reverse Port Forwarding con chisel logre acceder al sistema anfitrión mediante el servicio SSH y reutilizando las credenciales del usuario del CMS. Luego, en la escalada de privilegio vertical, encontré dos formas aprovechando que el usuario local pertenecía al grupo secundario Docker y lxd.

Break Out The Cage - TryHackMe

Debemos encontrar 2 banderas. Primero, a partir de un escaneo de puertos pude saber que un servidor FTP permitía conexiones anónimas,logrando enumerar un recurso compartido que contenía un mensaje codificado con Base64 y Vigenere. Además, para conocer la clave utilizada en el cifrado Vigenere, observe el espectrograma de un archivo de audio, que fue encontrado a partir de una fuerza bruta de directorios desde el directorio raíz del servidor web. Luego, de decodificar y descifrar el mensaje, logre saber el password de un usuario local del sistema destino. Luego, en la escalada de privilegio horizontal, aproveche que un script Python era ejecutado de manera periódica y automatizada con los privilegios de un usuario local, logrando realizar un Command Injection para ejecutar una reverse Shell con los privilegios de dicho usuario. Luego, en la escalada de privilegios vertical, aproveche que el usuario pertenencia al grupo secundario lxd para ejecutar un contenedor donde se ejecuta una Shell Bash con privilegio...

Jack - TryHackMe

Debemos encontrar 2 banderas. Primero, a partir de un escaneo de puertos pude saber que un servidor web se estaba ejecutando en el puerto 80 y que alojaba un sitio web desarrollado con el CMS WordPress. Luego, utilice WPScan para enumerar plugins, themes, y usernames del sitio web, logrando encontrar tres usernames válidos para acceder al portal de gestión CMS. Luego, realice un ataque de fuerza bruta de contraseñas contra el login del CMS logrando encontrar las credenciales de un usuario que no tenia el rol de Administrador, pero debido a la vulnerabilidad asociada con la versión del Plugin User Role Editor es que pude asignarle el rol de Administrador logrando modificar el código fuente de un archivo PHP de uno de los plugins utilizados por el sitio web con el fin ejecutara una reverse Shell. Luego, en la escalada privilegio horizontal, logre encontrar una clave privada SSH del usuario local Jack. Luego, en la escalada vertical, logre asignar el bit SUID al archivo binario bash mediante la vulnerabilidad...

Python Playground - TryHackMe

Debemos encontrar 3 banderas. Primero, a partir de un escaneo de puertos pude saber que un servidor web se estaba ejecutando en el puerto 80 y que se utilizaba la tecnología Node.js y Express para desplegar una aplicación web. Luego, utilice fuerza bruta de directorios en el directorio raíz del servidor, logrando obtener un login exclusivo para el admin. Además, aprovechando que la lógica de este login se había implementado en un script JavaScript, cree un script JavaScript para realizar un proceso inverso al implementado en la lógica del login para codificar la contraseña, logrando obtener omitir la autenticación, y en el panel de gestión había una funcionalidad que te permitía ejecutar código Python pero se había implementado un blacklist con ciertos comandos, aun así se logro evitar el blacklist logrando ejecutar una reverse Shell, logrando acceder a un contenedor Docker, pero para acceder al sistema anfitrión se reutilizo las contraseñas usadas en el login mediante el servicio SSH. Luego, en la escalad...

Temple - TryHackMe

Debemos encontrar 2 banderas. Primero, a partir de un escaneo de puertos pude saber que había servidor web del que viene integrado enFlask, y que almacena una aplicación web que constaba de un login que emitía mensajes de error genéricos. Luego, realizando fuerza de directorios desde el directorio raíz del servidor, encontramos un registro, que nos permitió registrar una cuenta y acceder al panel de gestion de la aplicación web donde me di cuenta que era vulnerable a SSTI debido al parámetro username del registro, logrando ejecutar comandos en el sistema operativo de manera remota, pero el registro tenía un blacklist sobre el username de varios caracteres que logre evitar con un payload encontrado en un repositorio Github y con algunas modificaciones extra. Además, documente un método alternativo para evitar el blaclist del registro mediante la creación de una cookie de sesión con flask-unsign. Luego, en la escalada de privilegio, aproveche que el servicio logstash era ejecutado con los privilegios de root...

Intranet - TryHackMe

Primero realice un escaneo de puertos, logrando saber que un servidor Apache, y uno para desarrollo en Flask, se estaban ejecutando. Además, este último servidor alojaba una aplicación web que constaba de una autenticación de dos factores, logrando autenticarme en el factor a partir de una enumeración de usernames y un ataque de fuerza bruta de contraseñas utilizando un wordlist personalizado y Hydra. Luego, el segundo factor constaba de un código de verificación de 4 dígitos que logre encontrarlo con fuerza bruta mediante ffuf o un script Python. Luego, en el portal de gestión de la aplicación web me encontré con un parámetro vulnerable a LFI, logrando observar el código fuente de la aplicación web, y logrando saber que utilizaba una clave secreté para firmar las cookies de sesión, logrando encontrar la clave secreta para crear una cookie de sesión con los datos de admin y firmado. Luego, en una funcionalidad administrativa, me encontré un parámetro vulnerable a Command Injection, logrando ejecutar una re...

That’s The Ticket - TryHackMe

Debemos lograr autenticarnos en un login con las credenciales del administrador. Para ello primero me creo una cuenta mediante el registro de la aplicación, luego accedo al portal de gestión de la aplicación donde puedo crear un ticket. Además, en los tickets podría agregar un mensaje.Además, me di cuenta de que la aplicación web no realizaba una sanitización sobre el mensaje al momento de incrustarlo en su respuesta, por lo que intenté capturar las cookies de sesión del administrador y enviarlas a un dominio de mi control, pero se había implementado la flag HttpOnly.Además, me di cuenta de que había un firewall que filtraba las solicitudes realizadas hacia sistemas externos. Luego, utilizando una herramienta que registraba consultas DNS y solicitudes HTTP realizadas hacia cierto dominio, logre obtener el email del administrador a traves de una consulta DNS registrada y realizada por el navegador web del administrador debido a un payload XSS ingresado en el ticket.Luego, utilice Hydra para encontrar su con...

CyberHeroes - TryHackMe

En este caso debemos omitir el mecanismo de autenticación de un login de un sitio web para obtener la flag. Primero, realicé un escaneo de puertos con Nmap para saber el número de puerto donde se esta ejecutando el servidor web que aloja el sitio web, Luego, accedí al sitio web para encontrar la ruta del login, que constaba de un formulario HTML con dos parámetros asociados al username y password. Luego, revise el código fuente de la pagina web donde estaba el login, dándome cuenta que la lógica de este mecanismo de autenticación se basaba en un conjunto de comandos dentro de una función JavaScript, que podía ser observaba en el mismo código fuente de la pagina web, Luego, analizando el código de esta función, pude obtener la composición de los username y password correcto, logrando omitir fácilmente la autenticación sin la necesidad de realizar fuerza bruta.

Classic Passwd - TryHackMe

Debemos analizar un archivo binario ejecutable LSB y obtener el username que nos solicitan al momento de que lo ejecutamos. Además, al ser LSB, debemos saber que los bytes se almacenaran en la memoria siguiendo el formato litte-endian. Luego, utilizo la herramienta Ghidra para realizar ingeniería inversa y poder obtener el código fuente del binario en C. Observando que se utiliza la función strcmp para comparar byte a byte, el username que ingresamos con los bytes almacenados desde una dirección de memoria que le corresponde a una variable predefinida en el programa. Además, debemos saber que la comparación se terminara cuando se tope con un byte nulo. Luego, si ambos strings son iguales, la función generará el valor entero 0, que cumplirá con la condición de un if, generando la bandera. Pero debemos tener en cuenta que se han definido otras variables cuyos bytes se han almacenado en direcciones de memoria consecutivas, por lo que debemos tener en cuenta estos bytes en el username que ingresaremos.

Different CTF - TryHackMe

Debemos encontrar dos banderas. Primero, a partir de un escaneo de puertos pude saber que un servidor web alojado un sitio web creado WordPress. Luego, realicé fuerza bruta de directorios con el fin de encontrar recursos escondidos en el directorio raíz del sitio web, encontrando un wordlist y una imagen, luego extraje un archivo de texto oculto en la imagen, pero antes utilicé stegcracker para encontrar la palabra clave requerida. Luego, encontré unas credenciales FTP de un usuario en el archivo de texto, logrando acceder a los recursos compartidos, que consista en el directorio raíz de otro sitio web creado con el mismo CMS, logrando cargar un archivo PHP en los recursos compartidos y que nos genere una reverse Shell cuando lo observemos a traves del navegador web. Luego, en la escalada privilegio vertical, utilice sucrack para crackear la contraseña de un usuario local, luego analice el código fuente de un archivo binario con diversas tools de ingeniería inversa, logrando obtener el password de root.

0x41haz - TryHackMe

En este caso debemos analizar un archivo binario ejecutable ELF y obtener el passwod que nos solicitan al momento de que lo ejecutamos. Pero antes nos damos cuenta de que si utilizamos el comando file sobre el archivo con el fin de saber el tipo y formato del archivo, nos toparemos con un mensaje de error, y esto es debido a que el sexto byte ha sido alterado. Además, este sexto byte va a definir la endianidad del archivo ELF de 64 bits. Una vez corregido el byte, podremos utilizar Ghidra para poder observar y analizar el código fuente del archivo binario, logrando saber que la contraseña solicitada debe tener 13 caracteres. Además, logramos saber que el programa realiza una comparación de los caracteres ingresados en la contraseña con otros caracteres de otras variables predefinidas en el programa, pero debemos tener en cuenta que los bytes de las variables predefinida se almacenan en la memoria en el formato little-endian. Para comprobar esto podemos utilizar el marco radaere2 en su modo depuración.

Fortress - TryHackMe

Primero a partir del escaneo de puertos de Nmap pude saber qué servicios se ejecutaban en los puertos abiertos. Luego, enumerando los recursos compartidos del servidor FTP, pude obtener un bytecode que había sido compilado con Python 2.7, logrando decompilarlo con uncompyle2, y obteniendo el script Python que implementaba un servidor que escuchaba conexiones en el puerto 5752, y que tenía un método de autenticación, logrando omitirlo y obtener la ruta de dos recursos. Uno de ellos era un script PHP, donde genere la colisión hash SHA-1 con el fin de obtener la ruta de un recurso que contenía la clave privada SSH del usuario h4rdy. Luego, omití la shell rbash asignado al usuario h4rdy, y en la escalada horizontal, aproveché que h4rdy podía ejecutar el comando cat con los privilegios de j4x0n con el fin de obtener su clave privada SSH. Luego, en la escalada vertical, encontré la credencial de j4x0n en un script en Bash, pudiendo ejecutar cualquier comando con los privilegios de root mediante sudo.

Athena - TryHackMe

En este caso debemos encontrar dos banderas ubicadas en la maquina Athenav1.9. Donde a partir del escaneo de puertos de Nmap pude saber que el servicio SMB se está ejecutando en los puertos 139 y 445. Luego, enumerando los recursos compartidos del servidor Samba, pude saber que hay un archivo de texto compartido donde encontré la ruta de un endpoint de una API que ofrece una funcionalidad similar al comando ping. Luego, aprovechando que el endpoint era vulnerable a Command Injection, logre inyectar un comando que genere un reverse Shell. Luego, para la escalada privilegio horizontal, logre encontrar un script en Bash que era ejecutado de manera automatizada y periódica con los privilegios del usuario athena, logrando modificar su contenido y realizar una reverse Shell. Luego, en la escalada vertical, aproveche que athena podía cargar un módulo kernel, que viene a ser un LKM rootkit, con los privilegios del usuario root, logrando analizar su código fuente con Ghidra.

Password brute-force via password change

Debemos autenticarnos en el login de un sitio web siendo carlos. Luego, me doy cuenta de que el sitio web consta con la funcionalidad de Resetear Contraseña. Además, su logica es primero ingresar un username o correo electrónico de un usuario valido en un formulario, luego le llega un correo electrónico al usuario ingresado, con una URL que tiene un token asociado a su cuenta, y al darle clic a la URL, eres redireccionado a una página web para resetear tu contraseña. La vulnerabilidad de la lógica de esta funcionalidad radica en que la URL es generada a partir del valor de la cabecera Host de la solicitud POST del primero formulario. Por lo que podemos usar la cabecera X-Forwarded-Host en la solicitud para alterar el valor de la cabecera Host, y de esa manera el sitio web enviara un correo electronico con una URL fraudulenta a carlos. Luego, cuando carlos haga clic en la URL, podremos observar el token en el registro de acceso de nuestro servidor web.

Password reset poisoning via middleware

Debemos autenticarnos en el login de un sitio web siendo carlos. Luego, me doy cuenta de que el sitio web consta con la funcionalidad de Resetear Contraseña. Además, su logica es primero ingresar un username o correo electrónico de un usuario valido en un formulario, luego le llega un correo electrónico al usuario ingresado, con una URL que tiene un token asociado a su cuenta, y al darle clic a la URL, eres redireccionado a una página web para resetear tu contraseña. La vulnerabilidad de la lógica de esta funcionalidad radica en que la URL es generada a partir del valor de la cabecera Host de la solicitud POST del primero formulario. Por lo que podemos usar la cabecera X-Forwarded-Host en la solicitud para alterar el valor de la cabecera Host, y de esa manera el sitio web enviara un correo electronico con una URL fraudulenta a carlos. Luego, cuando carlos haga clic en la URL, podremos observar el token en el registro de acceso de nuestro servidor web.

Offline password cracking

Debemos eliminar la cuenta del usuario carlos de un sitio web. Además, el enunciado del laboratorio nos provee las credenciales del usuario wiener. Primero, analice la lógica utilizada en la funcionalidad Stay logged in, que se establecia a traves de una cookie persistente, y que permitía omitir la autenticación del login del sitio web a pesar de que cierre todas las sesiones del navegador web. Luego, debido a que la cookie no tenía un alto grado de entropía, pude saber qué estaba conformado por el username y password del usuario. Luego, cree un script en Python para intentar obtener la cookie de carlos, pero no pude hacerlo debido a que no tenia el wordlist adecuado. Luego, aproveche la vulnerabilidad XSS en la funcionalidad de comentarios en los posts del sitio web, para robar las cookies de los usuarios que se autenticaron con la funcionalidad Stay logged, logrando obtener el password del usuario carlos.

Brute-forcing a stay-logged-in cookie

Debemos autenticarnos con la cuenta del usuario carlos a traves del login de un sitio web. Además, el enunciado del laboratorio nos provee las credenciales del usuario wiener. Primero, analice la lógica utilizada en la funcionalidad Stay logged in, que me permitía omitir la autenticación del login del sitio web a pesar de que cierre todas las sesiones del navegador web. Luego, me di cuenta de que el sitio web establece una cookie en nuestro navegador web para la implementación de esta funcionalidad. Luego, debido a que la cookie no tenía un alto grado de entropía, pude saber qué estaba conformado por el username y password del usuario, y utilizaba la codificación base64 y un hash MD5. Luego, cree un script en Python para encontrar la cookie y contraseña correcta del usuario carlos con el fin de omitir la autenticación del login del sitio web.

Password Reset Broken Logic

Debemos autenticarnos con la cuenta del usuario carlos a traves del login de un sitio web. Además, el enunciado del laboratorio nos provee las credenciales del usuario wiener. Primero, analice la lógica utilizada en la funcionalidad Restablecer Contraseña, que me redirigía a una página web que constaba de un formulario HTML donde debía indicar el username o un email donde se iba a enviar un correo electrónico con la URL de la página web donde iba a restablecer la contraseña de la cuenta del usuario especificado. Luego, accedí a la bandeja de entrada del correo electrónico del usuario wiener para acceder a la URL, que constaba de un parámetro GET token que tenía un valor con un alto grado de entropía.Luego, fui redirigido a una pagina web que constaba de un formulario con dos campos escondidos que contenían el valor del token y el username.Luego, modifique el username y elimine el valor del token de la solicitud POST realizada desde el formulario, logrando modificar el password de carlos.

2FA bypass using a brute-force attack

Debemos lograr omitir el segundo factor de autenticación, que viene a ser un código de verificación de 4 dígitos asignado a la cuenta del usuario carlos, de un sitio web. Además, el enunciado del laboratorio nos provee las credenciales del usuario Carlos para lograr autenticarnos en el primer factor. Luego, analicé la lógica implementada en el segundo factor de autenticación donde me di cuenta de que luego de 2 dos intentos fallidos se cerraba automáticamente la sesión, y tenía que autenticarme de nuevo en el primer factor, de esta manera ralentizaba el ataque de fuerza bruta sobre el código de verificación. Además, una nota en el enunciado del laboratorio nos dice que después de los dos intentos fallidos, el código de verificación se reiniciara, es decir, cambiara de valor. Luego, teniendo en cuenta toda las restricciones cree un script en Python para automatizar el ataque de fuerza bruta, y ejecute el script varias veces simultáneamente aunque con cierto retraso para evitar omitir el codigo.

2FA broken logic

Debemos autenticarnos con la cuenta del usuario carlos a traves del mecanismo 2FA de un sitio web. Además, el enunciado del laboratorio nos provee las credenciales del usuario wiener. Primero, analice la lógica utilizada por el 2FA. Para ello capture la respuesta HTTP de la solicitud POST realizada en la autenticación del login con las credenciales de wiener, dándome cuenta de que el servidor web establecía dos cookies de sesión donde uno de ellos tomaba el valor del username por lo que cambia su valor a carlos. Luego, debido a que la respuesta tenía un código de estado HTTP igual a 302, fui redirigido a otra página web donde debía insertar el código de verificación de 4 dígitos. Luego, debido a que no había una medida preventiva que evitara o ralentizara el ataque de fuerza bruta sobre el código de verificación, es que realice un script en Python para automatizar el ataque de fuerza bruta sobre el código de verificación.

Broken brute-force protection, multiple credentials per request

Debemos encontrar la contraseña del usuario Carlos para autenticarnos exitosamente en el login del sitio web. Para ello primero analizo la lógica implementada en el login, obteniendo un mensaje de error genérico en las respuestas HTTP, independiente de si me autentique con un username valido o no. Además, si intento autenticarme fallidamente muchas veces seguidas con el username valido Carlos, obtengo un mensaje de error indicándome que no puedo autenticarme por un minuto. Además, si intento omitir esta restricción con la cabecera X-Forwarded-For, no tendré éxito ya que el servidor web no admite su uso. Luego, analizando el cuerpo de la solicitud HTTP, me doy cuenta de que los datos son transmitidos en un formato JSON, permitiéndome realizar una solicitud con múltiples contraseñas en el parámetro asociado al password. De esta manera logre autenticarme exitosamente. Luego, para obtener el password, elabore un script teniendo en cuenta el mensaje de restricción, error genérico, y el tiempo de bloqueo.

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.

Ghizer - TryHackMe

Debemos encontrar dos banderas. Donde a partir de un escaneo de puertos pude saber que hay un servicio Web, FTP. Además, gracias a un script de Nmap pude saber que la aplicación LimeSurvey está ejecutándose en el servidor web. Luego, logre acceder a su panel de administración mediante las credenciales por defecto, logrando saber su versión y explotando la vulnerabilidad RCE asociada a su versión mediante un exploit escrito en Python encontrado en Exploit-DB. Luego, para la escalada de privilegio horizontal, aproveche que un usuario local estaba ejecutando la herramienta Ghidra en su modo Debug, logrando ejecutar una reverse Shell con los privilegios del usuario. Luego, para la escalada vertical, aproveche que un script en Python podía ser ejecutado con los privilegios de root mediante el comando sudo, para utilizar la técnica Pytthon Library Hijacking y generar una reverse Shell mediante una biblioteca maliciosa.

Kiba - TryHackMe

Debemos encontrar dos banderas. Donde a partir de un escaneo de puertos pude saber que hay un servicio Web, SSH, y una aplicación desconocida ejecutadas en el sistema destino. Además, gracias a una respuesta HTTP emitida por el servidor web pude saber que la aplicación ejecutada en el sistema destino es Kibana, que es utilizada para visualizar, buscar y analizar datos indexados en su motor de búsqueda integrado. Luego, logre encontrar un PoC de la vulnerabilidad RCE presente en la versión asociada a la aplicación Kibana, logrando acceder al sistema destino mediante una reverse Shell. Luego, para la escalada privilegio vertical, aproveche que al archivo binario ejecutable python3 se le había asignado el capability cap_setuid para ejecutar una nueva instancia de Shell con los privilegios de root.

Road - TryHackMe

Debemos encontrar dos banderas. Donde a partir de un escaneo de puertos pude saber que hay un servicio Web, SSH. Además, gracias a un script de Nmap, logre determinar que hay una página web de un sitio web, que contenía el nombre de dominio asociado al sitio web, y dos páginas web para registrarse y autenticarse. Luego, accedí a un portal de administración donde encontré la funcionalidad de cambiar contraseñas, pero debido a que el sitio web no realiza una correcta verificación en uno de los campos es que pude cambiar las contraseñas del usuario admin, logrando acceder al portal siendo el usuario admin. Luego, accedí al sistema destino mediante la vulnerabilidad File Upload. Luego, para la escalada privilegio horizontal, encontré unas credenciales en uno de los documentos de una base de datos MongoDB. Luego, para la escalada vertical, aproveche que la variable de entorno LD_PRELOAD estaba asignada a la configuración env_keep.

Internal - TryHackMe

Debemos encontrar dos banderas. Donde a partir de un escaneo de puertos pude saber que hay un servicio Web, SSH. Luego, realice fuerza bruta de directorios, logrando encontrar un sitio web asociado a un dominio. Además, el sitio web ha sido creado con el CMS Wordpress por lo que puede realizar enumeración de usernames y fuerza bruta de contraseñas con WPScan con el fin de acceder al portal de administración del CMS. Luego, modifique el código fuente de uno de los archivos del theme utilizado en el sitio web, para ejecutar una reverse Shell. Luego, para la escalada de privilegio horizontal, utilice unas credenciales encontradas en un archivo de texto. Luego, para la escalada vertical, realice un túnel SSH con el fin de poder acceder a la interfaz web del servicio Jenkins, ejecutado en un contenedor Docker, donde ejecute un comando Groovy para generar una revere Shell y acceder al contenedor donde encontré las credenciales de root.

VulnNet:Endgame - TryHackMe

Debemos encontrar dos banderas. Donde a partir de un escaneo de puertos pude saber que hay un servicio Web, SSH. Además, gracias a un script de Nmap, logre determinar que hay una página web, que contenía un nombre de dominio. Luego, realice una enumeración de subdominios, logrando encontrar un subdominio asociado a un sitio web que realizaba una solicitud hacia un endpoint de una API. Luego, logre enumere las bases de datos a partir del parámetro GET vulnerable a SQLi del endpoint, logrando extraer un hash y un wordlist de contraseñas para crackear el hash. Luego, me autentique al panel de gestión del CMS TYPO3 asociado a otro subdominio encontrado, logrando acceder al sistema destino mediante la vulnerabilidad File Upload. Luego, en la escalada horizontal, extraje unas credenciales guardades en un perfil de usuario de Firefox, y en la escalada vertical, aproveché que el programa OpenSSL tenía todo los capabilities habilitados.

Team - TryHackMe

Debemos encontrar dos banderas. Donde a partir de un escaneo de puertos pude saber que hay un servicio Web, SSH, FTP. Además, gracias a un script de Nmap, logre determinar que hay un pagina web almacenada en el servidor web. Donde pude encontrar un nombre de dominio de un sitio web en desarrollo. Luego, realice fuerza bruta de directorios con Gobuster sobre el directorio raíz del sitio web, logrando encontrar un archivo con credenciales para acceder al servidor FTP. Donde pude encontrar un archivo compartido que contenía un subdominio de un sitio web en desarrollo que era vulnerable a LFI, permitiéndome acceder a un archivo local del sistema destino que contenía una copia de la clave privada SSH de un usuario local. Luego, en la escalada privilegio horizontal aproveche que podía ejecutar un script con los privilegios de otro usuario, y en la escalda vertical, aproveche que podía modificar un script ejecutado con los privilegios de root.

Lian_Yu - TryHackMe

Debemos encontrar dos banderas. Donde a partir de un escaneo de puertos pude saber que hay un servicio Web, SSH, FTP, RPCbind. Además, gracias a un script de Nmap, logre determinar que hay un pagina web almacenada en el servidor web. Luego, a través de diversos mini retos que consistían en: observar el código fuente y modificar elementos HTML de páginas web, decodificar mensajes cifrados, realizar fuerza bruta directorios desde ciertas rutas, al final encontré unas credenciales para acceder al servidor FTP y extraer un archivo y dos imágenes. Donde modifiqué los números mágicos de una image y extraje datos ocultos en una imagen, logrando encontrar unas credenciales para acceder al sistema destino mediante el servicio SSH. Luego, para la escalada de privilegio vertical, aproveche que el usuario local podía ejecutar el comando con los privilegios del usuario root, para generar una nueva instancia de Shell con los privilegios de root.

Psycho Break - TryHackMe

Debemos encontrar dos banderas. Donde a partir de un escaneo de puertos pude saber que hay un servicio Web, SSH, FTP. Además, gracias a un script de Nmap, logre determinar que hay un pagina web almacenada en el servidor web. Luego, a través de diversos mini retos que consistían en: observar el código fuente, modificar elementos HTML, analizar scripts JavaScipt, utilizar programas de búsqueda inversa en imágenes, ejecutar comandos a través de un parámetro GET, decodificar mensajes cifrados en archivos de audio y texto mediante diversas herramienta en línea, realizar fuerza bruta directorios desde ciertas rutas, elaborar scripts en Python para automatizar la ejecución de un programa, al final logramos encontrar unas credenciales de inicio de sesión para acceder al sistema destino mediante el servicio SSH. Luego, para la escalada privilegio vertical modifique un script en Python, que era una tarea cron ejecutado con la cuenta del usuario root,

Chocolate Factory - TryHackMe

Debemos encontrar dos banderas. Donde a partir de un escaneo de puertos pude saber que hay un servicio Web, SSH, FTP y otros desconocidos. Además, gracias a un script de Nmap, logre determinar que el servidor FTP permite conexiones anónimas, logrando acceder a una imagen compartida en el servidor FTP. Luego, utilice la herramienta steghide para extraer un archivo de texto oculto en la imagen. Además, este archivo parecía al archivo /etc/passwd y contenía un hash de un usuario. Luego, cracke el hash con Hashcat, logrando autenticarme en un sitio web vulnerable a Command Inejction, permitiéndome ejecutar una reverse Shell. Luego, para la escalada privilegio horizontal utilicé una clave privada SSH generada por un usuario local, y para la escalada privilegio vertical, el editor de texto vi que podía ejecutarlo con los privilegios del usuario root.

Unstable Twin - TryHackMe

Debemos encontrar dos banderas. Donde a partir de un escaneo de puertos pude saber que hay un servicio Web y SSH. Luego, realicé fuerza bruta de directorios en el directorio raíz del servidor web, y encontré un endpoint de una API utilizada para la autenticación y otra para recuperar imágenes almacenadas en el servidor web. Luego, con el comando curl realice un SQLi a través de un parámetro vulnerable utilizada por el endpoint de una API para la autenticación, logrando extraer un hash de un usuario de los registros de la base de datos. Luego, cracke el hash con John The Ripper, logrando acceder al sistema mediante el servicio SSH, logrando encontrar la primera bandera en el sistema de archivos del usuario mary_ann, y utilizando steghide logre extraer unos strings de las imágenes, que también se podían obtener con el endpoint de una API creada para recuperar imágenes. Luego, concatene los strings y lo decodifico para obtener la ultima bandera.

Madeye’s Castle - TryHackMe

Debemos encontrar tres banderas. Donde a partir de un escaneo de puertos pude saber que hay un servicio web, SSH y SMB. Luego, encontré un directorio compartido en el servidor SMB que contenía un wordlist y tres username. Luego, encontré un nombre de dominio de una aplicación web en desarrollo en la pagina web que viene por defecto en la instalación del programa servidor Apache. Luego, realicé un ataque de fuerza bruta fallido contra un formulario HTML de la aplicación web utilizando el wordlist y los usernames encontrados. Luego, realice fuerza bruta de directorios en el directorio raíz de la aplicación y el servidor web, y encontré un recurso que contenía dos usernames y realice otro intento de ataque de fuerza bruta fallido. Luego, realice un SQLi sobre el formulario, logrando extraer y crakear un hash. Luego, para la escala horizontal aproveché que podía ejecutar el archivo binario pico con los privilegios de otro usuario, y para la escalada vertical encontré dos formas: Baron Samedit y un archivo SUID...

HackPark - TryHackMe

Debemos encontrar dos banderas en la maquina HackPark. Donde a partir del escaneo de puertos de Nmap pude saber que hay un servicio IIS, RDC. Además, gracias a sus scripts, logre saber que hay un sitio web tipo blog almacenado en el servidor web IIS, que fue creado por el CMS BlogEngine.NET. Luego, a través de la funcionalidad Recuperar Contraseñas del CMS pude obtener un username valido con el fin de realizar un ataque de fuerza bruta con Hydra sobre el login del CMS, logrando encontrar una credencial valida y acceder al portal de administración. Donde pude saber la versión del CMS y que presentaba la vulnerabilidad Directory Transversal (CVE-2019-6714). Luego, encontré un exploit, que logré analizar con el fin de recrear la explotación manualmente. Luego, para la escalada de privilegios vertical suplante un archivo ejecutable, que era como una tarea programada ejecutada de manera periódica y con los privilegios de un administrador.

Steel Mountain - TryHackMe

Debemos encontrar dos banderas en la maquina Stell Mountain. Donde a partir del escaneo de puertos de Nmap pude saber que hay un servicio RPC, SMB, RDP, IIS, y HFS en su versión 2.3, y levantado en el puerto 8080. Luego, accedí a la interfaz web del servidor HFS a través de mi navegador web, logrando saber que su parámetro GET Search, que es utilizado para buscar archivos compartidos por el servidor, era vulnerable a RCE o Command Injection (CVE-2014-6287) asociada a la versión 2.3 del servidor HFS. Luego, encontré un exploit, que logré analizar con el fin de crear mi propio payload a través de Burp Suite y explotar la vulnerabilidad manualmente. Luego, para la escalada de privilegios vertical utilice la vulnerabilidad Unquoted Path asociada al archivo ejecutable de un servicio, logrando ejecutar un archivo malicioso (creado con msfvenom) con los privilegios de LocalSystem.

Wekor - TryHackMe

Debemos encontrar 1 bandera en la maquina Wekor. Donde a partir del escaneo de puertos, pude saber que hay un servidor HTTP, SSH. Luego, encontré la ruta de un sitio web en robots.txt. Además, este sitio web en desarrollo contaba con un formulario donde uno de sus parametros era vulnerable a SQLi. Luego, capture una solicitud POST, realizada por el formulario, con Burp Suite con el fin de utilizarlo con sqlmap, logrando volcar todos los registros de la base de datos wordpress, que contenía el nombre de dominio de un sitio web elaborado por el CMS Wordpress, y los hashes de varios usuarios, que logre crackear con Hashcat. Luego, accedí al portal de administración del CMS, donde logré ganar acceso mediante la vulnerabilidad Theme Injection. Luego, en la escalada horizontal, recupere las credenciales almacenadas en cache mediante el servidor Memcached. Luego, en el escalda vertical, suplante un archivo binario Python con un archivo binario malicioso.

Tech_Supp0rt:1 - TryHackMe

Debemos encontrar 1 bandera en la maquina Tech_Supp0rt: 1. Donde a partir del escaneo de puertos, pude saber que hay un servidor HTTP, SSH, Samba. Luego, utilice un script de Nmap para enumerar los recursos compartidos del servidor SMB, encontrando un directorio que contenía un archivo con unas credenciales para acceder al panel de administración del CMS Subrion, donde pude explotar la vulnerabilidad File Upload para cargar un archivo PHP y generar una reverse Shell, que me permitió acceder al sistema destino. Luego, para la escalada privilegio horizontal, utilice Linpeas, encontrando una credencial en un archivo de configuración del CMS Wordpress. Luego, para ser root, utilice el comando iconv, que podía ejecutarlos con los privilegios de root, permitiéndome modificar el contenido la línea correspondiente a root en el archivo /etc/shadows.

Expose - TryHackMe

Debemos encontrar 2 banderas en la maquina Expose. Donde a partir del escaneo de puertos, pude saber que hay un servidor HTTP, SSH, FTP, DNS y Mosquitto. Luego, realice fuerza bruta de directorios sobre el directorio raíz del servidor web, encontrando una página web que contenía un formulario vulnerable a SQLi, permitiéndome volcar los registros de la bases de datos, llegando a encontrar dos recursos, uno de ellos estaba asociado a un hash que logre crackear con CrackStation, permitiéndome acceder al recurso y explotar la vulnerabilidad LFI, permitiéndome observar el nombre de un usuario local contenido en el archivo passwd y que era la clave para acceder al otro recurso, que presentaba la vulnerabilidad File Upload, logrando cargar un archivo PHP para acceder al sistema destino. Luego, realice una escalada privilegio horizontal a partir de una credencial encontrada en un archivo. Luego, para ser root, utilice el comando find que tenia el bit SUID habilitado.

CyberCrafted - TryHackMe

Debemos encontrar 4 banderas en la maquina CyberCrafted. Donde a partir del escaneo de puertos pude saber que hay un servidor Web, Minecraft, y SSH. Además, a partir de un script de Nmap pude saber de una página web con cierto nombre de dominio que lo utilicé para realizar una enumeración de subdominios, llegando a encontrar un subdominio de una página web, que contenía un login, y un subdominio de una tienda en línea, que no podía acceder, pero realice fuerza bruta de directorios sobre el directorio raíz de la aplicación web, encontrando un recurso PHP que era vulnerable a SQLi Blind, permitiéndome volcar los registros de la base de datos, y obtener acceso al sistema destino. Luego, realice doble escalda privilegio horizontal a partir de una clave privada SSH encriptada y una credencial encontrada en un log a partir de una tarea cron. Luego, para ser root, utilice el comando screen que podía ejecutarlo con los privilegios de root.

Cyborg - TryHackMe

Debemos encontrar dos banderas en la maquina Cyborg. Donde a partir del escaneo de puertos con Nmap pude saber que hay un servicio SSH y HTTP. Luego, realice fuerza bruta de directorios sobre el directorio raíz del servidor web, encontrando una aplicación web en desarrollo, cuyo código fuente contenía un enlace hacia un archivo tar y una página web, que nos indicaba sobre una copia de seguridad cifrada hecha por Alex. Además, otro recurso escondido fue un directory list donde uno de sus archivos contenía un hash de la copia de seguridad, que logre crackearlo con Hashcat. Luego, en el archivo tar encontré un repositorio Borg Backup donde logré extraer la copia de seguridad, que contenía las credenciales del usuario Alex. Luego, para la escalada privilegio vertical utilice un script, que podía ejecutar el usuario Alex con los privilegios de root, y que era una tipo de backdoor que me permitía ejecutar comandos con los privilegios de root.

Overpass - TryHackMe

Debemos encontrar dos banderas en la maquina Overpass. Donde a partir del escaneo de puertos con Nmap pude saber que hay un servidor SSH y un servidor web local que ha sido levantado utilizando el intérprete Goland. Además, con un script de Nmap supe que había una página web, que pertenecía a una aplicación web. Luego, realice fuerza bruta de directorios con Wfuzz sobre el directorio raíz del servidor web, encontrando un login, y un archivo JavaScript, utilizado para establecer las cookies de sesión, y que presentaba una debilidad en su código, logrando crear una cookie de sesión para omitir la autenticación del login. Luego, me encontré con una clave privada SSH encriptada, que logre crackear con JohnThe Ripper, luego inicie sesión en el sistema destino mediante la clave privada y siendo el usuario james. Luego, para la escalada privilegios vertical encontré dos maneras, explotando la vulnerabilidad Baron Samedit o a traves de una tarea cron ejecutada por root.

ToolsRus - TryHackMe

Debemos encontrar una bandera en la maquina ToolsRus. Donde a partir del escaneo de puertos de Nmap pude saber que hay un servidor web Apache, un servidor web Apache Tomcat, y el módulo Apache Jserv para la comunicación entre el servidor web Apache y Tomcat. Luego, realice fuerza bruta de directorios sobre el directorio raíz del servidor web Apache, encontrando un username valido. Además, encontré un recurso protegido por un método de autenticación, pero logre encontrar unas credenciales validas a través realizar un ataque de fuerza bruta con Hydra, permitiéndome acceder al recurso, que resulto ser un rabbit hole. Luego, realice fuerza bruta de directorios sobre el directorio raíz del servidor web Tomcat, encontrando un recurso protegido por un método de autenticación, pero logre acceder a el utilizando las credenciales encontradas anteriormente. Luego, logre desplegar una aplicación web Java con un payload malicioso, que cree con msfvenom, permitiéndome acceder al sistema destino siendo root.

Bolt - TryHackMe

Debemos encontrar una bandera en la maquina Bolt. Donde a partir del escaneo de puertos de Nmap pude saber que hay un servidor web Apache y un servidor web local que ha sido levantado utilizando el intérprete PHP. Además, a partir de una respuesta HTTP del servidor web PHP, pude saber que hay un sitio web que ha sido creado por el CMS Bolt. Luego, analizando las paginas web del sitio web pude encontrar unas credenciales del admin. Luego, accediendo al recurso bolt, que tenía un login, pude acceder al portal de administración del CMS utilizando las credenciales. Luego, inserte un payload, que me genero una reverse shell, en el código fuente de un archivo del theme que estaba utilizando el sitio web, llegando a obtener acceso al sistema destino siendo el usuario root.

Brute It - TryHackMe

Debemos encontrar tres banderas en la maquina Brute It. Donde a partir del escaneo de puertos de Nmap pude saber que hay un servicio HTTP y SSH. Luego, realice fuerza bruta de directorios sobre el directorio raíz del servidor web encontrando una página web que tenía un login. Luego, analicé su código fuente, y encontré un username valido, y el nombre de un usuario local. Luego, realice cracking de contraseñas online contra el login, llegando a encontrar unas credenciales validas. Luego, en el portal de administración del sitio web en desarrollo me encontré con un enlace que me redirigió a una clave privada SSH encriptada. Luego, utilice John The Ripper para crackear su clave, llegando a acceder al sistema destino mediante SSH. Luego, en escalada privilegios vertical utilice el comando cat, que lo podía ejecutar con los privilegios del usuario root, obteniendo el hash de root en /etc/shadow, y crackearlo con Hashcat, obteniendo el password de root.

Wgel - TryHackMe

Debemos encontrar dos banderas en la maquina Wgel. Donde a partir del escaneo de puertos de Nmap pude saber que hay un servicio HTTP y SSH. Además, a partir de un script de Nmap pude saber que había una página web de inicio que viene por defecto en la instalación del servidor Apache. Luego, analizando el código fuente de la página web nos encontramos con el username del desarrollador web. Luego, realice fuerza bruta de directorios con Wfuzz sobre el directorio raíz del servidor web encontrando un directorio de un sitio web en desarrollo. Luego realice fuerza bruta de directorios sobre el directorio del sitio web, encontrando una clave privada SSH, que le corresponde al desarrollador web. Luego, para la escalada de privilegios vertical utilice el comando wget, que lo podía ejecutar con los privilegios del usuario root, con el fin de modificar la línea del usuario root en el archivo /etc/shadow del sistema destino.

Ignite - TryHackMe

Debemos encontrar dos banderas en la maquina Ignite VM. Donde a partir del escaneo de puertos de Nmap pude saber que hay un servicio HTTP. Además, a partir de un script de Nmap pude saber que había una página web de inicio que viene por defecto en la instalación del CMS Fuel. Luego, pude conocer la versión del CMS Fuel, y pude encontrar en las bases de datos de vulnerabilidades Exploit-DB y NIST, la vulnerabilidad Command Injection o RCE asociada a la versión del CMS Fuel. Luego, analice el código de un exploit y recree la explotación manual, modificando el payload del exploit. Luego, para la escalada privilegios vertical, realice una enumeración manual sobre los archivos del directorio raíz del CMS Fuel, llegando a encontrar unas credenciales validas del superusuario root.

BoilerCTF - TryHackMe

Debemos encontrar dos banderas en la maquina BoilCTF. Donde a partir del escaneo de puertos de Nmap pude saber que hay un servicio HTTP, FTP, SSH, y Webmin. Luego, realice fuerza bruta de directorios sobre el directorio raíz del CMS Joomla, llegando a encontrar el CMS Joomla en su versión, 3.9.12.Luego, realice fuerza bruta de directorios sobre el directorio raíz del CMS, llegando a encontrar la herramienta sar2html, que proporciona una interfaz web para presentar los resultados del comando sar. Además, esta herramienta presentaba la vulnerabilidad Command Injection, que nos permitió observar el contenido de un registro, llegando a obtener las credenciales SSH de un usuario. Luego, para la escalada privilegios horizontal, utilice unas credenciales encontradas en un script, Luego, para la escalada vertical, utilice un archivo binario ejecutable find con el permiso SUID.

Source - TryHackMe

Debemos encontrar dos banderas en la maquina Source. Donde a partir del escaneo de puertos de Nmap pude saber que hay un servicio Webmin, en su versión 1.890, y levantado en el puerto 10000. Luego, accedí a la interfaz web del servicio Webmin a través de mi navegador web. Luego, busque en la base de datos de vulnerabilidad en línea Rapid7, vulnerabilidades asociadas con el servicio Webmin en su versión 1.890. Donde pude encontrar una vulnerabilidad RCE (CVE-2019-15107) asociada a esa versión. Luego, encontré un exploit en un repositorio de Github(https://github.com/n0obit4/Webmin_1.890-POC ), que utilice para explotar la vulnerabilidad, llegando a ejecutar un comando que me permitió cargar un script en Bash en el sistema destino con los privilegios del usuario root. Luego, ejecute otro comando para asignarle el permiso de ejecución al usuario root en el script, llegando a ejecutarlo y generar una reverse Shell con los privilegios del superusuario root.

Minotaur’s Labyrinth - TryHackMe

Debemos encontrar tres banderas en la maquina Labyrinth Fast. Donde a partir del escaneo de puertos de Nmap pude saber que hay un servicio HTTP, SSH. FTP, Además, con scripts de Nmap supe que había una página web, que contenía un login, y el servidor FTP admitía conexiones anónimas. Luego, pude acceder a los recursos compartido del servidor FTP. Donde encontré unas pistas para realizar fuerza bruta de directorios con Wfuzz, llegando a encontrar un registro que contenía unas credenciales, que me permitió autenticarme en el login accediendo al portal de administración de una aplicación web vulnerable a SQLi. Luego, obtuve los registros de su base de datos, y obtuve las credenciales del admin de la aplicación web, y logré autenticarme en la aplicación web, encontrando una sección nueva de la aplicación web que era vulnerable a Command Injection, logrando acceder al sistema. Luego, la escala privilegios vertical lo realiza a partir de un script, ejecutada por el usuario root.

UltraTech - TryHackMe

Debemos encontrar 1 bandera en la maquina Ultratech-latest. Donde a partir del escaneo de puertos de Nmap pude saber que hay un servicio HTTP, SSH, FTP, y una API. Además, con un script de Nmap supe que había una página web, que pertenecía a una aplicación web. Luego, analizando el código fuente de la aplicación web me encontré con la ruta de un directorio, que contenía 3 archivos JavaScript. Donde uno de ellos era utilizado para la creación de una API. Además, la API estaba levantado en uno de los puertos, y ofrecía la funcionalidad de ejecutar el comando ping en el sistema operativo del sistema destino a través de un parámetro GET que era vulnerable a Command Injection.Luego, en la escalada privilegio horizontal me encontré con un database SQLite. Donde encontré el hash de r00t, y logré crackearlo con John the Ripper. Luego, para la escalada vertical, la primera manera es aprovechando que el usuario r00t pertenece al grupo Docker, y la segunda manera es explotando la vulnerabilidad Sudo Baron Samedit.

Opacity - TryHackMe

Debemos encontrar dos banderas en la maquina Opacity2. Donde a partir del escaneo de puertos de Nmap pude saber que hay un servicio HTTP, SSH. Samba. Además, con un script de Nmap que había una página web, que constaba con un login, en el servidor web. Luego, realice fuerza bruta de directorios con Wfuzz para encontrar recursos escondidos en el directorio raíz del servidor web. Luego, me encontré con una aplicación web vulnerable a File Upload y que constaba de un analizador de extensiones, permitiéndome subir un archivo PHP que me genero una reverse shell. Luego, en la escalada de privilegios horizontal me encontré con un archivo cifrado del programa KeePass, logrando crackear su clave mediante John the Ripper, y obteniendo las credenciales del usuario sysadmin. Luego, para la escalada de privilegios vertical descubrí un script PHP era ejecutado por root de manera periódica, mediante el script pspy, y modificando uno de los archivos PHP incluidos en el script PHP, para generar una reverse Shell.

Inferno - TryHackMe

Debemos encontrar dos banderas en la maquina Inferno. Donde a partir del escaneo de puertos de Nmap pude saber que hay un servicio HTTP,SSH, y muchos puertos abiertos, que no podía determinar si había un servicio ejecutándose en ellos. Luego, utilice Wfuzz para encontrar recursos escondidos en el directorio raíz del servidor web, llegando a encontrar recurso escondido con código HTTP 401. Por lo tanto, debía proveer unas credenciales para acceder a él. Luego, utilice Hydra para encontrar unas credenciales validas. Luego, accedí al portal de administración de Codiad, que presentaba la vulnerabilidad File Upload, permitiendome cargar un archivo PHP que genero reverse Shell. Luego, para la escalada privilegios horizontal utilice unas credenciales encontradas en un archivo oculto del directorio home del usuario dante Luego, en la vertical aproveche que podía ejecutar el archivo binario tee con los privilegios de root, permitiéndome registrar un nuevo usuario en el sistema destino, con los privilegios de root.

Olympus - TryHackMe

Debemos encontrar 4 banderas en OlympusRoom. Donde a partir del escaneo de puertos de Nmap pude saber que hay un servicio HTTP y SSH. Además, con un script de Nmap supe que había un nombre de dominio de un sitio web en desarrollo. Luego, realice fuerza bruta de directorios para encontrar recursos escondidos en el directorio raíz del sitio web. Luego, me encontré con la vulnerabilidad SQLi en el sitio web. Llegando a volcar todos los registros de las bases de datos Olympus, y encontrando los hashes de tres usuarios, llegando a crackear uno de ellos con John the Ripper. Además, me percate de un subdominio asociado a los emails de dos de los usuarios, llegando a encontrar una aplicación web que era vulnerable a File Upload. Luego, para la escalada privilegios horizontal utilice un archivo binario SUID del usuario Zeus, llegando a obtener la clave privada SSH, pero estaba cifrada. Por lo tanto, utilice John the Ripper. Luego, para la escalada vertical utilice un script PHP, que resulto ser un backdoor.

SQHell - TryHackMe

Debemos encontrar cinco banderas en la maquina SQHell. Donde a partir del escaneo de puertos de Nmap pude saber que hay un servicio HTTP y SSH.Además, con un script de Nmap supe que había una aplicación web. Luego, me encontré con la vulnerabilidad SQLi In-band basada en errores en la página web. Donde se podía obtener información sobre el contenido de cada post, obteniendo la primera bandera. Luego, me encontré la vulnerabilidad SQLi Blind en un formulario HTTP, que me permitió omitir la autenticación y obtener la segunda bandera. Luego, me encontré con la vulnerabilidad SQLi Blind donde se podía obtener información sobre los usuarios. Luego, me encontré con un registro que utilizaba una solicitud GET JSON que era vulnerable a SQLi Blind basada en booleanos. Luego, a partir del uso del encabezado HTTP X-Forwarded-For y sqlmap, llegue a saber que se podía realizar una SQLi Blind Basada en el tiempo, y llegue a volcar todos los registros de las bases de datos, obteniendo la quinta bandera.

WWBuddy - TryHackMe

Debemos encontrar una bandera en la maquina WWBuddy. Donde a partir del escaneo de puertos de Nmap pude saber que hay un servicio HTTP y SSH.Además, con un script de Nmap supe que hay una aplicación web. Luego, esta aplicación web tenia con la función Change password vulnerable a SQLi, que me permitió cambiar las contraseñas de los administradores. Luego, realice una fuerza bruta de directorios con gobuster, llegando a encontrar un recurso que me permitió explotar la vulnerabilidad Command Injection para obtener acceso al sistema destino. Luego, mediante linpeas puede saber que el sistema destino presentaba la vulnerabilidad Baron Samedit, llegando a explotarla y ser root. Además, encontré unas credenciales almacenadas en los registros, llegando a ser el usuario Roberto. Luego, realice un cracking de contraseñas online contra el servicio SSH llegando a obtener las credenciales del usuario Jenny. Luego, realice una manipulación de la variable de entorno USER, encontrando otra manera de ser root.

Jurassic Park - TryHackMe

Debemos encontrar cuatro banderas en la maquina HackBack-WE-TASK4. Donde a partir del escaneo de puertos de Nmap pude saber que hay un servicio HTTP y SSH. Además, con un script de Nmap supe que hay un sitio web almacenado en el servidor web. Luego, me encontré con la vulnerabilidad Blind SQli en uno de los parámetros GET, que utilizaba el sitio web para realizar sus consultas SQL hacia su base de datos. Además, me encontré que el desarrollador del sitio web había implementado una lista negra para limitar los valores que pueden ingresar los usuarios al parámetro GET. Luego, realice una enumeración manual y automatizada con sqlmap sobre las bases de datos que consultaba el sitio web, llegando a encontrar unas credenciales de un usuario local en el sistema objetivo. Luego, accedí al sistema destino utilizando el servicio SSH y las credenciales obtenidas anteriormente. Luego, aprovechando que podía ejecutar el archivo binario scp con los privilegios de root es que realice una escalada de privilegios vertical.

Revenge - TryHackMe

Debemos encontrar dos banderas en la maquina Poster. Donde a partir del escaneo de puertos de Nmap pude saber que hay un servicio HTTP, SSH. Además, con un script de Nmap supe que hay un sitio web almacenado en el servidor web. Luego, realice una fuerza bruta de directorios con gobuster, llegando a encontrar dos formularios HTML para los administradores y clientes del sitio web. Luego, me encontré con la vulnerabilidad Blind SQli al momento de observar los productos que mostraba el sitio web. Luego, realice una enumeración manual y automatizada con sqlmap sobre las bases de datos que consultaba el sitio web, llegando a encontrar unas credenciales de un usuario local del sistema objetivo. Luego, accedí al sistema destino utilizando el servicio SSH. Luego, realice una escalada de privilegios modificando el contenido del archivo de configuración del servicio duckyinc por una reverse Shell con el fin de reiniciar el servicio. Por último, realice un ataque Defacement sobre la pagina de inicio del sitio web.

Lunizz CTF - TryHackMe

Debemos encontrar dos banderas en Lunizz CTF. Donde a partir del escaneo de puertos de Nmap pude saber que hay un servicio HTTP, MySQL. Luego, realice una fuerza bruta de directorios con gobuster, llegando a encontrar tres recursos escondidos. Donde uno de ellos contenía unas credenciales para acceder al servidor MySQL. Luego, modificando la columna de una tabla de una base de datos, pude ejecutar comandos, que me genero una reverse Shell, a través de otro recurso escondido. Luego, utilice linpeas para encontrar vectores de escalada de privilegios, llegando a encontrar un hash bcrypt, que contenía la contraseña del usuario Adam. Luego, realice un script en Python para optimizar el crackeo del hash bcrypt. Luego, siendo el usuario adam, realice una enumeración manual sobre sus directorios, llegando a encontrar la contraseña del usuario mason en un enlace de Google Maps. Luego, realice una enumeración de todos los procesos, encontrando un tipo de backdoor. Donde llegue a cambiar la contraseña del usuario root.

Poster - TryHackMe

Debemos encontrar dos banderas en la maquina Poster. Donde a partir del escaneo de puertos de Nmap pude saber que hay un servicio HTTP, SSH, PostgreSQL.Luego, utilice la herramienta Hydra con el fin de realizar un ataque de fuerza bruta sobre la autenticación del servidor PostgreSQL. Donde llegue a obtener unas credenciales, que les pertenecia al superusuario postgres, para acceder al servidor PostgreSQL. Luego, accedí al servidor PostgreSQL con el fin de saber la versión del DBMS. Luego, sabiendo que la versión del DBMS es mayor a 9.3 y que tengo las credenciales del superusuario postgres, utilice la funcion COPY TO/FROM PROGRAM para ejecutar un comando en el sistema destino con el fin de generar una reverse Shell. Luego, para la escalada de privilegios horizontal utilice unas credenciales del usuario local alison en un archivo de configuración del sitio web. Luego, para la escala de privilegios vertical mediante el archivo binario bash, que podía ejecutarlo con los privilegios del usuario root.

Daily Budge - TryHackMe

Debemos encontrar dos banderas en la maquina Daily Bugle. Donde a partir del escaneo de puertos de Nmap pude saber que hay un servicio HTTP, SSH, MariaDB. Además, con un script de Nmap supe que hay un sitio web, y que ha sido creado y esta siendo gestionado por el CMS Joomla. Además, a través del recurso joomla.xml pude saber la versión del CMS. Luego, buscando en Internet llegue a saber que esa versión del CMS es vulnerable a SQLi, explotandolo con sqlmap o con un script Python, encontrado en un repositorio GitHub, con el fin de enumerar información sobre las bases de datos. Llegando, a encontrar unas credenciales válidas para la autenticación en un formulario que me permitió acceder al portal de administración del CMS. Donde, explote la vulnerabilidad Template Injection para ganar acceso al sistema destino. Luego, realice un escalda de privilegios horizontal mediante unas credenciales en un archivo de configuración. Luego, realice un escalada de privilegios vertical mediante el archivo binario yum

Game Zone - TryHackMe

Debemos encontrar dos banderas en la maquina Game Zone. Donde a partir del escaneo de puertos de Nmap pude saber que hay un servicio HTTP y SSH. Además, con un script de Nmap supe que hay una página web almacenada en el servidor web. Además, esta página web viene a formar parte de un sitio web, que es vulnerable a SQLi Blind y SQLi basada en errores que me permitió omitir la autenticación de un formulario y volcar los registros de una columna de una base de datos. Llegando a encontrar unas credenciales en forma de hash que logre crackear usando John the Ripper, y utilizándolo para acceder al sistema destino mediante el servicio SSH. Luego, implemente un Tunel SSH para poder acceder al servicio Webmin, que se estaba ejecutando en el sistema destino, a través de mi navegador web. Luego, aprovechando la vulnerabilidad RCE que presentaba el servicio Webmin en su versión 1.580, realice una escalada de privilegios vertical mediante una reverse Shell con los privilegios del usuario root.

The MarketPlace - TryHackMe

Debemos encontrar 2 banderas en la maquina The Marketplace. Donde a partir del escaneo de puertos de Nmap pude saber que hay un servicio HTTP y Node.js, que actúa como un servidor web. Además, con un script de Nmap supe que hay una página web almacenada en el servidor web. Además, esta página web viene a formar parte de una aplicación web, que es vulnerable a SQLi basada en errores y XSS. Luego, explotando ambas vulnerabilidades llege a encontrar unas credenciales, que me permitió acceder al sistema destino siendo el usuario local jake. Luego, realice una escalada de privilegios horizontal aprovechando que podía ejecutar un script con los privilegios del usuario Michael. Además, el script utilizaba el comando tar y un comodin o wilcard. Donde aproveche el uso del comodín en el comando tar para generar una Shell con los privilegios del usuario michael. Luego, realice una escalada vertical para ser el usuario root aprovechando que el usuario michael pertenece al grupo secundario Docker.

DogCat - TryHackMe

Debemos encontrar 4 banderas en la maquina dogcatvm. Donde a partir del escaneo de puertos de Nmap pude saber que hay un servicio HTTP y SSH.Además, con un script de Nmap supe que hay una página web almacenada en el servidor web, que presentaba la vulnerabilidad Path Trasnversal.Luego, utilizando Burp Suite pude observar el contenido de los archivos de registros del servicio web. Luego, modificando el valor del encabezado User-Agent con la extensión User-Agent Switcher and Manager, y aprovechando el uso de la función include pude ejecutar una reverse shell a través del parámetro GET cmd. De esta manera se obtuvo acceso al sistema destino. Luego, para la escalada de privilegios utilice env y sudo. Ademas, utilizando Linpeas, pude deducir que había obtenido acceso al sistema de un contenedor Docker ejecutado en el sistema destino anfitrión. Luego, para salir del contenedor y obtener acceso al sistema destino anfitrión modifique el contenido de un script, que era una tarea cron ejecutada por el usuario root.

Chill Hack - TryHackMe

Debemos encontrar dos banderas en la maquina Chill Hack. Donde a partir del escaneo de puertos de Nmap pude saber que hay un servicio HTTP,SSH, y FTP. Además, con el script http-title.nse de Nmap supe que hay una página web almacenada en el servidor web. Luego, utilice wfuzz para realizar fuerza bruta de directorios sobre sitio web, llegando a encontrar una página web, que presentaba la vulnerabilidad RCE, y mediante su explotación obtuvimos acceso al sistema destino. Luego, realizamos una escalada de privilegios horizontal aprovechando que podíamos ejecutar un script con los privilegios del usuario apaar.Luego, realizamos otra escalada horizontal a partir del uso de unas credenciales encontradas en un archivo PHP oculto en una imagen JPEG que logramos extraer utilizando Steghide y John The Ripper. Luego, realizamos una escalada vertical para ser el usuario root aprovechando que el usuario anurodh pertenece al grupo secundario Docker.

Gallery - TryHackMe

Debemos encontrar dos banderas en la maquina Gallery PwnKit Solve. Donde a partir del escaneo de puertos de Nmap pude saber que hay un servicio HTTPen el puerto 80 y 8080. Además, con el script http-title.nse de Nmap supe que hay una página web almacenada en el servidor web del puerto 8080. Donde encontré un formulario o login, que era a vulnerable SQLi Blind, permitiéndome omitir la autenticación para acceder a la página de administración de la aplicación web. Luego, pude cargar un archivo PHP, que nos genere una reverse Shell hacia mi sistema, en la imagen del avatar. Llegando a obtener acceso al sistema destino. Luego, realizamos un tratamiento del tty para que nuestra reverse Shell sea estable e interactiva. Luego, realizamos una escalada horizontal para ser el usuario mike mediante unas credenciales encontrados en el archivo .bash_history. Luego, realizamos una escalada vertical para ser el usuario root mediante un script y el editor de texto de terminal nano.

Archangel - TryHackMe

Debemos encontrar dos banderas en la maquina ARcHanG3l. Donde a partir del escaneo de puertos de Nmap pude saber que hay un servicio HTTP y SSH.Ademas, con el script http-title.nse de Nmap supe que hay una página web almacenada en el servidor web. Donde encontré un nombre de dominio el cual estuvo asociado con otro sitio web. Luego, utilice wfuzz para realizar fuerza bruta de directorios sobre sitio web, llegando a encontrar una página web, que presentaba la vulnerabilidad Path Trasnversal. Luego, se observó el contenido del archivo /etc/passwd Además, utilizando Burp Suite pude observar el contenido de los archivos de registros del servicio web. Luego, modificando el valor del encabezado User-Agent con la extensión User-Agent Switcher and Manager, y utilizando la función include pudimos ejecutar comandos remotos en el sistema destino a través del parámetro GET cmd. Luego, realizamos una escalada de privilegios horizontal para ser el usuario archangel mediante una tarea cron. Luego, realizamos una escalada...

Tokyo Ghoul - TryHackMe

Debemos encontrar dos banderas en la maquina tokyo ghoul. Donde a partir del escaneo de puertos de Nmap pude saber que hay un servicio FTP, HTTP y SSH. Ademas, a partir del script ftp-anom.nse de Nmap pude saber que el servidor FTP admite conexiones anónimas y se enumeró un directorio compartido,que contenía un archivo ejecutable y una imagen JPG. Luego, encontré una frase clave en el archivo ejecutable. Luego, utilice steghide para extraer un archivo oculto, que contenía el nombre de un recurso web, de la imagen usando la frase clave. Luego, utilice wfuzz para realizar fuerza bruta de directorios sobre el recurso web, llegando a encontrar un sitio web vulnerable a Path Traversal. Luego, se observó el contenido del archivo /etc/passwd. Donde se obtuvo las credenciales de un usuario a partir del crackeo de su hash mediante John The Ripper. Luego, realizamos una escalada de privilegios para ser el usuario root aprovechando que podemos ejecutar un script en Python con el comando sudo.

Brooklyn Nine Nine - TryHackMe

Debemos encontrar dos banderas en la maquina Brooklyn99 CTF. Donde a partir del escaneo de puertos de Nmap pude saber que hay un servicio HTTP, FTP, y SSH. Además, con el script http-title.nse de Nmap supe que hay una página web almacenada en el servidor web, y analizando el código fuente de la página web pude deducir que se han almacenado datos ocultos en la imagen de portada de la página web. Para ello utilice la herramienta stegcracker para crackear la contraseña que necesitaba para acceder a los datos ocultos de la imagen a través de steghide. Luego, encontré unas credenciales del usuario holt que las utilicé para acceder al sistema objetivo a través del servicio SSH. Luego, aprovechándonos de que el usuario holt puede ejecutar el comando nano con los privilegios del usuario root a través del comando sudo, llegamos a ser el usuario root.

Agent-sudo - TryHackMe

Debemos encontrar dos banderas en la maquina Agent-sudo. Donde a partir del escaneo de puertos de Nmap pude saber que hay un servicio HTTP, FTP, y SSH. Ademas, con un script de Nmap supe que hay una pagina web almacenada en el servidor web, y utilizando Burp Suite y la extension User-Agent Switcher and Manger encontre el valor del encabezado User-Agent para obtener el contenido real de la pagina web. Donde encontre un username. Luego, realice cracking de contraseña contra el servicio SSH utilizando Hydra, encontrando unas credenciales para el servicio FTP. Luego, encontre dos imagenes. Donde llegue a extraer archivos ocultos utilizando Binwalk y Steghide. Ademas, uno de los archivos ocultos contenia las credenciales de inicio de sesion del usuario james en el servicio SSH. Luego, aprovechandonos de la vulnerabilidad CVE-2019-14287 de sudo, llegamos a ser el usuario root.

Anonymous - TryHackMe

Debemos encontrar dos banderas en la maquina Anonymousv6. Donde a partir del escaneo de puertos de Nmap pude saber que hay un servicio FTP y un servicio SMB. Ademas, a partir del script ftp-anom.nse pude saber que el servidor FTP admite conexiones anonimas y se enumero un directorio compartido. Luego, debido a que el directorio compartido tenia configurado el permiso de escritura para usuarios que pertenecen a un grupo diferente al grupo primario del propietario del directorio, se llego a subir un script modificado que contenia un codigo, que generaba una conexion reverse Shell hacia nuestro sistema. Ademas, el script tenia el mismo nombre que el script original por lo que su contenido se sobrescribira en el contenido del script original. Ademas, a partir de la suposicion de que este script es una tarea cron es que se obtuvo acceso al sistema objetivo. Luego, realizamos una escalada de privilegios para ser el usuario root aprovechando que el archivo binario env tiene el permiso SUID habilitado.

SKynet - TryHackMe

Debemos encontrar dos banderas en el sistema Skynet. Donde utilice Nmap para poder saber que hay un servicio SMB y un servicio HTTP. Luego, utilice un script de Nmap para enumerar los recursos compartidos por el servidor SMB. Luego, utilice smbclient para acceder al recurso compartido anonymous. Donde se encontro un posible username y una lista de palabras. Luego, utilice Wfuzz para encontrar el recurso squirrelmail, que viene a ser un formulario de la aplicacion web SquirrelMail. Luego, realice un cracking de contraseñas contra la aplicacion web. Donde se llego a encontrar unas credenciales. Luego, en un correo electronico se encontro las credenciales del recurso compartido de Miles Dyson.Donde se encontro un archivo que contenia una ruta de una aplicacion CMS Cuppa. Luego, utilice la vulnerabilidad RFI que tenia el CMS para obtener acceso al sistema objetivo. Luego, se encontro una tarea cron ejecutada por el usuario root. Donde aproveche el uso del comodin en el comando tar para ser el usuario root.

Plotted-TMS - TryHackMe

En este caso debemos encontrar dos banderas en la maquina Plotted-TMS v3. Donde a partir del escaneo de puertos de Nmap pude saber que hay dos servicios HTTP utilizando los puertos 80 y 445. Luego, utilizo wfuzz para encontrar recursos ocultos en los directorios raiz de los servidores web. Donde encontré recursos ocultos en el directorio raíz del servidor web que utiliza el puerto 445. Llegando a encontrar el recurso management que viene a ser formulario de una aplicación web, el cual es vulnerable a SQLi blind permitiéndonos autenticarnos sin proveer credenciales. Luego, en el portal de administración de la aplicación web subimos un archivo PHP en lugar de la imagen del avatar, que nos permitio ejecutar una conexión reverse shell hacia nuestra máquina. Luego, realizamos una escalada de privilegios para ser el usuario plot_admin aprovechando una tarea cron. Luego, realizamos otra escalada de privilegios para ser el usuario root utilizando el archivo binario doas, que tiene el permiso SUID habilitado.

WebAppTest - TryHackMe

En este caso debemos encontrar una bandera ubicada en la maquina WebAppTest. Donde a partir del script smb-enum-shares de Nmap pudimos encontrar un directorio compartido por el servidor Samba.Ademas, en este directorio compartido encontramos un archivo, que contenia los usernames de los administradores del sistema objetivo.Luego, utilizando el script http-enum de Nmap pudimos encontrar un recurso escondido en el directorio raiz del servidor web.Ademas, este recurso es un directory list que contenia archivo de registros de las actividades de los administradores del sistema. Luego, utilizamos Hydra para realizar un cracking de contraseñas online contra el servicio SSH. Llegando a encontrar unas credenciales validas, y obteniendo acceso al sistema obejtivo.Luego, realizamos una escalada de privilegios para ser el usuario root aprovechando que el archivo binario vim.basic tiene el permiso SUID habilitado.

VulnUniversity - TryHackMe

En este caso debemos encontrar dos banderas ubicadas en la maquina VulnUniversity.Donde a partir del script http-title.nse de Nmap pude saber el titulo de la pagina web que se aloja en el servidor web. Luego, utilizo wfuzz para encontrar recursos ocultos a partir del directorio raiz del servidor web.Llegando a encontrar el recurso internal que viene a ser una pagina web que nos permite subir archivos al servidor web, que se almacenaran el directory list uploads. Luego, utilizamos Burp Suite para poder saber que extension debe tener el archivo para que nos permite la aplicacion web cargarlo al servidor web. Luego,explotamos la vulnerabilidad File Upload presente en la aplicacion web mediante un archivo con extension PHMTL. Llegando obtener acceso a la maquina VulnUniversity. Luego, realizamos una escalada de privilegios para ser el usuario root aprovechando que el archivo binario systemctl tiene el permiso SUID habilitado.

BountyHacker - TryHackMe

En este caso debemos encontrar dos banderas ubicadas en la maquina Bounty Hacker. Donde a partir de un escaneo de puertos utilizando los scripts de la categoria default de Nmap, descubri que el servicio FTP esta levantado en el puerto 21 del sistema objetivo.Ademas, a parti del script ftp-anom.nse de Nmap llegue a saber que el servidor FTP permitia conexiones anonimas. Por lo tanto, accedi a los recursos compartidos por el servidor FTP sin proveer credenciales. Luego, llegue a descargar dos recursos cuyo contenido me permitio realizar un cracking de contraseñas online hacia el servicio SSH del sistema objetivo utilizando Hydra. Llegando a encontrar unas credenciales validas. Luego logre acceso al sistema objetivo mediante el servicio SSH.Luego para la escalada de privilegios, aproveche que podia ejecutar el archivo binario tar con los privilegios del usuario root para ejecutar un comando que me permito ser el usuario root.

Wonderland - TryHackMe

En este caso debemos encontrar dos banderas ubicadas en la maquina Wonderland. Donde a partir del script http-title de Nmap pude saber el titulo de la pagina web que se aloja en el servidor web de la maquina Wonderland. Luego utilizo el script http-enum de Nmap y wfuzz para encontrar recursos ocultos a partir dell directorio raiz del servidor web Llegando a encontrar el recurso t que viene a ser una pagina web cuyo codigo HTML contenia unas credenciales.Luego con estas credenciales logre autenticarme mediante el servicio SSH al sistema objetivo. Luego para la escalada de privilegios, aproveche que podia ejecutar un script python con los privilegios del usuario rabbit para crear un script en python y llegar a ser el usuario rabibt. Luego utilize un archivo que tenia los permisos SUID y SGID habilitados para llegar ser el usuario hatter. Luego utilize el archivo binario perl que tenia asignado un capability con ciertos permisos para llegar ser el usuario root.

LazyAdmin - TryHackMe

En este caso debemos encontrar dos banderas ubicadas en la maquina LazyAdminFinal. Donde a partir del script http-enum de Nmap encontré el recurso content, que viene a ser la pagina de inicio predeterminada del CMS SweetRice. Luego utilizo wfuzz para encontrar recursos ocultos en el directorio raíz de la aplicación CMS. Llegando a encontrar el recurso as que viene a ser un login o formulario para entrar a la plataforma del CMS. Además, encontré el recurso inc que viene a ser un directory list que contenía un archivo de respaldo de una base de datos MySQL. Donde encontré unas credenciales que las utilice para autenticarme en el formulario. Luego aprovechándome que la aplicación CMS permite subir plugins, themes, o modificar el archivo del código fuente de un theme es que puede subir un script PHP que me genere el acceso a la maquina objetivo. Luego para la escalada de privilegios, modifique un comando de un archivo perl que podía ejecutar teniendo los privilegios del usuario root.

MrRobot - TryHackMe

En este caso debemos encontrar tres banderas ubicadas en la maquina MrRobot. Donde a partir de un scriptde Nmap encontré un archivo robots.txt. Donde se obtuvo la primera bandera y un lista de palabras, que se utilizara en fases posteriores. El segundo recurso fue una aplicación web creada con CMS WordPress. El tercer recurso fue un formulario. Donde realice fuerza bruta con Burp Suite o WPScan con el fin de encontrar unas credenciales validas. Luego, con las credenciales validas obtenidas logre autenticarme en la plataforma de WordPress. Donde modifique un archivo del código fuente del theme twentyfifteen que utilizaba la aplicación web con el fin de ganar acceso a la maquina MrRobot. Otra manera que encontré para tener acceso es subiendo un plugin, que contenía un script PHP que me generaba un conexión reverse shell desde el sistema objetivo hacia mi maquina. Luego, escale privilegios mediante el archivo binario nmap, que tenia habilitado el permiso SUID con el fin de ser el usuario root.

EasyCTF - TryHackMe

En este caso debemos encontrar dos banderas ubicadas en la maquina EasyCTF.Donde encontraremos un servidor FTP que contiene un archivo,cuyo contenido nos indica que se han establecido usuarios con contraseñas débiles e iguales en algunos servicios. Luego, utilizando wfuzz y scripts de Nmap encontramos una aplicación CMS Made simple 2.2.8. Luego, llegamos a encontrar un exploit para la aplicación, que realizaba SQL injection, y nos proporcionó una credencial Además, utilizamos hashcat como otra opción para obtener la credencial, que nos daba el exploit. Luego, obtuvimos acceso a la máquina mediante la vulnerabilidad File Upload de la aplicación. Luego, decidimos escalar privilegios utilizando el archivo binario pkexec, que tenía permiso SUID,y encontramos las dos banderas. Otra manera que encontramos para tener acceso es utilizando el servicio SSH. Luego, escalamos privilegio aprovechando que podíamos ejecutar comandos teniendo los privilegios del usuario root mediante el archivo binario vim.

Pickle Rick - TryHackMe

En este caso debemos encontrar tres banderas, que vienen a ser ingredientes, y que están ubicadas en la maquina PickleTrick. Donde realizaremos fuerza bruta de directorios de manera automatizada con wfuzz o con el script http-enum.nse de Nmap. Llegando a encontrar una aplicación web, cuyo código fuente tiene un comentario que hace referencia a un username,y un archivo escondido en el directorio raíz de la aplicación web, que contenía una password. Luego, nos autenticamos en el formulario de la aplicación web. Donde encontramos un panel que nos permite ejecutar comandos en el servidor web remoto Luego, llegamos a establecer una conexión reverse shell hacia nuestra maquina aprovechándonos de la vulnerabilidad Command Injection de la aplicación, y utilizando el archivo binario awk o perl.Luego, realizamos una escalada de privilegios mediante el archivo binario sudo. Donde llegamos a ser el usuario root.

Kenobi - TryHackMe

En este caso debemos encontrar dos banderas que están ubicadas en la maquina Kenobi. Donde realizaremos un escaneo de puertos con Nmap y sus scripts. Llegando a encontrar el programa RPC nfs levantado en la maquina Kenobi. Luego, llegamos a saber que nfs esta compartiendo el directorio /var del sistema Kenobi. Además, otros de los servicios levantados en la maquina Kenobi es SMB. Donde a partir de los scripts de Nmap podemos saber algunos usernames validos. Luego, llegamos a descargar el archivo compartido por el servidor SMB, que nos indica que se ha creado una clave privada y publica SSH para el usuario Kenobi. Además, llegamos a encontrar que el programa servidor SSH presenta el modulo mod_copy habilitado que nos permite mover las claves privadas y publicas al directorio /var. De esta manera llegamos obtener acceso a la maquina Kenobi mediante la clave privada SSH. Luego realizamos una escalada de privilegios para ser el usuario root aprovechando que el archivo binario menu tiene el permiso SUID.

Jenkins - Hacker Mentor

En este caso debemos encontrar dos banderas que están ubicadas en la maquina Jenkins. Donde realizaremos un escaneo de puertos con Nmap y sus scripts. Llegando a encontrar el programa servidor HTTP Jetty levantado en el puerto 8080. Luego, utilizamos la herramienta wfuzz para descubrir directorios o archivos ocultos en el directorio raíz del servidor web. Llegando a encontrar un formulario para ingresar a la plataforma de la aplicación Jenkins. Luego, utilizamos Burp Suite para realizar un crackeo de contraseñas online en el formulario. Llegando a encontrar unas credenciales validas. Luego, explotamos la vulnerabilidad Comand Injection que presentaba la aplicación Jenkins mediante un panel que se conseguía cuando creabas un proyecto. Llegando obtener acceso a la maquina Jenkins a partir de scripts escritos en PowerShell. Luego, se llego a conseguir las dos banderas, y se presenta varias maneras de generar persistencia mediante el servicio RDP.

RootMe - TryHackMe

En este caso debemos encontrar dos banderas que están ubicadas en la maquina RootMe. Donde realizaremos un escaneo de puertos con Nmap y sus scripts. Llegando a encontrar un programa servidor HTTP levantado en el puerto 80. Además, se encontró una aplicación web alojada en el servidor web. Luego, utilizamos la herramienta wfuzz y scripts de Nmap para descubrir Content de la aplicación web utilizando fuerza bruta de directorios. Llegando a encontrar un directory list llamado uploads. Además, encontramos una pagina web que nos permite subir archivos al servidor web, que se almacenaran el directory list uploads. Luego, explotamos la vulnerabilidad File Upload presente en la aplicación web mediante la pagina web que encontramos. Llegando obtener acceso a la maquina RootMe. Luego, realizamos una escalada de privilegios para ser el usuario root aprovechando que el archivo binario python tiene el permiso SUID.

Back to Top ↑