
Esta es la documentación del bug Heratbleed (CVE-2014-0160) que hice para el curso Advenced Cyber Attacks.
Este repositorio incluye Heartbleed.java, un exploit personalizado basado en Java diseñado para demostrar la vulnerabilidad Heartbleed (CVE-2014-0160) extrayendo datos sensibles de un servidor vulnerable (IP: 192.168.1.132) que ejecuta Apache (puerto 443) y Postfix (puerto 465). El exploit envía solicitudes de heartbeat TLS malformadas, aprovechando la vulnerabilidad en versiones sin parchear de OpenSSL (1.0.1 a 1.0.1f) para filtrar hasta 64 KB de memoria por solicitud. Los scripts Bash de soporte (apache_memload.sh y postfix_memload.sh) inundan la memoria de los servicios con datos sensibles, como credenciales de usuario, contraseñas del servidor de correo y certificados SSL, que luego el exploit Java extrae.
Este proyecto forma parte de una demostración de seguridad integral documentada en un detallado documento de Word, que describe la metodología del ataque, los resultados y las implicaciones tanto para los servicios Apache como Postfix. El trabajo implicó la creación de scripts para cargar memoria, la ejecución del exploit desde un cliente Windows (IP: 192.168.1.99) y el análisis de los datos filtrados para resaltar el impacto de la vulnerabilidad.
Heartbleed.java es el núcleo de esta demo, e implementa un proceso de ataque simplificado:
sendHeartbeats, que es central para el exploit.El método sendHeartbeats, un componente clave, orquesta el ataque enviando repetidamente mensajes heartbeat diseñados al servidor, aprovechando la vulnerabilidad Heartbleed para extraer el contenido de la memoria. El papel de este método se detalla en el documento de Word adjunto, junto con una captura de pantalla de su implementación.
El alcance completo de este trabajo incluye:
apache_memload.sh para inundar la memoria de Apache con 50 solicitudes curl, incrustando datos sensibles como hashes de contraseñas SHA-512 mediante un script PHP (memload.php). Del mismo modo, postfix_memload.sh envía 50 cargas SMTP a Postfix, incrustando credenciales y contraseñas de correo electrónico.Heartbleed.java desde un cliente Windows (IP: 192.168.1.99) para atacar Apache (puerto 443) y Postfix (puerto 465), filtrando con éxito datos como credenciales de usuario, contraseñas y certificados.sendHeartbeats y una conclusión con futuras estrategias de mitigación.memload.php en https://localhost/phpmyadmin/memload.php.sudo apt install openjdk-11-jdk.Clonar el repositorio:
git clone https://github.com/Shayhha/HeartbleedAttack
Compilar el exploit:
javac -d bin Heartbleed.java
~/Desktop/apache_memload.sh
~/Desktop/postfix_memload.sh
Heartbleed.java para establecer SERVER_PORT = APACHE_PORT, recompila y luego ejecuta:javac -d bin Heartbleed.java
java -cp bin Heartbleed
Heartbleed.java para establecer SERVER_PORT = POSTFIX_PORT, recompila y luego ejecuta:javac -d bin Heartbleed.java
java -cp bin Heartbleed
Este exploit es solo para fines educativos. No lo utilices para dañar sistemas sin permiso explícito. Asegúrate de cumplir con los estándares legales y éticos.
Licencia MIT: consulta LICENSE para más detalles.