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)

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

Parámetro
Descripción

-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

Parámetro
Descripción

-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.

  1. Intercept -> Ctrl + I para mandarlo al intruder.

  2. Añadimos la extensión .php a "Add"

  1. En payloads ponemos las siguientes extensiones

  • php

  • php3

  • phar

  • phtml

  1. 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.

php3,phar,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