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

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
log4j-finder — ابحث عن إصدارات Log4j2 الضعيفة على القرص وأيضًا داخل ملفات أرشيف Java (Log4Shell CVE-2021-44228, CVE-2021-45046, CVE-2021-45105) | Kitploit
أدوات/GitHubGitHub/fox-it/log4j-finder
التحليل الثابتماسحات الثغرات الأمنيةتحليل الثغرات الأمنيةتحليل الكودأمن سلسلة التوريدالاستجابة للحوادث
GitHubfox-it/log4j-finder

log4j-finder

ابحث عن إصدارات Log4j2 الضعيفة على القرص وأيضًا داخل ملفات أرشيف Java (Log4Shell CVE-2021-44228, CVE-2021-45046, CVE-2021-45105)

عرض المستودع
4399648منذ 3 سنواتتمت المراجعة من قبل Kitploit

الأكثر شعبية

عرض الكل →

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

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

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

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

log4j-finder

سكريبت بلغة Python3 لمسح نظام الملفات للعثور على Log4j2 المعرض لثغرة Log4Shell (CVE-2021-44228 و CVE-2021-45046 و CVE-2021-45105). يقوم بالمسح بشكل متكرر على القرص وداخل ملفات أرشيف Java (JARs) المتداخلة.

log4j-finder results

كيف يعمل

يحدد log4j-finder مكتبات log4j2 على نظام الملفات الخاص بك باستخدام قائمة من تجزئات MD5 المعروفة بالسيئة و المعروفة بالجيدة لملفات محددة (حاليًا فقط JndiManager.class) الموجودة في حزم log4j2-core-*؛ الحزمة الرئيسية المتأثرة بـ log4shell. يبحث عن هذه الملفات داخل ملفات أرشيف Java وعلى نظام الملفات. ثم يتم التعرف على إصدار log4j2 بناءً على تجزئة MD5 لهذا الملف.

لتحسين سرعة المسح، يبحث في نظام الملفات ويعالج فقط أسماء الملفات التالية:

  • جميع الملفات ذات امتدادات ملفات Java ARchive في اسم الملف (أيضًا المتداخلة في هذه الأرشيفات):
    • *.jar, *.war, *.ear
  • أسماء الملفات التي لدينا تجزئاتها المعروفة بالسيئة و الجيدة (أيضًا داخل الأرشيفات أعلاه، والمتداخلة):
    • JndiManager.class

إذا تطابق الملف مع أحد الامتدادات المذكورة أعلاه، فسيتحقق داخل هذه الأرشيفات (كلها في الذاكرة، لا شيء يتم فك ضغطه) للبحث عن أسماء الملفات التي لدى السكريبت تجزئات معروفة لها. كما يبحث داخل الأرشيفات المتداخلة، على سبيل المثال، ملف JAR داخل ملف WAR.

لا يقوم السكريبت بمسح امتدادات ملفات أرشيف أخرى مثل 7z, RAR, TAR, BZ2, إلخ. لذا، على سبيل المثال، إذا كان ملف JAR داخل ملف 7z، فلن يجده السكريبت. المنطق هو أن Java يمكنها تحميل تنسيقات Java ARchive فقط لذلك نقوم بمسح تلك فقط.

تظهر تجزئات MD5 غير المعروفة كـ UNKNOWN؛ قد يحدث هذا إذا استخدمت حزمة Java غير تابعة لـ log4j2 نفس اسم الملف الذي يبحث عنه هذا السكريبت. من المحتمل جدًا ألا يكون log4j2 إذا كان مسار الملف المحدد لا يحتوي على إشارات إلى org/apache/logging/log4j. ومع ذلك، لا يزال التحقق اليدوي موصى به.

التحميل والتشغيل

يمكنك تثبيت log4j-finder باستخدام إحدى الطرق التالية:

استخدام الملف الثنائي للإصدار

يمكنك تنزيل الملف الثنائي الصحيح لنظام التشغيل الخاص بك:

  • أحدث إصدار لويندوز (موقع): log4j-finder-signed.exe
    • الملفات الثنائية غير الموقعة متاحة أيضًا ولكنها قد تؤدي إلى تشغيل برنامج مكافحة الفيروسات الخاص بك بسبب كونها ملفًا تنفيذيًا PyInstaller. يمكنك أيضًا إنشاء الملف التنفيذي بنفسك، راجع "إنشاء ملفات log4j-finder التنفيذية" لمعرفة كيفية القيام بذلك.
  • أحدث إصدار للينكس x86_64: log4j-finder

إذا كنت على لينكس، يمكنك أيضًا تنزيل أحدث إصدار وتشغيله باستخدام إحدى الطرق التالية:

root@kitploit:~
curl -L https://github.com/fox-it/log4j-finder/releases/latest/download/log4j-finder -o log4j-finder
chmod +x log4j-finder
sudo ./log4j-finder
root@kitploit:~
wget https://github.com/fox-it/log4j-finder/releases/latest/download/log4j-finder -O log4j-finder
chmod +x log4j-finder
sudo ./log4j-finder

استخدام Python 3

للتوزيع مع تثبيت Python 3.6+، تعمل إحدى الطرق التالية أيضًا:

