Titulo: TryHackMe - HaskHell |
Fecha: 19-07-2021 |
Descripcion: Enumeracion - Fuzzing - Flask |
TryHackMe - HaskHell Writeup
## Ping:
ping -c1 10.10.231.128
Mediante el comando ping vamos a trazar una ruta ICMP para ver si la maquina esta activa y ante que tipo de sistema operativo estamos
Podemos ver que la respuesta del ttl es 63 , el TTL en maquinas Linux es 64 y en maquinas Windows 128 , en este caso es 63 porque pasa por un nodo intermediario.
## Enumeracion:
Ahora vamos a proceder a ver que servicios tiene esta maquina abiertos para ello vamos a realizar una enumeracion de puertos:
Mediante el parametro --min-rate 5000 va a emitir paquetes no mas lento que 5000 paquetes por segundo
Nos reporta 2 puertos , uno de ellos no nos reconoce ante que servicio estamos , por lo que vamos a tener que realizar un escaneo mas exhaustivo , para reconocer versiones que corren para los servicios y aplicar algunos scripts basicos de Nmap
Aqui ya podemos ver que estamos ante:
Mediante la herramienta WhatWeb vamos a ver si estamos ante algun gestor de contenido:
No nos reporta gran cosa , por lo que vamos abrir la pagina web mediante el navegador y vamos a ir inspeccionandola
Tiene algun directorio web , que nos proporciona algo mas de informacion , pero poca cosa
Una vez aqui que no hemos encontrado gran cosa , vamos a realizar Fuzzing en busqueda de directorios web ocultos mediante Wfuzz
## Enumeracion Web:
sudo wfuzz -c --hc=404 -w /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt -u http://10.10.231.128:5001/FUZZ
Nos reporta un directorio web llamado /submit , vamos a ver que contiene:
Podemos ver una subida de archivos , como la maquina se llama Haskhell que es un lenguaje de programacion , se me ocurre crearme una shell reversa a nuestro equipo de atacante para ver si se ejecuta cuando se realize la subida
Aqui podemos ver la shell reversa en el lenguaje HaskHell:
## Flag User.txt:
Si nos ponemos a la escucha cuando subamos el archivo de la shell reversa vamos a poder ver que ya estamos dentro de la maquina
Y ya podremos visualizar el flag del usuario:
Ahora podemos ir listando los directorios y vamos a ver que en el usuario llamado "prof" tenemos el directorio del ssh con el que vamos a poder copiar el id_rsa y conectarnos mediante SSH
Podemos ver el Id_RSA que nos podemos copiar para intentar auntentificarnos:
Ahora vamos a proceder a auntentificarnos mediante el Id_Rsa del usuario prof:
## Escalada de Privilegios:
Vamos a buscar permisos SUID que podamos ejecutar procesos como el usuario Root , vamos a ver que tenemos un potencial servicio /usr/bin/flask run
Si buscamos la forma de como explotar este servicio , vamos a ver que con los siguientes comandos podemos convertinos en el usuario Root:
echo 'import pty; pty.spawn("/bin/bash")' > guarina0x0.py
export FLASK_APP=guarina0x0.py
sudo /usr/bin/flask run
Ya podemos visualizar el Flag de Root.
Ya tendriamos la Maquina HaskHell con una dificultad Media Explotada!