
이것은 제가 Advenced Cyber Attacks 과정에서 작성한 Heratbleed 버그(CVE-2014-0160) 문서입니다.
이 저장소는 취약한 서버(IP: 192.168.1.132)에서 Apache(포트 443) 및 Postfix(포트 465)를 실행 중인 서버로부터 민감한 데이터를 추출하여 Heartbleed 취약점(CVE-2014-0160)을 시연하도록 설계된 사용자 지정 Java 기반 익스플로잇인 Heartbleed.java를 포함합니다. 이 익스플로잇은 잘못된 형식의 TLS 하트비트 요청을 전송하여 패치되지 않은 OpenSSL 버전(1.0.1 ~ 1.0.1f)의 취약점을 활용해 요청당 최대 64KB의 메모리를 유출합니다. 지원 Bash 스크립트(apache_memload.sh 및 postfix_memload.sh)는 사용자 자격 증명, 메일 서버 비밀번호, SSL 인증서와 같은 민감한 데이터로 서비스 메모리를 채우며, Java 익스플로잇이 이를 추출합니다.
이 프로젝트는 공격 방법론, 결과 및 Apache와 Postfix 서비스 모두에 대한 영향을 설명하는 상세한 Word 문서에 기록된 포괄적인 보안 데모의 일부입니다. 이 작업에는 메모리를 로드하는 스크립트 제작, Windows 클라이언트(IP: 192.168.1.99)에서 익스플로잇 실행, 유출된 데이터를 분석하여 취약점의 영향을 강조하는 과정이 포함되었습니다.
Heartbleed.java는 이 데모의 핵심으로, 간소화된 공격 프로세스를 구현합니다:
sendHeartbeats 메서드를 통해 잘못된 형식의 하트비트 요청을 전송합니다.핵심 구성 요소인 메서드는 Heartbleed 취약점을 악용하여 메모리 내용을 추출하도록 서버에 조작된 하트비트 메시지를 반복적으로 전송하여 공격을 조율합니다. 이 메서드의 역할은 구현 스크린샷과 함께 첨부된 Word 문서에 자세히 설명되어 있습니다.
sendHeartbeats이 작업의 전체 범위는 다음과 같습니다:
memload.php)를 통해 SHA-512 비밀번호 해시와 같은 민감한 데이터를 포함하는 50개의 curl 요청으로 Apache 메모리를 채우는 apache_memload.sh를 개발했습니다. 마찬가지로 postfix_memload.sh는 이메일 자격 증명과 비밀번호를 포함하는 50개의 SMTP 페이로드를 Postfix에 전송합니다.Heartbleed.java를 실행하여 Apache(포트 443) 및 Postfix(포트 465)를 대상으로 사용자 자격 증명, 비밀번호, 인증서와 같은 데이터를 성공적으로 유출했습니다.sendHeartbeats 메서드 설명, 향후 완화 전략에 대한 결론이 포함됩니다.https://localhost/phpmyadmin/memload.php의 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를 참조하세요.