Máquina FIRSTHACKING
Dificultad: Muy fácil
Última actualización
Dificultad: Muy fácil
Última actualización
Fecha: 19 de Marzo de 2025
Objetivo: 172.17.0.2
Comenzamos haciendo un ping a la máquina para ver si nos contesta y está encendida.
Ok, la máquina está encendida, podemos comenzar.
Primero haremos un nmap para ver que protocolos están ejecutándose en la máquina objetivo.
sC
= Equivalente a --script=default esto lanza algunos scripts simples de reconocimiento
sV
= Este argumento instruye a Nmap para intentar identificar la versión de los servicios que se detectan. Esto puede ser útil para determinar si un servicio en particular tiene vulnerabilidades conocidas.
Podemos ver que el puerto 21 correspondiente al servicio del FTP, está ejecutando la versión de vsftdp 2.3.4. Podríamos intentar conectarnos por FTP a ese servicio para ver que nos retorna.
Al intentar conectarme con el usuario root, poniendo una contraseña random, la conexión es rechazada. Lo que me hace pensar si existirá algún tipo de vulnerabilidad para el servicio FTP en la versión "vsftpd 2.3.4", vamos a buscar en Google.
Podemos ver que existe algún tipo de vulnerabilidad relacionada con ese servicio ftp, y posiblemente se trate de un "backdoor command execution" , vamos a seguir investigando.
Podemos ver en la captura de pantalla que esta vulnerabilidad puede explotarse mediante un exploit en Metasploit, además de mas detalles acerca de cuando se descubrió la vulnerabilidad y de cuando fue parcheado.
Entonces ahora nos iremos a Metasploit y usaremos el exploit para intentar obtener acceso al FTP.
Si es tu primera vez en msfconsole y tienes que instalarla de cero, te invito a que revises esta guía para que veas como realizar la instalación correctamente.
Una vez que tenemos cargado el nmap en la base de datos de Metasploit, procedemos a configurar el exploit para poder realizar el ataque.
Usaremos el comando searchsploit:
Lo descargamos con el siguiente comando:
Ahora vamos a ejecutar el exploit. Nos salimos de Metasploit. Y ejecutamos el exploit.
Para entender mejor, como hemos obtenido una Shell en la máquina remota siendo root, podemos analizar el exploit que es lo que hace, abriendo su código con nano, Vim, o tu editor preferido.
Simplemente podemos ver que está escrito en Python, (por como se define la función "handler").
Comenzamos importando una serie de librerías para poder utilizar Telnet, argparse, y signal.
Comenzamos definiendo una función llamada Handler, que tiene como parámetros "signal_received" y "frame". Dentro de esta función vemos que imprime por pantalla la palabra Exiting y realiza el comando exit(0) que entiendo que se utiliza para cerrar la sesión.
Primero que nada el exploit, ejecuta la función signal, a la que le pasa los argumentos de SIGINT, y handler, crea una variable parser con la clase argparse y su función ArgumentParser().
Luego utiliza parser para añadir los argumentos a la acción, como host y help, y establece type como str.
declara args, hosts, el puerto FTP (si tuviéramos que modificar el puerto, se cambiaria aquí)
el usuario, que podemos ver que es una :) y el pass, que es PASS pass.
Luego ejecuta el comando TELNET, con la misma información y el puerto 21 escrito en la variable del FTP, hace un encoder en ASCII, y ejecuta el comando TELNET para realizar una llamada a la acción.