Máquina FIRSTHACKING

Dificultad: Muy fácil

Fecha: 19 de Marzo de 2025

Objetivo: 172.17.0.2


Fase de reconocimiento

Comenzamos haciendo un ping a la máquina para ver si nos contesta y está encendida.

ping 172.17.0.2

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.

Captura comando nmap

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.

Captura comando FTP - conexión rechazada

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.

Búsqueda en Google de la versión de SFTPD

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.

Captura pantalla web de rapid7

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.

msfconsole
Salida del arranque de Metasploit

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:

searchsploit vsftpd 2.3.4
Salida del comando searchsploit

Lo descargamos con el siguiente comando:

searchsploit -m unix/remote/49757.py
Descarga del exploit

Ahora vamos a ejecutar el exploit. Nos salimos de Metasploit. Y ejecutamos el exploit.

python3 49757.py 172.17.0.2
Salida del comando

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.

Código fuente del exploit que acabamos de utilizar

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.

Última actualización