KoTH Food CTF es una maquina de TryHackMe parte de las maquinas de King of the Hill se presentan algunas formas para obtener acceso y escalar privilegios.
Room
| Titulo | KoTH Food CTF |
|---|---|
| Descripción | Practice Food KoTH alone, to get familiar with KoTH! |
| Puntos | 0 |
| Dificultad | Facil |
| Maker |
NMAP
Escaneo de puertos tcp, nmap nos muestra el puerto http (15065), mysql (3306) y el puerto ssh (22) abiertos.
|
|
Primera Parte
A continuacion se muestran los dos caminos (partes) que se encontraron para obtener una shell y escalar privilegios, además el lugar donde se encuentran las flags.
MYSQL
Nos conecatmos en el puerto 3306 con las credenciales por default (root:), en donde encontramos una base de datos (users) que contiene unas credenciales y una flag.
|
|
RAMEN - USER
Utilizamos las credenciales que encontramos en la base de datos en el servicio SSH, logramos obtener una shell.

PRIVILEGE ESCALATION
Hacemos una pequeña enumeracion en la maquina y encontramos un archivo SUID screen-4.5.0. Ejecutamos el exploit y obtenemos una shell como usuario root.

Obtenemos una flag en la carpeta principal de este usuario.

Buscamos la flag en el directorio / y logramos encontrar una en /home/bread/flag, /home/tryhackme/flag7 y /var/flag.txt.

Encontramos otra dentro de la carpeta principal del usuario food (/home/food/.flag).

Vemos los puertos abiertos y nos muestra el puerto 16109, visitamos el puerto y vemos una imagen.

Descargamos la imagen y extraemos archivos ocultos con steghide sin contraseña, donde encontramos las credenciales del usuario pasta.
root@upset:~/thm/kothfood# steghide extract -sf image.jpg
Enter passphrase:
wrote extracted data to "creds.txt".
root@upset:~/thm/kothfood# cat creds.txt
pasta:... snip ...
root@upset:~/thm/kothfood#
Segunda Parte
HTTP
Encontramos una pagina web en el puerto 15065.

GOBUSTER
Utilizamos gobuster para busqueda de directorios y archivos.
|
|
En la pagina monitor en donde al pasarle una ip realiza un ping.

Le pasamos nuestra IP y logramos recibir los paquetes.

Revisamos el codigo fuente de la pagina y encontramos un archivo de javascript, que, en uno de los comentarios indica que el codigo está ofuscado. Encontramos una funcion que envia la IP a una API.
|
|
Enviamos un comando mediante el metodo POST utilizando CURL y logramos obtener el resultado.

Ejecutamos una shel inversa y logramos obtener una shell inversa con el usuario BREAD.

Generamos claves SSH para el usuario bread.

Además agregamos nuestra clave en el archivo authorized_keys.

Ingresamos por el servicio ssh y enumeramos la maquina para buscar archivos para escalar privilegios.
-rwsr-xr-x 1 root root 8.3K Jul 15 05:07 /tmp/rootshell
-rwsr-sr-x 1 daemon daemon 51K Feb 20 2018 /usr/bin/at
-rwsr-xr-x 1 root root 75K Mar 22 2019 /usr/bin/chfn
-rwsr-xr-x 1 root root 44K Mar 22 2019 /usr/bin/chsh
-rwsr-xr-x 1 root root 75K Mar 22 2019 /usr/bin/gpasswd
-rwsr-xr-x 1 root root 37K Mar 22 2019 /usr/bin/newgidmap
-rwsr-xr-x 1 root root 40K Mar 22 2019 /usr/bin/newgrp
-rwsr-xr-x 1 root root 37K Mar 22 2019 /usr/bin/newuidmap
-rwsr-xr-x 1 root root 59K Mar 22 2019 /usr/bin/passwd
-rwsr-xr-x 1 root root 22K Mar 27 2019 /usr/bin/pkexec
-rwsr-xr-x 1 root root 1.6M Mar 20 03:04 /usr/bin/screen-4.5.0
-rwsr-xr-x 1 root root 146K Jan 18 2018 /usr/bin/sudo
-rwsr-xr-x 1 root root 19K Jun 28 2019 /usr/bin/traceroute6.iputils
-rwsr-sr-x 1 root root 2.6M Jun 6 2019 /usr/bin/vim.basic
-rwsr-xr-- 1 root messagebus 42K Jun 10 2019 /usr/lib/dbus-1.0/dbus-daemon-launch-helper
-rwsr-xr-x 1 root root 10K Mar 28 2017 /usr/lib/eject/dmcrypt-get-device
-rwsr-xr-x 1 root root 427K Mar 4 2019 /usr/lib/openssh/ssh-keysign
-rwsr-xr-x 1 root root 14K Mar 27 2019 /usr/lib/policykit-1/polkit-agent-helper-1
-rwsr-sr-x 1 root root 107K Oct 30 2019 /usr/lib/snapd/snap-confine
-rwsr-xr-- 1 root telnetd 11K Nov 7 2016 /usr/lib/telnetlogin
-rwsr-xr-x 1 root root 99K Nov 23 2018 /usr/lib/x86_64-linux-gnu/lxc/lxc-user-nic
Encontramos un binario que al ejecutarlo /tmp/rootshell nos devuelve una shell como usuario root.

