Hoy os traigo otra máquina vulnerable de vulnhub con la que pasar un rato entretenido practicando un poco de pentesting. Se trata de tr0ll en su versión 1.
Una vez descargada y puesta en nuestro sistema de virtualización la ponemos en marcha y empezamos el pentesting.
Fase de enumeración.
Existen multiples opciones de descubrir equipos en nuestro segmento de red netdiscover, nmap, ping etc... netdiscover -r 192.168.1.0/24 es fácil sencillo y rápido así que vamos a ello.
Localizamos a nuestro objetivo en la ip 192.168.1.71 recordar que esta ip en cada caso será diferente y también en ocasiones si reiniciamos nuestra máquina puede que cambie.
Iniciamos un escaneo con nmap para la detección de puertos y servicios.
Observamos que hay varios puertos disponibles, 21, 22, 80 ... importante a tener en cuenta que en el puerto 21 permite el acceso anónimo al servicio FTP.
Navegación web.
Realizamos procesos de navegación por el entorno web disponible, revisamos código fuente etc...
Abrimos el fichero robots.txt a ver si existe y efectivamente existe y nos da una información que puede ser relevante.
Observamos que en el fichero robots.txt nos muestra una ruta /secret.
Fase de escaneo.
Iniciemos un escaneo con nikto para ver si descubrimos más cosas ocultas que puedan ayudarnos en nuestra misión.
Observamos que también detecta el directorio /secret. Recordar que en esta fase de "fingerprint" podemos utilizar programas como dirb, dirbuster y otros que nos permiten descubrir archivos y directorios. No dejéis de emplearlos ya que pueden ayudar en esta fase.
Realizamos un escaneo de vulnerabilidades con nessus.
Accedemos al servicio de ftp como anónimo para ver si hay algo que nos pueda ayudar en esta fase en la que nos encontramos. Simplemente con ftp ip_victima y sin password nos da acceso.
Vector de ataque servicio ftp.
Con el comando help podemos acceder a los diferentes comandos que podemos utilizar en el servicio de ftp.
El comando ls nos permite visualizar los archivos si los hay en la ruta actual en la que nos encontramos. Podemos utilizar el comando cd para desplazarnos por los diferentes directorios.
En este caso nos ofrece un archivo al cual tenemos acceso de lectura, escritura y ejecución que es lol.pcap. Parece que por la extensión puede ser un archivo de captura de trafico de red. Con el comando get podemos descargarlo a nuestra máquina atacante.
Una vez descargado podemos abrir wireshark y abrir el archivo para revisar la información que tiene a ver si encontramos algo que pueda ayudar.
Encontramos algo que parece ser una superclave o un directorio secreto así que tendremos que probar a ver qué puede ser.
Finalmente es un superdirectorio que nos muestra un archivo que no sabemos que es pero que nos vamos a descargar para tratar de ver lo que contiene.
Parece que es un ejecutable así que lo ejecutamos y nos da un mensaje que parece ser una nueva pista para llegar a nuestro objetivo.
Finalmente es un directorio que nos muestra lo que puede ser información para la obtención de un password. La primera carpeta contiene un archivo con una lista de usuarios que nos guardaremos en un archivo para realizar un ataque de fuerza bruta.
La segunda carpeta contiene un archivo con el contenido Good_job_:), parece que puede ser un password pero finalmente tras realizar varias pruebas y como haciendo uso al nombre de la máquina tr0ll nos ha troleado un rato y nada tiene que ver con el password.
Vector de ataque servicio ssh.
Finalmente tras varios intentos y probando y probando como no puede ser de otra forma resulta que el password que necesitamos es el propio nombre del archivo Pass.txt. Así que con Hydra pasándole el fichero de usuarios y pasándole como password el nombre del archivo realizamos un ataque de fuerza bruta sobre el servicio ssh como se muestra a continuación.
Conseguimos obtener resultado con el usuario overflow así que ya tenemos un vector de ataque disponible para nuestra siguiente fase.
Acceso mediante ssh.
Con las credenciales obtenidas por fuerza bruta a la lista de usuarios y password sobre el servicio ssh estamos en disposición de acceder a la máquina víctima.
Una vez conseguido el acceso es importante siempre que se pueda importar diferentes herramientas para facilitar nuestra fase de explotación y/o escalada de privilegios. En este caso vamos a utilizar linux-exploit-suggester.sh que nos facilita la obtención de información de posibles vectores de explotación y/o escalada de privilegios.
Os recuerdo que para poder realizar esta labor es necesario levantar el servicio de apache en nuestra máquina atacante, copiar los archivos que necesitemos traer a la máquina víctima en la carpeta /var/www/html de nuestra máquina atacante para que con wget podamos copiarlos. Siempre y cuando podamos ejecutar wget en nuestra máquina víctima.
Ahí podemos ver que el archivo a sido transferido sin problemas, hay que darle permiso de ejecución con chmod +x o bien con chmod 777 para poder ejecutarlo.
Cuando lo ejecutéis observaréis que sugiere diferentes posibles exploits. Probarlos, averiguar si pueden ser ejecutados si se cumplen las condiciones necesarias etc... Pero finalmente en nuestro caso vamos a utilizar overlayfs que permite realizar escalada de privilegios utilizando una vulnerabilidad del sistema de ficheros overlayfs que al parecer no comprueba correctamente los permisos cuando se crean archivos en directorios superiores. Ampliar la info buscando un poco.
Con searchsploit overlayfs nos muestra varias opciones para diferentes versiones del kernel, en nuestro caso vamos a utilizar el exploit 37292.c que como su extensión nos puede indicar está escrito en c y tendremos que compilarlo. Abrirlo y leerlo para más info.
Es recomendable utilizar el directorio tmp para todo lo que sea ejecutar, descargar, etc... nos transferimos el archivo del exploit con wget y con gcc lo compilamos para obtener el archivo ejecutable.
Ejecutamos el exploit, obtenemos root y mostramos la información de fichero proof.txt que era el objetivo de este CTF.
Game Over !!!
Thanks to : Maleus.