
Voici la documentation du bug Heratbleed (CVE-2014-0160) que j'ai réalisée pour le cours sur les cyberattaques avancées.
Ce dépôt contient Heartbleed.java, un exploit personnalisé basé sur Java conçu pour démontrer la vulnérabilité Heartbleed (CVE-2014-0160) en extrayant des données sensibles d'un serveur vulnérable (IP : 192.168.1.132) exécutant Apache (port 443) et Postfix (port 465). L'exploit envoie des requêtes heartbeat TLS malformées, exploitant la vulnérabilité des versions non corrigées d'OpenSSL (1.0.1 à 1.0.1f) pour fuiter jusqu'à 64 Ko de mémoire par requête. Les scripts Bash d'assistance (apache_memload.sh et postfix_memload.sh) inondent la mémoire des services avec des données sensibles, telles que des identifiants utilisateur, des mots de passe de serveur de messagerie et des certificats SSL, que l'exploit Java extrait ensuite.
Ce projet fait partie d'une démonstration de sécurité complète documentée dans un document Word détaillé, qui décrit la méthodologie d'attaque, les résultats et les implications pour les services Apache et Postfix. Le travail a consisté à concevoir des scripts pour charger la mémoire, à exécuter l'exploit depuis un client Windows (IP : 192.168.1.99) et à analyser les données fuitées afin de souligner l'impact de la vulnérabilité.
Heartbleed.java est au cœur de cette démo, mettant en œuvre un processus d'attaque simplifié :
sendHeartbeats, qui est au centre de l'exploit.La méthode sendHeartbeats, composant clé, orchestre l'attaque en envoyant à plusieurs reprises des messages heartbeat conçus au serveur, exploitant la vulnérabilité Heartbleed pour extraire le contenu de la mémoire. Le rôle de cette méthode est détaillé dans le document Word d'accompagnement, avec une capture d'écran de son implémentation.
La portée complète de ce travail comprend :
apache_memload.sh pour inonder la mémoire d'Apache avec 50 requêtes curl, intégrant des données sensibles comme des hachages de mots de passe SHA-512 via un script PHP (memload.php). De même, postfix_memload.sh envoie 50 charges utiles SMTP à Postfix, intégrant des identifiants et mots de passe de messagerie.Heartbleed.java depuis un client Windows (IP : 192.168.1.99) pour cibler Apache (port 443) et Postfix (port 465), fuitant avec succès des données telles que des identifiants utilisateur, des mots de passe et des certificats.sendHeartbeats, et une conclusion avec de futures stratégies d'atténuation.memload.php à https://localhost/phpmyadmin/memload.php.sudo apt install openjdk-11-jdk.Cloner le dépôt :
git clone https://github.com/Shayhha/HeartbleedAttack
Compiler l'exploit :
javac -d bin Heartbleed.java
~/Desktop/apache_memload.sh
~/Desktop/postfix_memload.sh
Heartbleed.java pour définir SERVER_PORT = APACHE_PORT, recompiler, puis :javac -d bin Heartbleed.java
java -cp bin Heartbleed
Heartbleed.java pour définir SERVER_PORT = POSTFIX_PORT, recompiler, puis :javac -d bin Heartbleed.java
java -cp bin Heartbleed
Cet exploit est uniquement à des fins éducatives. Ne l'utilisez pas pour nuire à des systèmes sans autorisation explicite. Assurez-vous de respecter les normes légales et éthiques.
Licence MIT — voir LICENSE pour plus de détails.