Pentesting Journey Vol. 3

Try Hack Me – Root Me CTF Machine Write Up

1 Encontrar puertos abiertos

Realizamos un Escaneo con NMAP

==nmap -sV -sC 10.10.250.93

==Reconnaissance

Scan the machine, how many ports are open?
2

What version of Apache is running?
2.4.29

What service is running on port 22?
SSH

What is the hidden directory?
/panel/
``

`

2 Ejecutamos gobuster

Ejecutamos gobuster para encontrar posibles directorios en el sitio:

gobuster dir -w /usr/share/wordlists/dirb/common.txt -x php,txt,html -t 20 -u http://10.10.250.93

2 Inyectar fichero php

Como parte del escaneo, descubrimos que existe una ruta llamada /panel/ y otra llamada /uploads/. Intentaremos subir un archivo .php en el directorio /panel/ para ver que es lo que sucede.
Como observamos, el sitio rechaza los archivos con extensión .php:

Para continuar con nuestro ataque, existe un repositorio en github en el cual puedes descargar un reverse shell con php, te dejo el enlace a continuación:

https://github.com/pentestmonkey/php-reverse-shell/blob/master/php-reverse-shell.php

Una vez descargado nuestro archivo, procederemos a modificar la siguiente línea que indica la ip = $ip=, en mi caso, ejecuto el comando ifconfig para saber cual es la que tiene asignada mi equipo:

Como vemos, la dirección de mi equipo es 10.8.243.223 , así que esa es la que asignare al parámetro del reverse shell. Para ello usaré nano:


Es importante mencionar, que el parámetro $port debemos dejarlo tal cual con el valor ‘1234’, ya que más adelante lo utilizaremos.


Guardamos el archivo y ahora procedemos a subirlo al path /panel/, pero como ya sabemos que no acepta archivos .php, simplemente cambiaremos la extensión a .phtml :

Vemos que pasamos la validación:

Si recordamos, existe una ruta llamada /uploads/ donde podremos ver los archivos cargados al sitio y es aquí donde encontraremos nuestro archivo que acabamos de subir:

3 Activar el reverse shell

Para activar nuestro reverse shell, lo único que tendremos que hacer es abrir una terminal nueva como usuario root y ejecutar el siguiente comando:

nc -nlvp 1234

Después de ello, nos dirigimos al directorio /uploads/ y damos un solo clic el nombre del archivo:


La página parecerá que se queda cargando, pero si observamos nuestra terminal, veremos que ya tenemos acceso:

4 Encontrar el flag user.txt

Para no complicarnos la vida buscando directorio por directorio, usaremos el siguiente comando en la terminal para buscar en la toda la máquina donde se encuentra el flag user.txt:

find / -type f -name user.txt 2>/dev/null

Y observamos que se encuentra en la ruta: /var/www/user.txt

Nos dirigimos a ella y vemos que el flag es el siguiente:

“THM{y0u_g0t_a_sh3ll}

Escalamiento de privilegios

Buscar archivos SUID

Para realizar el siguiente paso, necesitamos poner buscar en todo el sistema archivos con el SUID, para ellos ejecutamos el siguiente comando:

find / -user root -perm /4000

Obsevamos que podemos ejecutar python

Search for files with SUID permission, which file is weird?

/usr/bin/python

Esto es interesante, porque podemos ver si podemos ejecutar algún binario para poder escalar privilegios. Para ello, nos dirigimos al sitio web y buscamos python:

https://gtfobins.github.io/

Como vemos, si podemos ejecutar SUID con python:

Ahora damos clic a la opción SUID y vemos que podemos ejecutar el siguiente comando desde la terminal:

python -c 'import os; os.execl("/bin/sh", "sh", "-p")'

Ahora procederemos a buscar el flag root.txt:

find / -type f -name root.txt 2>/dev/null

Observamos que se encuentra en /root, ahora solos nos dirigimos a esa ruta y realizamos un cat para saber cual es flag:

THM{pr1v1l3g3_3sc4l4t10n} 

Listo! Con esto hemos completado este interesante CTF.

Leave a Reply