Buenas, en esta entrada voy a escribir una guía sobre como vulnerar y conseguir acceso root a la siguiente máquina virtual:https://www.vulnhub.com/entry/matrix-1,259/.
¿Cómo preparar el laboratorio?
Lo primero que debemos hacer es descargar el archivo .ova del enlace anterior. Desde Oracle VirtualMachineBox importamos este archivo para añadir la máquina virtual a nuestra colección. En mi caso he configurado la red como adaptador puente, para que la máquina tenga una ip propia en nuestra red, como si de cualquier otro usuario se tratase.
Empecemos
El primer paso es encender la máquina virtual, como podemos observar tenemos un login, al cual no podemos acceder, ya que no tenemos usuario y contraseña, aún.
Para conocer la dirección IP de esta máquina voy a realizar un escaneo de mi red con la herramienta netdiscover.
Como podemos observar, nuestro objetivo tiene la siguiente IP: 192.168.1.69
Una vez conocida esta dirección procedemos a realizar un escaneo de puertos y servicios, vulnerabilidades y fallos de autenticación, entre otras cosas, con la herramienta nmap.
nmap -v -Pn -sS -sV -A -T4 192.168.1.69
Tenemos 3 servicios activos:
— ssh:22 Abierto (OpenSSH 7.7 (protocol 2.0)).
— http:80 Abierto (SimpleHTTPServer 0.6 (Python 2.7.14)).
— Elite:31337 Abierto (SimpleHTTPServer 0.6 (Python 2.7.14)).
Nuestro objetivo tiene un servidor SimpleHTTPServer activo, por lo que podemos navegar hasta su web poniendo su IP en nuestro navegador.
A simple vista no nos aporta nada interesante, pero mirando en su código fuente observamos lo siguiente:
Naveguemos al puerto 31337 de la máquina objetivo.
Volviendo a mirar en su código fuente nos encontramos:
Nos encontramos con un texto codificado en base64, que después de decodificarlo, leemos:
echo «Then you’ll see, that it is not the spoon that bends, it is only yourself. » > Cypher.matrix
Navegando a la dirección http://192.168.1.69:31337/Cypher.matrix, nos descargamos el archivo »Cypher.matrix».
Buscando por google y escribiendo esos símbolos, me encuentro, que se trata de un leguaje de programación (Brainfuck, es un lenguaje de programación esotérico, diseñado por Urban Müller en 1993, con el objetivo de hacer un lenguaje que fuera a la vez muy simple, Turing completo y que requiriese un compilador pequeño).
En la siguiente página se pueden decodificar estos símbolos para poder leerlos en texto claro.
https://fatiherikli.github.io/brainfuck-visualizer.
Obteniendo como salida:
You can enter into matrix as guest, with password k1ll0rXX Note: Actually, I forget last two characters so I have replaced with XX try your luck and find correct string of password.
El siguiente paso será crear un diccionario de palabras con todas la posibles combinaciones de las dos últimas letras de la contraseña para después, probar por fuerza bruta cada una de ellas.
Para ello voy a utilizar el programa mp64.
Y ahora, con la herramienta Hydra atacaremos el protocolo ssh de la máquina por fuerza bruta.
hydra -l guest -P matrix1wordlist.txt -vV ssh://192.168.1.69
Trás un rato probando contraseñas descubrimos la correcta.
Podemos ver que nos encontramos ante una shell con restricciones, debemos buscar una forma de escapar de esta jaula y obtener una shell completa.
Usando en comando export podemos tener una mejor idea de lo que podemos hacer en el sistema.
Vemos que nuestro PATH es /home/guest/prog y nuestra SHELL /bin/rbash.
Podemos usar la herramienta vi para saltarnos esta jaula.
Ahora tenemos una shell /bin/bash, pero seguimos sin poder ejecutar todos los comandos, para ello intentamos exportar un nuevo PATH para nuetro bash escribiendo lo siguiente:
export PATH=/usr/bin:/bin/
Lo siguiente será elevar privilegios a root, comprobamos con sudo -l los programas que podemos ejecutar con permisos root.
Y observamos como podemos ser root con el comando sudo su sin contraseña
¡¡¡HACKED!!!
Pablo.