Skip to content
KitploitKITPLOIT
أدواتالمدونة
إرسال
أدواتالمدونة
إرسال

أدوات الاختراق واختبار الاختراق والأمن السيبراني لترسانتك الأمنية!

Kitploit هو دليل لأدوات الاختراق والأمن السيبراني واختبار الاختراق. اكتشف آخر تحديثات المشاريع للعثور على الثغرات وتحليل الأنظمة وأتمتة الاختبارات وتعزيز أمنك.

··الخلاصات·اتصال·الخصوصية·© 2026 Kitploit

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
Log4JShell-Bytecode-Detector — ماسح البايت كود المحلي لثغرة Log4JShell (CVE-2021-44228) | Kitploit
أدوات/GitHubGitHub/codeshield-security/log4jshell-bytecode-detector
التحليل الثابتماسحات الثغرات الأمنيةتحليل الكودتحليل الملفات الثنائيةأمن سلسلة التوريدالاستجابة للحوادث
GitHubcodeshield-security/log4jshell-bytecode-detector

Log4JShell-Bytecode-Detector

ماسح البايت كود المحلي لثغرة Log4JShell (CVE-2021-44228)

الأكثر شعبية

عرض الكل →

اكتشف الأدوات الأكثر استخدامًا من قبل مجتمعنا.

استكشف جميع الأدوات

تصفح مجموعتنا من الأدوات

عرض جميع الأدوات →
مشاركة
عرض المستودعالموقع الإلكتروني
499منذ 4 سنواتتمت المراجعة من قبل Kitploit

🔍 كاشف بايت كود Log4JShell

كاشف بايت كود Log4JShell هو أداة مفتوحة المصدر تساعد في تحديد ما إذا كان ملف jar متأثرًا بالثغرة الحرجة CVE-2021-44228. تقوم الأداة بفحص ملف jar ومقارنة الفئات (classes) بمجموعة من التجزئات (hashes) الضعيفة للفئات داخل ملف jar. تم حساب التجزئات مسبقًا للقطع البرمجية (artifacts) على Maven Central.

تحديث مهم: قمنا بتوسيع قائمة القطع البرمجية المتأثرة على Maven Central. تحتوي القائمة على 18.816 قطعة برمجية. إما أن هذه القطع البرمجية تستخدم log4j-core كاعتماد مُصرَّح به، أو أننا حددنا ملفات .class داخل القطع البرمجية تطابق الإصدارات المتأثرة من log4j-core.

📝 كيفية التشغيل

  1. قم بتنزيل ملف jar من قسم الإصدارات (releases).
  2. شغّل الأمر java -cp <PATH_TO_DOWNLOADED_JAR> de.codeshield.log4jshell.Log4JDetector <ABSOLUTE_PATH_TO_JAR_TO_CHECK>

إذا كان ملف jar متأثرًا، تقوم الأداة بإخراج المعلومات إلى سطر الأوامر:

root@kitploit:~
CVE-2021-44228 found declared as dependency in META-INF/maven/org.apache.logging.log4j/log4j-core/pom.xml
CVE-2021-44228 found in class file org/apache/logging/log4j/core/net/JndiManager$1.class

📝 كيفية التشغيل على خادم مباشر (بدون الحاجة إلى إيقاف حالات Java قيد التشغيل)

  1. قم بتنزيل ملف jar من قسم الإصدارات (releases).
  2. شغّل الأمر java -cp <PATH_TO_DOWNLOADED_JAR> de.codeshield.log4jshell.Log4JProcessDetector
  3. يبحث ملف jar في classpath الخاص بجميع عمليات java قيد التشغيل عن حالات log4j الضعيفة.

❓ معلومات أساسية حول CVE-2021-44228

تم اكتشاف ثغرة خطيرة من نوع تنفيذ التعليمات البرمجية عن بُعد (Remote Code Execution) داخل log4j، والإصدارات من 2.0-beta9 إلى 2.14 متأثرة. تم تصنيف الثغرة على أنها حرجة، لأنها أثرت على log4j، أحد أكثر مكتبات تسجيل الدخول (logging) استخدامًا في Java. هناك العديد من المراجع والمقالات المتاحة.

  • Hackernews
  • BSI (بالألمانية فقط)
  • إثبات المفهوم (Proof of Concept) لاستغلال الثغرة
  • الورقة المرجعية السريعة Log4JShell

👀 لماذا هو مهم؟

تم استخدام Log4j ويُستخدم حاليًا في معظم مشاريع Java لأغراض تسجيل الدخول. الآن نحتاج إلى فهم المشاريع والمكتبات المتأثرة فعليًا. وفقًا لآلية التبعيات في Java، يمكن أن يتأثر التطبيق أيضًا إذا كان يتضمن بشكل transitively (غير مباشر) إصدار المكتبة الضعيفة. المشروع A يتضمن مكتبة lib بشكل transitively إذا كان أحد التبعيات المباشرة B للمشروع A لديه تبعية إلى lib. يمكن إجراء اختبار بسيط لمعرفة ما إذا كنت متأثرًا باستخدام شجرة تبعيات maven:

