TryHackMe - RootMe
Introducción
En la maquina de hoy estaremos tocando los siguientes temas:
Enumeración Web
File Upload
Subiendo archivo con BurpSuite (Intruder)
Abusando de binario SUID (python)
Link máquina

Reconocimiento
Comprobamos que tengamos conexión con la máquina victima.
Ping
Con el TTL podemos saber que nos enfrentamos a una máquina Linux, ya que es ttl=63, así que es lo más cercano al 64 que es de Linux.
¿Cuales son los TTLs por defecto en los S.O?
Linux --> 64
Windows --> 128
Solaris/AIX -->254
Igualmente el TTL se puede modificar así que no es 100% fiable.
Nmap
-sS
Escaneo SYN Port scan, agiliza el escaneo
-sC
Para que envíe unos scripts básicos de reconocimiento que tiene Nmap en lua
-sV
Para que los puertos que encuentre abiertos nos muestre las versiones
-p-
Escanee todo el rango de puertos, que en total hay 65535
--open
Solo los puertos abiertos
--min-rate
Que no envíe paquetes más lentos que X
-v
Verbose, que muestre por pantalla los puertos que vaya encontrando antes de acabar el escaneo
-n
Para que no haga resolución DNS
-Pn
Para que no haga Host Discovery
-oN
Que el escaneo actual lo ponga en X archivo en formato normal (nmap).
Encontramos los siguientes puertos
22 --> OpenSSH 7.6p1
80 --> Apache httpd 2.4.29
Enumeración
Puerto 80
En el código fuente no encontramos gran cosa

Fuzzing con wfuzz
-c
Formato coloreado
--hc
Que no muestre el código que le establezcas [Ej: --hc=404,403)
-t
Numero de hilos
-w
Wordlist
-u
URL
Encontramos 2 directorios que pueden ser interesantes:
Panel
Uploads
Panel
Encontramos un panel para subir ficheros a la máquina victima

Uploads
Parece que se pueden listar los archivos que podemos subir.

Explotación
Vamos a subir un archivo .php con el siguiente código:
BurpSuite
Vamos a utilizar BurpSuite para interceptar la petición y probar con varias extensiones por si esta sanitizado.
Intercept -> Ctrl + I para mandarlo al intruder.
Añadimos la extensión .php a "Add"

En payloads ponemos las siguientes extensiones
php
php3
phar
phtml

En Config --> Grep - Extract le damos a Refetch response y vamos a donde sale el error o validación de que el archivo se ha subido y lo seleccionamos

Y como vemos en la imagen, ha funcionado con las extensiones, php3,phar y phtml.


Abrimos file.phar y comprobamos que funcione los comandos:

Reverse Shell
Nos ponemos en escucha en nuestra máquina en el puerto 443
Nos mandamos la reverse shell

Escalada de Privilegios
Enumeración básica sistema
Comandos ejecutados
id
uname -a
lsb_release -a
No encontramos nada
Solamente listamos los siguientes usuarios:
Root
Rootme
Test
Buscando privilegios sudo y suid
Comandos ejecutados
sudo -l
find / -user root -perm -4000 2>/dev/null
No tenemos ningún permiso sudo.
Encontramos un binario que tiene SUID
Nos dirigimos a GTFOBINS y vemos que python con el permisos SUID podemos hacer lo siguiente:
Si ejecutamos esto en la máquina nos dará una shell como root.
Despedida
Para mi fue una máquina muy interesante que me ayudo a reforzar el File Upload y aprender bien como realizar un ataque con el Intruder en BurpSuite, fue una máquina divertida aunque bastante fácil.
¡Espero que os haya gustado!
Last updated