Posts Tryhackme - 0day
Post
Cancel

Tryhackme - 0day

banner!

Introducción

En este write up veremos la máquina 0day, explotaremos vulnerabilidades conocidas cómo shellshock y exploits de tipo kernel

Reconocimiento

Vamos a hacer un escaneo con Nmap sudo nmap -sS -sV -T4 "ip" el output que nos muestra es el siguiente

1!

hay un puerto SSH (22) y uno de HTTP (80)

Luego vamos a seguir enumerando pero esta vez directorios con Gobuster

2!

Vemos que hay varios directorios interesantes cómo /admin, /uploads, /cgi-bin y /secret

Si ingresamos a /admin y /uploads no nos muestra nada interesante (de hecho no muestra nada)

y si ingresamos a /secret nos sale esto

3!

Tampoco nada interesante

Seguimos enumerando con Nikto y este es el output

4!

Si nos fijamos bien, dice que el directorio /cgi-bin/test.cgi es vulnerable a Shellshock

Ahora vamos a ir a ese directorio para ver que observamos dentro de el

5!

Es un simple Hello World pero que podemos inferir que vamos por el buen camino

Acceso Inicial

Ahora que sabemos que este directorio es vulnerable a Shellshock vamos a proceder a explotarlo

En resumen la vulnerabilidad Shellshock es una vulnerabilidad crítica, que afecta a versiones antiguas de Bash, los archivos CGI se usan por el webserver para ejecutar comandos en un lenguaje de scripting nativo, este caso, quiere decir que el archivo “test.cgi” está corriendo comandos de Bash, con versiones vulnerables de Bash, inyectando una definición de función ((){ :;};) dentro del output de tal script, va a forzar que el script ejecute cualquier comando que nosotros le indiquemos

Así que ejecutamos el comando curl -A "() { :;}; echo Content-Type: text/html; echo; /bin/cat /etc/passwd;" http://IP_MAQUINA/cgi-bin/test.cgi y este sería el output

6!

1) () { :;}; = Esto define una función de Bash vacía, sirve para activar la vulnerabilidad, ya que shellshock se basa en una declaración de una función antes de que se ejecuten todos los comandos posteriores

2) echo Content-Type: text/html; echo; = esto sirve para prevenir que el server de caiga cuando la vulnerabilidad está siendo explotada, sin esto el servidor devolvería un “500 internal server”

3) /bin/cat /etc/passwd; = y estos son los comandos que queremos que sean ejecutados, siempre tiene que ser con una ruta absoluta

Indagando más acerca de este CVE, existen unos módulos de shellshock adaptados para Metasploit, así que vamos a usar el número 5 que es el que nos sirve

7!

Rellenamos todos los datos esenciales

8!

Y explotamos

9!

Y listo, ya tenemos nuestro meterpreter

Ahora dentro de este, creamos una shell

10!

y vemos un usuario Ryan, accedemos y está el user.txt

Escalando Privilegios

Vamos a indagar más acerca de la arquitectura de este sistema y sus versiones, para ello utilizamos el comando cat /etc/*-release y uname -a

11!

Podemos ver que la versión del Ubuntu es una versión muy antigua “14.04.1 LTS” y que la versión del Kernel es “3.13.0”

No nos quedan más vectores por explotar, así que vamos a utilizar un exploit de kernel

Con searchsploit y la versión del kernel buscamos si hay algún exploit disponible

12!

Vemos que si hay uno y está en C así que toca compilarlo luego

Así que movemos el exploit a nuestro directorio

13!

Luego en el meterpreter nos vamos a /tmp y subimos el archivo desde nuestra máquina al servidor

14!

Ahora que está dentro, lo compilamos con gcc, hacemos un ls y observamos que hay un archivo “a.out” y lo ejecutamos

15!

Y ahora somos r00t!

This post is licensed under CC BY 4.0 by the author.