
Questa è la documentazione del bug Heratbleed (CVE-2014-0160) che ho realizzato per il corso Advenced Cyber Attacks.
Questo repository contiene Heartbleed.java, un exploit personalizzato basato su Java progettato per dimostrare la vulnerabilità Heartbleed (CVE-2014-0160) estraendo dati sensibili da un server vulnerabile (IP: 192.168.1.132) che esegue Apache (porta 443) e Postfix (porta 465). L'exploit invia richieste heartbeat TLS malformate, sfruttando la vulnerabilità nelle versioni non aggiornate di OpenSSL (dalla 1.0.1 alla 1.0.1f) per perdere fino a 64KB di memoria per richiesta. Gli script Bash di supporto (apache_memload.sh e postfix_memload.sh) riempiono la memoria dei servizi con dati sensibili, come credenziali utente, password del server di posta e certificati SSL, che l'exploit Java poi estrae.
Questo progetto fa parte di una dimostrazione di sicurezza completa documentata in un dettagliato documento Word, che descrive la metodologia di attacco, i risultati e le implicazioni sia per i servizi Apache che Postfix. Il lavoro ha incluso la creazione di script per caricare la memoria, l'esecuzione dell'exploit da un client Windows (IP: 192.168.1.99) e l'analisi dei dati trapelati per evidenziare l'impatto della vulnerabilità.
Heartbleed.java è il cuore di questa demo, implementando un processo di attacco semplificato:
sendHeartbeats, che è centrale per l'exploit.Il metodo sendHeartbeats, un componente chiave, orchestra l'attacco inviando ripetutamente messaggi heartbeat manipolati al server, sfruttando la vulnerabilità Heartbleed per estrarre il contenuto della memoria. Il ruolo di questo metodo è dettagliato nel documento Word allegato, insieme a uno screenshot della sua implementazione.
L'intero scopo di questo lavoro include:
apache_memload.sh per inondare la memoria di Apache con 50 richieste curl, incorporando dati sensibili come hash di password SHA-512 tramite uno script PHP (memload.php). Allo stesso modo, postfix_memload.sh invia 50 payload SMTP a Postfix, incorporando credenziali email e password.Heartbleed.java da un client Windows (IP: 192.168.1.99) per colpire Apache (porta 443) e Postfix (porta 465), riuscendo a estrarre dati come credenziali utente, password e certificati.sendHeartbeats e una conclusione con future strategie di mitigazione.memload.php su https://localhost/phpmyadmin/memload.php.sudo apt install openjdk-11-jdk.Clona il Repository:
git clone https://github.com/Shayhha/HeartbleedAttack
Compila l'Exploit:
javac -d bin Heartbleed.java
~/Desktop/apache_memload.sh
~/Desktop/postfix_memload.sh
Heartbleed.java impostando SERVER_PORT = APACHE_PORT, ricompila, quindi:javac -d bin Heartbleed.java
java -cp bin Heartbleed
Heartbleed.java impostando SERVER_PORT = POSTFIX_PORT, ricompila, quindi:javac -d bin Heartbleed.java
java -cp bin Heartbleed
Questo exploit è destinato esclusivamente a scopi educativi. Non utilizzarlo per danneggiare sistemi senza autorizzazione esplicita. Assicurati di rispettare gli standard legali ed etici.
Licenza MIT—vedi LICENSE per i dettagli.