Armageddon [EASY🟒]

Dificultad: FΓ‘cil

1- Reconocimiento y escaneo

1.1 Ping

Podemos notar que se trata de una maquina Linux, debido al TTL:

1.2 Nmap

Podemos ver que se encuentran 2 puertos abiertos(22 y 80) con sus respectivas versiones del servicio que se encuentran corriendo en la maquina, en el caso del puerto 80, se encuentra alojado un servidor web Apache y en el caso del puerto 22 se encuentra alojado un servidor SSH(OpenSSH 7.4) para control remoto mediante linea de comandos

1.3 whatweb

Se puede visualizar diferentes tecnologΓ­as web que se utilizan en el servidor web:

1.4 Fuzzing

Podemos tambien notar que el servidor web tiene una incorrecta sanitizaciΓ³n, una vez realizado el fuzzing(en mi caso con la herramienta dirsearch), vemos directorios clΓ‘sicos como "robots.txt" o "xmlrpc.php", ademΓ‘s de directorios propios de la maquina con herramientas, como por ejemplo "http://10.10.10.233/scripts/", donde encontraremos diferentes scripts en Bash, entre ellos uno para descifrar contraseΓ±as hasheadas

2- Escaneo de vulnerabilidades

2.1 Searchsploit(Drupal 7)

Se puede ver que hay varias vulnerabilidades para este CMS como lo es Drupal 7, si prestamos atenciΓ³n, vemos que hay exploits o vulnerabilidades llamadas "Drupalgeddon", especΓ­ficamente estos exploits:

Estas vulnerabilidades o exploits estΓ‘n disponibles entre la versiΓ³n de Drupal 7.0 y Drupal 7.31, que en nuestro caso coincide con la versiΓ³n de la maquina

3- ExplotaciΓ³n de Drupalgeddon automatica

3.1 Metasploit Framework

Nos vamos a ir a Metasploit Framework luego de haber analizado las vulnerabilidades encontradas con la herramienta de Searchsploit dentro de Kali. Vamos a buscar dentro de Metasploit con el comando "search" la vulnerabilidad antes mencionada "Drupalgeddon":

Tenemos un exploit dentro de Metasploit Framework de Drupal 7, totalmente automatizado para su uso, vamos a selecciΓ³nar el exploit "exploit/unix/webapp/drupal_drupalgeddon2" con el comando "use 0"

Vamos a listar las opciones de configuraciΓ³n del exploit con el comando "show options":

Procederemos a configurar las direcciones IP correspondientes del exploit, tanto del host remoto que en este caso es "10.10.10.233" y la direcciΓ³n del segmento local que nos asigno la VPN de Hack The Box

Y procederemos con la ejecuciΓ³n del exploit con el comando "run" o "exploit" para la posterior intrusiΓ³n dentro de la maquina y la obtenciΓ³n de una shell Meterpreter:

Vamos a listar los directorios del servidor web de la maquina en la consola de meterpreter con el comando "ls"

Hay directorios relacionados al fuzzing que hemos realizado anteriormente en la etapa de reconocimiento y escaneo con la herramienta "dirsearch".

Ahora obtendremos una shell Bash pura del servidor web con el comando "shell"

4- ObtenciΓ³n de shell con netcat

Esta shell que nos da meterpreter es muy escasa y restrictiva para algunos comandos, vamos a mandarnos una shell mediante netcat, abrimos una nueva consola dentro de nuestro Kali y ejecutamos el siguiente comando para ponernos en escucha con netcat mediante el puerto 443

Volvemos a la shell de meterpreter donde dentro tenemos la shell restrictiva que nos ofrece, y ejecutamos el siguiente comando para establecer la conexiΓ³n desde el servidor objetivo a nuestra maquina Kali:

En mi caso el comando se estructuraria de esta manera:

Una vez ejecutado el comando, recibirΓ­amos la shell desde nuestro netcat de Kali donde previamente estΓ‘bamos en escucha por el puerto 443:

Ejecutemos el comando "whoami" para verificar que estamos dentro del servidor web:

Con esto ya tendrΓ­amos acceso a la maquina, por ende a la flag de usuario o user.

Pero, ΒΏCΓ³mo encontrarΓ­amos la flag o el hash para introducirlo en Hack The Box?

5- ExplotaciΓ³n de la base de datos MySQL

Dentro de los CMS o Sistema de gestion de contenido, ya sea Drupal o WordPress, es facil que haya unos archivos que escondan contraseΓ±as, como por ejemplo archivos de backup o configuraciΓ³n.

Si listamos los directorios dentro la shell que obtuvimos en netcat dentro de nuestro Kali:

Entramos dentro del directorio "sites" y listamos los directorios:

Podemos ver un directorio llamado "default", si entramos dentro del directorio y listamos:

