En esta serie de artículos, resolveremos la máquina Metasploitable 3, la cual instalamos en previamente. Para conocer detalles acerca de la instalación en Windows 10, puedes ver la publicación anterior http://labitacoradelhacker.com/instalar-metasploitable-3-en-windows-10-2020/
Si deseas ver la parte 1 y 2 de esta serie de artículos, puedes visitar los siguientes enlaces:
Parte 1: http://labitacoradelhacker.com/metasploitable-3-solucion-parte-1-ftp/
Parte 2: http://labitacoradelhacker.com/metasploitable-3-solucion-parte-2-http-upload/
Lo primero que tenemos que hacer es identificar la dirección IP de nuestra máquina objetivo, en este caso, Metasploitable, entonces lanzaremos un ping scan con Nmap:

Nuestra máquina objetivo está en la 192.168.1.16, entonces ejecutaremos un escaneo completo. Dentro de los servicios activos encontramos los puertos 8282, 8484 y 8585, los cuales llevan los servicios Apache Tomcat, Jenkins y WAMP, respectivamente.

Si miramos el servicio WAMP en el 8585, vemos que uno de los proyectos está montado en WordPress:

Accedemos al proyecto, y se abre el blog. Aquí se nos muestra una imagen indicando que debemos encontrar todas las cartas Metasploit. En las entradas anteriores ya habíamos encontrado algunas, sin embargo, faltan muchas por encontrar:

Vemos que tenemos acceso al formulario de inicio de sesión de WordPress. Las contraseñas comunes no funcionan en este punto. Así que dejaremos esto por ahora.

Como no podemos entrar a WordPress, abrimos el servicio de Apache Tomcat, en el puerto 8282:

Intentamos acceder a la consola administrativa, sin embargo las contraseñas por defecto tampoco funcionan.

Un dato interesante del error, es que nos muestra el nombre del archivo que lleva la configuración de usuarios: tomcat-users.xml. Tenemos que conseguir una forma de acceder a el. Dejamos esto y vamos por el siguiente servicio.
Revisando el puerto 8484, vemos que hay un servicio activo de Jenkins, el cual, además de estar configurado de forma insegura, nos deja utilizar la consola de scripts:

Esta consola, nos permite ejecutar comandos utilizando la sintaxis de scripts de Groovy. Probamos esta consola, y vemos que nos arroja resultados.

A partir de acá vamos a intentar hacer consultas sobre el sistema de archivos, con el objetivo de encontrar el archivo tomcat-users.xml. Finalmente, después de lanzar muchas consultas, conseguimos leer el archivo:
def is = new File("C:\\Program Files\\Apache Software Foundation\\tomcat\\apache-tomcat-8.0.33\\conf\\tomcat-users.xml").newInputStream()
is.eachLine {
println it
}
is.close()


Bingo! hemos conseguido un usuario válido: sploit/sploit. Con esto ya podemos entrar a la consola administrativa de Apache Tomcat:

Como ya tenemos acceso, construiremos nuestro payload, y lo desplegaremos, a fin de conseguir una shell reversa:


Desplegamos el proyecto, abrimos Metasploit con nuestro listener configurado, y finalmente obtenemos nuestra shell:

Hemos conseguido acceso con privilegios de SYSTEM!. Comenzamos a explorar el sistema, y vemos que (tal como se esperaba) tiene un servicio de Mysql configurado:

Este servicio se encuentra mal configurado, ya que permite acceder al motor como root sin contraseña. Entonces, realizamos diferentes consultas, comenzando por listar las bases de datos que tiene configuradas:
mysql -u root -e "show databases;"

Ahi está nuestra base de datos de WordPress. Despues de otras consultas, traemos la tabla de usuarios:

Ahora solo necesitamos crackear estos valores. Utilizamos John:

Hemos conseguido tres credenciales, entre ellas, la del usuario admin: sploit. La probamos en el panel de WordPress :

Y listo!. Hemos conseguido vulnerar tres servicios más, consiguiendo además una shell como SYSTEM. Como conclusiones, debemos llevarnos lo siguiente: configurar adecuadamente los servicios, de tal manera que existan mencanismos de autenticación válidos y con contraseñas robustas, ademas de que éstos no deben correr con privilegios elevados.
BONUS
Como ya sabemos, tenemos que conseguir todas las cartas que están distribuidas por el sistema. Explorando el contenido de WordPress, despues de haber obtenido acceso, vemos que una de las entradas contiene una carta:


Además, dentro de la librería de imagenes, se encuentra un archivo privado que contiene otra carta:


Desde la shell conseguida a través de la explotación de Apache Tomcat, volvemos a revisar nuevamente las bases de datos, y un de ellas es cards

Nuevamente realizamos consultas a esa base de datos, y extraemos de la tabla el valor en base64. Lo convertimos y vemos que tenemos una nueva carta. El problema es que no se visualiza completa.




Aunque en un primer instante, pensé que la imagen estaba dañada y ese era el objetivo, sin embargo, decidí revisar toda la carpeta de Mysql, en busca de algún archivo que contenga la imagen completa:

Dentro de la carpeta donde se guarda la base de datos, tampoco hay nada. Sin embargo, en la carpeta raiz de mysql5.5.20, hay varios archivos con la nomenclatura mysql-bin.00000X. Éstos contienen la estructura SQL con las que se crearon las tablas y se insertaron los registros de las bases de datos:

Revisamos uno por uno, y vemos que el archivo mysql-bin.000003 contiene la sentencia insert into queen_of_hearts con el valor en base64. Lo copiamos para ver si contiene la imagen completa. Analizamos ambos archivos y vemos que la diferencia de peso es significativa:

Abrimos el archivo y por fin tenemos la imagen completa:

Hemos conseguido tres flags más:
- king_of_hearts.png
- queen_of_hearts.png
- king_of_diamonds.png
Hasta la siguiente entrada.