
هذه هي وثائق ثغرة 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 للحصول على التفاصيل.