
Это документация по ошибке Heratbleed (CVE-2014-0160), которую я подготовил для курса Advenced Cyber Attacks.
Этот репозиторий содержит Heartbleed.java — специальный эксплойт на Java, созданный для демонстрации уязвимости Heartbleed (CVE-2014-0160) путём извлечения конфиденциальных данных с уязвимого сервера (IP: 192.168.1.132), работающего под управлением Apache (порт 443) и Postfix (порт 465). Эксплойт отправляет некорректные запросы TLS heartbeat, используя уязвимость в незапатченных версиях OpenSSL (1.0.1–1.0.1f), чтобы утекать до 64 КБ памяти за запрос. Вспомогательные Bash-скрипты (apache_memload.sh и postfix_memload.sh) заполняют память служб конфиденциальными данными, такими как учётные данные пользователей, пароли почтовых серверов и SSL-сертификаты, которые затем извлекает Java-эксплойт.
Этот проект является частью комплексной демонстрации безопасности, задокументированной в подробном документе Word, в котором излагаются методология атаки, результаты и последствия для служб Apache и Postfix. Работа включала создание скриптов для загрузки памяти, выполнение эксплойта с клиента Windows (IP: 192.168.1.99) и анализ утекших данных, чтобы подчеркнуть влияние уязвимости.
Heartbleed.java — ядро этой демонстрации, реализующее упрощённый процесс атаки:
sendHeartbeats, который является центральным для эксплойта.Метод sendHeartbeats, ключевой компонент, управляет атакой, многократно отправляя специально сформированные сообщения heartbeat на сервер, используя уязвимость Heartbleed для извлечения содержимого памяти. Роль этого метода подробно описана в прилагаемом документе Word, вместе со скриншотом его реализации.
Полный объём работы включает:
apache_memload.sh для заполнения памяти Apache 50 запросами curl, внедряя конфиденциальные данные, такие как хэши паролей SHA-512, через PHP-скрипт (memload.php). Аналогично, postfix_memload.sh отправляет 50 SMTP-нагрузок на Postfix, внедряя учётные данные и пароли электронной почты.Heartbleed.java с клиента Windows (IP: 192.168.1.99) для атаки на Apache (порт 443) и Postfix (порт 465), успешно утекая такие данные, как учётные данные пользователей, пароли и сертификаты.sendHeartbeats и заключение с будущими стратегиями смягчения.memload.php по адресу https://localhost/phpmyadmin/memload.php.sudo apt install openjdk-11-jdk.Клонировать репозиторий:
git clone https://github.com/Shayhha/HeartbleedAttack
Скомпилировать эксплойт:
javac -d bin Heartbleed.java
~/Desktop/apache_memload.sh
~/Desktop/postfix_memload.sh
Heartbleed.java, установив SERVER_PORT = APACHE_PORT, перекомпилируйте, затем:javac -d bin Heartbleed.java
java -cp bin Heartbleed
Heartbleed.java, установив SERVER_PORT = POSTFIX_PORT, перекомпилируйте, затем:javac -d bin Heartbleed.java
java -cp bin Heartbleed
Этот эксплойт предназначен только для образовательных целей. Не используйте его для нанесения вреда системам без явного разрешения. Обеспечьте соблюдение правовых и этических норм.
Лицензия MIT — подробности см. в LICENSE.