Exploit basado en Python para CVE-2014-6287 en HTTP File Server 2.3.x, que entrega una reverse shell mediante un payload de PowerShell codificado en Base64 para pruebas de penetración autorizadas.
Este repositorio contiene una herramienta de explotación basada en Python diseñada para aprovechar la vulnerabilidad CVE-2014-6287 en HTTP File Server (HFS) versiones 2.3.x. Esta vulnerabilidad permite a un atacante ejecutar comandos arbitrarios en el servidor, lo que puede llevar a acceso y control no autorizados.
⚠️ Aviso:
Esta herramienta está destinada únicamente para fines educativos y de pruebas de penetración autorizadas. El uso no autorizado de esta herramienta contra sistemas que no poseas o para los cuales no tengas permiso explícito para probar es ilegal y poco ético. El autor y los colaboradores no son responsables de ningún mal uso o daño causado por esta herramienta.
nc) instalado en la máquina del atacante.Clonar el Repositorio:
git clone https://github.com/francescobrina/hfs-cve-2014-6287-exploit.git
cd hfs-cve-2014-6287-exploit
Instalar Dependencias:
Este script depende de las bibliotecas estándar de Python. Asegúrate de tener Python 3.6 o superior instalado.
python3 --version
Si no tienes Python instalado, descárgalo desde el sitio web oficial o usa tu gestor de paquetes.
Configurar el Script:
Abre el archivo exploit.py en un editor de texto y configura las siguientes variables:
lhost = "YOUR_LOCAL_IP" # Tu dirección IP de atacante
lport = 1111 # Puerto a escuchar
rhost = "TARGET_IP" # Dirección IP del servidor HFS objetivo
rport = 80 # Puerto del servidor HFS objetivo (por defecto 80)
Iniciar el Oyente Netcat:
En tu máquina atacante, inicia un oyente Netcat para recibir la shell inversa:
nc -nlvp 1111
Ejecutar el Script de Explotación:
Ejecuta el script de explotación en Python:
python3 exploit.py
El script codificará el comando de PowerShell en Base64, enviará una solicitud HTTP GET al servidor HFS objetivo y esperará una conexión de shell inversa.
Establecer Conexión:
Si la explotación es exitosa, deberías recibir una shell inversa en tu oyente Netcat.
Creación del Comando PowerShell:
El script construye un comando de PowerShell que inicia una conexión TCP de vuelta a la máquina del atacante (lhost:lport). Una vez conectado, crea un flujo para enviar y recibir datos, estableciendo efectivamente una shell inversa.
Codificación del Comando:
El comando de PowerShell se codifica en Base64 usando codificación UTF-16LE para ofuscarlo y eludir posibles filtros de seguridad.
Elaboración del Payload:
El comando codificado se incrusta en un payload que se envía como parte de una solicitud HTTP GET al endpoint vulnerable del servidor HFS objetivo.
Ejecución del Payload:
Cuando el servidor HFS procesa la solicitud, decodifica y ejecuta el comando de PowerShell, estableciendo una shell inversa de vuelta al atacante.
Asegúrate de que las siguientes configuraciones estén correctamente establecidas antes de ejecutar la explotación:
lhost: La dirección IP de tu máquina donde Netcat está escuchando.lport: El número de puerto en el que Netcat está escuchando.rhost: La dirección IP de la máquina objetivo que ejecuta el servidor HFS vulnerable.rport: El número de puerto del servidor HFS objetivo (por defecto es 80).Ejemplo de configuración:
lhost = "192.168.1.100"
lport = 1111
rhost = "192.168.1.105"
rport = 80
Sin Conexión de Shell Inversa:
lhost y rhost estén correctamente configurados y sean accesibles.Errores del Script:
Problemas con Netcat:
-nlvp) para iniciar el oyente.¡Las contribuciones son bienvenidas! Si encuentras algún problema o tienes sugerencias de mejora, por favor abre un issue o envía un pull request.
Hacer Fork del Repositorio
Crear una Rama de Funcionalidad
git checkout -b feature/YourFeature
Hacer Commit de tus Cambios
git commit -m "Añadir Tu Funcionalidad"
Subir a la Rama
git push origin feature/YourFeature
Abrir un Pull Request
Desarrollado por Francesco Brina.
Correo electrónico: [email protected]
Este proyecto está licenciado bajo la Licencia MIT.
Aviso:
Usa esta herramienta de manera responsable y solo en sistemas para los cuales tengas permiso explícito para probar. El autor no es responsable de ningún mal uso o daño causado por esta herramienta.
No dudes en informarme si deseas algún ajuste adicional.