
Dies ist die Dokumentation des Heratbleed-Fehlers (CVE-2014-0160), die ich für den Kurs Advenced Cyber Attacks erstellt habe.
Dieses Repository enthält Heartbleed.java, einen benutzerdefinierten Java-basierten Exploit zur Demonstration der Heartbleed-Sicherheitslücke (CVE-2014-0160). Er extrahiert vertrauliche Daten von einem verwundbaren Server (IP: 192.168.1.132), auf dem Apache (Port 443) und Postfix (Port 465) laufen. Der Exploit sendet fehlerhafte TLS-Herzschlaganfragen, die die Schwachstelle in ungepatchten OpenSSL-Versionen (1.0.1 bis 1.0.1f) ausnutzen, um bis zu 64 KB Speicher pro Anfrage preiszugeben. Unterstützende Bash-Skripte (apache_memload.sh und postfix_memload.sh) fluten den Speicher der Dienste mit sensiblen Daten wie Benutzeranmeldedaten, Mailserver-Passwörtern und SSL-Zertifikaten, die der Java-Exploit dann extrahiert.
Dieses Projekt ist Teil einer umfassenden Sicherheitsdemonstration, die in einem detaillierten Word-Dokument dokumentiert ist. Es beschreibt die Angriffsmethodik, Ergebnisse und Auswirkungen für sowohl Apache- als auch Postfix-Dienste. Die Arbeit umfasste das Erstellen von Skripten zum Laden des Speichers, das Ausführen des Exploits von einem Windows-Client (IP: 192.168.1.99) und die Analyse der preisgegebenen Daten, um die Auswirkungen der Sicherheitslücke hervorzuheben.
Heartbleed.java ist der Kern dieser Demo und implementiert einen optimierten Angriffsablauf:
sendHeartbeats, die zentral für den Exploit ist.Die Methode sendHeartbeats, eine Schlüsselkomponente, orchestriert den Angriff, indem sie wiederholt präparierte Herzschlag-Nachrichten an den Server sendet und die Heartbleed-Sicherheitslücke ausnutzt, um Speicherinhalte zu extrahieren. Die Rolle dieser Methode wird im begleitenden Word-Dokument detailliert beschrieben, zusammen mit einem Screenshot ihrer Implementierung.
Der vollständige Umfang dieser Arbeit umfasst:
apache_memload.sh, um den Apache-Speicher mit 50 curl-Anfragen zu fluten, die sensible Daten wie SHA-512-Passwort-Hashes über ein PHP-Skript (memload.php) einbetten. In ähnlicher Weise sendet postfix_memload.sh 50 SMTP-Payloads an Postfix und bettet E-Mail-Anmeldedaten und Passwörter ein.Heartbleed.java von einem Windows-Client (IP: 192.168.1.99) gegen Apache (Port 443) und Postfix (Port 465), wobei erfolgreich Daten wie Benutzeranmeldedaten, Passwörter und Zertifikate preisgegeben wurden.sendHeartbeats und eine Schlussfolgerung mit zukünftigen Abwehrstrategien.memload.php unter https://localhost/phpmyadmin/memload.php.sudo apt install openjdk-11-jdk.Repository klonen:
git clone https://github.com/Shayhha/HeartbleedAttack
Exploit kompilieren:
javac -d bin Heartbleed.java
~/Desktop/apache_memload.sh
~/Desktop/postfix_memload.sh
Heartbleed.java, um SERVER_PORT = APACHE_PORT zu setzen, kompilieren Sie erneut, dann:javac -d bin Heartbleed.java
java -cp bin Heartbleed
Heartbleed.java, um SERVER_PORT = POSTFIX_PORT zu setzen, kompilieren Sie erneut, dann:javac -d bin Heartbleed.java
java -cp bin Heartbleed
Dieser Exploit dient ausschließlich zu Bildungszwecken. Verwenden Sie ihn nicht, um Systeme ohne ausdrückliche Erlaubnis zu schädigen. Stellen Sie die Einhaltung rechtlicher und ethischer Standards sicher.
MIT-Lizenz – siehe LICENSE für Details.