Este repositorio contiene un Proof of Concept (POC) para explotar la vulnerabilidad CVE-2024-6387 en servidores SSH que ejecutan versiones vulnerables de OpenSSH.
Un POC, o Proof of Concept, es un programa o script que demuestra la explotación de una vulnerabilidad de seguridad de manera controlada y reproducible. Su objetivo principal es mostrar que la vulnerabilidad existe y que se puede aprovechar para ejecutar código malicioso o realizar acciones no autorizadas en el sistema afectado.
El POC en este repositorio está diseñado para aprovechar la vulnerabilidad CVE-2024-6387 en servidores SSH. A continuación, se explica brevemente cómo funciona cada parte del código:
CVE-2024-6387.py: Este archivo contiene el código principal del POC. Aquí se definen funciones para establecer una conexión con el servidor SSH, enviar paquetes específicos para manipular el heap del servidor, medir tiempos de respuesta y explotar la condición de carrera en el servidor.
setup_connection(ip, port): Establece una conexión TCP/IP con el servidor remoto. send_packet(sock, packet_type, data): Envía un paquete al servidor remoto. perform_ssh_handshake(sock): Realiza el handshake SSH completo. prepare_heap(sock): Prepara el heap del servidor con paquetes específicos para explotar la vulnerabilidad. time_final_packet(sock, parsing_time): Mide el tiempo de respuesta final del servidor. attempt_race_condition(sock, parsing_time, glibc_base): Intenta explotar la condición de carrera en el servidor SSH. perform_exploit(ip, port): Realiza la explotación completa intentando varias direcciones base de glibc. Uso
Configuración: Modifique las variables ip y port en el archivo exploit.py para apuntar al servidor SSH que desea explotar.
Ejecución: Ejecute el script CVE-2024-6387.py. Si la explotación es exitosa, recibirá un mensaje indicando que la vulnerabilidad fue aprovechada con éxito.
Para que este POC funcione con la vulnerabilidad CVE-2024-6387, se deben realizar las siguientes modificaciones o consideraciones:
Actualización de shellcode: Reemplace el placeholder de shellcode shellcode = b"\x90\x90\x90\x90" con un shellcode real que ejecute la acción deseada en el servidor afectado.
Adaptación a la CVE-2024-6387: Asegúrese de que las estructuras de datos y los paquetes enviados en las funciones prepare_heap y create_public_key_packet estén diseñados específicamente para aprovechar las vulnerabilidades descritas en CVE-2024-6387.
Este repositorio se proporciona con fines educativos y de investigación. La explotación de vulnerabilidades sin autorización puede ser ilegal y está estrictamente prohibida en entornos no autorizados. El autor no se hace responsable del uso indebido de este código.