مثال: نفّذ الأمر mvn dependency:tree على مشروع maven.

root@kitploit:~
[INFO] exampleProject:mainProject:jar:0.0.1-SNAPSHOT
[INFO] +- exampleProject:lib-using-log4j:jar:0.0.1-SNAPSHOT:compile
[INFO] |  \- org.apache.logging.log4j:log4j-core:jar:2.14.1:compile

ومع ذلك، فإن هذا الفحص هو مجرد مؤشر أولي ولا يكفي للأسباب التالية:

برامج Java غالبًا:

  • تُعبأ كـ fatjar أو uberjar: يتم تضمين جميع ملفات الفئات (بما في ذلك التبعيات المباشرة وغير المباشرة) في ملف jar واحد. (كما نفعل لهذه القطعة البرمجية)
  • يُعاد تعبئتها أو تجميعها (rebundled): يتم تغيير أسماء الحزم الأصلية لتجنب تعارضات التسمية (بعض المترجمات وآليات التعبئة تطبق تحويلات على الكود)
  • يُعاد ترجمتها (re-compiled): يتم ترجمة الكود المصدري بمترجم مختلف وتعبئته كجديد، مما يؤدي إلى تعديل البايت كود

وبالتالي، أي مكتبة يستخدمها مشروع Java يمكن أن تُدخل الثغرة إلى مشروعك. يساعد تحليل البايت كود المتعمق في ذلك، وهذا ما ننشره كجزء من هذا المستودع.

📕 السكربت

  1. استخراج ملفات pom.xml من ملف .jar
  2. التحقق من التبعيات المُصرَّح بها مقابل قائمة محسوبة مسبقًا من قوائم groupId:artifactId:version المتأثرة للقطع البرمجية المستضافة على Maven Central
  3. استخراج ملفات .class من ملف .jar
  4. حساب تجزئات SHA لملف الفئة
  5. مطابقة تجزئات SHA مع قائمة محسوبة مسبقًا

🛠 تعليمات البناء

لبناء هذه الأداة، شغّل

mvn compile

لتجميع jar قابل للتشغيل، استخدم

mvn clean compile assembly:single

💡 التجزئات المحسوبة مسبقًا للفئات الضعيفة

تم حساب مجموعة التجزئات الضعيفة للفئات مسبقًا على مستودع Maven Central بالكامل. تحتوي تجزئات الفئات على جميع التجزئات التي حددناها كمتشابهة بالبايت كود باستخدام تقنية البصمة (Fingerprinting).

المعلومات المحسوبة مسبقًا تتضمن:

  • جميع القطع البرمجية التي تتضمن log4j مباشرة في أي من الإصدارات الضعيفة
  • جميع القطع البرمجية التي تحمل فئة تحتوي على تجزئة ضعيفة لـ log4j في نطاق الإصدارات المتأثرة
  • جميع القطع البرمجية التي تعيد تجميع فئة ضعيفة من log4j
  • جميع القطع البرمجية التي تحتوي على فئة معاد ترجمتها من إحدى فئات log4j في نطاق الإصدارات المتأثرة

كنطاق إصدارات متأثر، اعتبرنا [2.0-beta9, 2.15) المرجع.

💻 تقنية البصمة (Fingerprinting)

تستخدم هذه الأداة تقنية بصمة بايت كود جديدة لـ Java ابتكرها Andreas Dann. التدفق الأساسي هو كما يلي:

  1. استخدم الإصلاحات المتاحة Commit1 وCommit2 وCommit3 لتحديد الفئات المتأثرة.
  2. احسب "بصمات" البايت كود للفئات الضعيفة.
  3. ابحث عن فئات أخرى على MavenCentral بنفس "البصمة".

ملاحظة: من أجل نشر أبسط، يوفر هذا المستودع تجزئات SHA للفئات الضعيفة، وقد تم حساب المعلومات باستخدام تقنية البصمة

📌 إخلاء مسؤولية

قائمة التجزئات والقطع البرمجية لـ maven ليست كاملة. سنقوم بتحديث القوائم بانتظام.

📯 المساهمون

تم إنشاء هذه الأداة بالاشتراك بين مؤسسي CodeShield

  • Andreas Dann [email protected]
  • Johannes Spaeth [email protected]
  • Manuel Benz [email protected]

نرحب بملاحظاتكم!

نعمل على توسيع قائمة القطع البرمجية المتأثرة ونبحث دائمًا عن تحسين ما نقدمه. المساهمات مرحب بها

أيضًا، ⭐️ هذا المستودع إذا كان الماسح الضوئي لدينا قد ساعدك!

✍️ تواصل معنا

إذا كنت بحاجة إلى دعم، أو تريد معرفة المزيد عن تقنيتنا، تواصل معنا على [email protected].

فريق CodeShield الخاص بك 💚

تنزيل الأداة