Hay un fichero php llamado "settings.php", si visualizamos el fichero con el comando "cat", vamos a notar que dentro del fichero settings.php encontramos diferentes credenciales, concretamente estas lΓ­neas de php:

Se trata de las credenciales de una base de datos, concretamente una base de datos MySQL

Con estas credenciales, vamos a conectarnos a la base de datos mencionada dentro de la shell que obtuvimos con netcat:

Este comando se estructura de la siguiente manera:

(Recordar que la contraseΓ±a va sin espacio -pContraseΓ±a)

Una vez ejecutado el comando correspondiente, nos devuelve las tablas de la base de datos con la consulta que habΓ­amos especificado en el comando "SHOW TABLES;":

Como podemos ver, hay una tabla dentro de la base de datos llamada "users", vamos a consultar que hay dentro de la tabla "users" ejecutando el mismo comando anterior pero cambiando la instrucciΓ³n SQL:

En este caso seleccionamos todos los elementos de la tabla "users" con la instrucciΓ³n SELECT.

Nos devuelve toda la informaciΓ³n dentro de la tabla users:

Hay un usuario llamado "brucetherealadmin" con su respectiva contraseΓ±a hasheada

Como la contraseΓ±a esta hasheada, procederemos a hacer fuerza bruta con John The Ripper

5.1 John The Ripper para la contraseΓ±a hasheada

Vamos a almacenar la contraseΓ±a hasheada en un archivo .txt para pasarlo como parΓ‘metro dentro de John The Ripper

Una vez almacenado el hash en un archivo .txt, procedemos a ejecutar John The Ripper con el comando "john", pasΓ‘ndole como parΓ‘metro el archivo .txt donde esta almacenado el hash:

Ejecutamos:

La password es "booboo"

6- IntrusiΓ³n a SSH con la contraseΓ±a crackeada

Si recordamos, en el escaneo de Nmap, nos dio como resultado el puerto 22 abierto, un servidor SSH

Si probamos conectarnos mediante SSH con las credenciales que encontramos:

Ejecutamos y nos pedira la contraseΓ±a, en este caso "booboo":

Introducimos la contraseΓ±a:

6.1 ObtenciΓ³n de la flag de usuario

Ya tendremos acceso al usuario "brucetherealadmin", si listamos los directorios, nos encontraremos con la flag de usuario:

7- Escala de privilegios

Siempre que se quiera realizar escalamiento de privilegios, es recomendable visualizar y analizar los comandos que podemos ejecutar dentro del usuario que se comprometiΓ³, en este caso el usuario es "brucetherealadmin"

ΒΏCΓ³mo visualizamos los permisos del usuario?

Con el comando "sudo -l"

Podemos visualizar que tendremos acceso al comando "Snap" sin contraseΓ±a(NOPASSWD), Γ³sea como usuario root. Snap es un gestor de paquetes para GNU/Linux, podremos instalar paquetes dentro de la maquina con el gestor de paquetes Snap como si fuΓ©semos usuarios root

7.1 Vulnerabilidad Dirty Sock con el gestor de paquetes Snapd

Si investigamos, vamos a notar que en el gestor de paquetes "snapd", existe una vulnerabilidad llamada Dirty Sock, clasificada como "CVE-2019-7304".

Vamos a buscar en GitHub algΓΊn exploit existente para ejecutarlo y realizar el escalamiento de privilegios, en mi caso voy a utilizar este exploit:

https://github.com/f4T1H21/dirty_sock

(CrΓ©ditos al creador del script)

En este caso, como la maquina de Hack The Box no esta conectado a la red, si no que al conectarnos mediante Kali a la VPN, estamos dentro del segmento de la maquina objetivo Armageddon, vamos a descargarnos el script "lpe.py" dentro de nuestro Kali con el siguiente comando:

Se nos descargara el archivo "lpe.py".

Vamos a montar un servidor web con Python donde tengamos el archivo "lpe.py" para pasarlo a la maquina objetivo, utilizamos el siguiente comando:

Ejecutamos:

Ahora vamos a recibir el archivo "lpe.py" desde la shell SSH que tenΓ­amos del usuario "brucetherealadmin" con el comando "curl":

En mi caso el comando quedarΓ­a asi:

Ejecutamos:

Ejecutamos el script y obtendremos una escalada de privilegios automΓ‘tica con el siguiente comando:

Ejecutamos:

7.2 ObtenciΓ³n de la flag root

Ya tendremos el usuario root a nuestra disposiciΓ³n, ahora bien, obtendremos la flag de root para introducirla en Hack The Box. La flag se encuentra en la siguiente ruta:

En el directorio raΓ­z, dentro del directorio "root", que en este caso seria el directorio home que le asigna Linux al usuario root.

Con esto concluirΓ­amos la maquina Armageddon

Espero te haya sido de ayuda este Write Up :)

Si tuviste alguna dificultad a la hora de resolverlo, no olvides contactarme en mis redes sociales

Última actualización