root@kitploit:~
curl -L https://github.com/fox-it/log4j-finder/raw/main/log4j-finder.py -o log4j-finder.py
sudo python3 log4j-finder.py
root@kitploit:~
wget https://github.com/fox-it/log4j-finder/raw/main/log4j-finder.py
sudo python3 log4j-finder.py
root@kitploit:~
git clone https://github.com/fox-it/log4j-finder
cd log4j-finder
sudo python3 log4j-finder.py

إنشاء ملفات log4j-finder التنفيذية

الملفات التنفيذية المولدة تلقائيًا

يوجد GitHub Action في المستودع يقوم تلقائيًا بإنشاء ملف ثنائي لويندوز ولينكس لسكريبت log4j-finder.py باستخدام PyInstaller في كل commit. تُستخدم نتائج بناء هذه العمليات لإرفاقها بصفحة الإصدارات.

نحن نعلم أن بعض موفري مضادات الفيروسات لا يحبون الملفات الثنائية لويندوز، في هذه الحالة نوصي بإنشاء الملف التنفيذي بنفسك باستخدام الخطوات التالية (لاحظ أننا نوفر الآن أيضًا ملفات ثنائية موقعة).

إنشاء الملف التنفيذي لويندوز

  1. إذا لم يكن لديك Python 3.6 أو أعلى مثبتًا، قم بتنزيله أولاً من https://www.python.org/downloads/

    • اختر Python 3.8.10 إذا كنت تريد أن يعمل ملفك الثنائي على ويندوز 7:
      • تنزيل مثبت ويندوز لـ Python 3.8.10 (32 بت)
      • تنزيل مثبت ويندوز لـ Python 3.8.10 (64 بت)
    • تأكد من أنك أثناء التثبيت تختار: Add Python 3.x to PATH، فهذا يسهل الخطوات التالية.
  2. افتح موجه الأوامر واستخدم pip لتثبيت حزمة pyinstaller:

    root@kitploit:~
    pip install pyinstaller
    
    # In the output you will see where pyinstaller is installed, for example:
    # C:\Users\User\AppData\Roaming\Python\Python310\Scripts
    #
    # Verify using --version
    C:\Users\User\AppData\Roaming\Python\Python310\Scripts\pyinstaller.exe --version
    4.7
    
  3. اختياريًا، قم بتثبيت حزمة colorama لإضافة دعم للألوان:

    root@kitploit:~
    pip install colorama
    
  4. قم بتنزيل أحدث إصدار من سكريبت log4j-finder.py ثم قم بتشغيل PyInstaller:

root@kitploit:~
pyinstaller --onefile --hidden-import colorama log4j-finder.py

سيكون الملف التنفيذي لويندوز بعد ذلك في مجلد dist: dist\log4j-finder.exe

إنشاء الملف التنفيذي للينكس

مثال معطى لـ Debian 11:

root@kitploit:~
# Install PyInstaller using pip3
sudo apt update
sudo apt install python3-pip git
pip3 install --user pyinstaller

# Git clone and build using PyInstaller
git clone https://github.com/fox-it/log4j-finder
cd log4j-finder
~/.local/bin/pyinstaller --onefile log4j-finder.spec

# Verify that the binary works
./dist/log4j-finder --help

الاستخدام

مثال استخدام لمسح مسار (الافتراضي هو /):

root@kitploit:~
$ python3 log4j-finder.py /path/to/scan

أو مباشرة ملف JAR:

root@kitploit:~
$ python3 log4j-finder.py /path/to/jarfile.jar

أو أدلة متعددة و/أو ملفات:

root@kitploit:~
$ python3 log4j-finder.py /path/to/dir1 /path/to/dir2 /path/to/jarfile.jar

استبعاد ملفات أو أدلة:

root@kitploit:~
$ python3 log4j-finder.py / --exclude "/*/.dontgohere" --exclude "/home/user/*.war"

لاحظ أنه على ويندوز يقوم فقط بمسح محرك الأقراص الجذر c:\ إذا لم تعطِ أي وسائط إضافية. نوصي بتحديد محركات الأقراص التي تحتاج إلى مسحها في سطر الأوامر مثل (يتم تخطي محركات الأقراص غير الموجودة):

root@kitploit:~
log4j-finder.exe c:\ d:\ e:\ f:\

الملفات أو الأدلة التي لا يمكن الوصول إليها (أخطاء الرفض) لا تتم طباعتها.

إذا كنت تريد رؤية مخرجات أكثر، يمكنك إعطاء علامة -v للوضع المفصل، أو -vv لوضع التصحيح (موصى به فقط لأغراض التصحيح).

وسائط التطبيق:

root@kitploit:~
positional arguments:
  PATH                  Directory or file(s) to scan (recursively) (default:
                        ['/'])

optional arguments:
  -h, --help            show this help message and exit
  -v, --verbose         verbose output (-v is info, -vv is debug) (default: 0)
  -n, --no-color        disable color output (default: False)
  -q, --quiet           be more quiet, disables banner and summary (default:
                        False)
  -b, --no-banner       disable banner (default: False)
  -V, --version         show program's version number and exit
  -e PATTERN, --exclude PATTERN
                        exclude files/directories by pattern (can be used
                        multiple times) (default: None)

يتم مسح الملفات بشكل متكرر، على القرص وفي ملفات أرشيف Java المتداخلة.

تنزيل الأداة