
ماسح متكرر للملفات مطور بلغة Python 3 لتحديد ومسح الإصدارات الضعيفة من Log4j2، بما في ذلك التحليل الداخلي لملفات JAR (CVE-2021-44228, CVE-2021-45046, CVE-2021-45105 و CVE-2021-44832)
████████████████▀███████████████████████████████████████████████████████████████████ █▄─▄███─▄▄─█─▄▄▄▄█░█░████▄─▄█▀▀▀▀▀██▄─▄▄─█▄─▄█▄─▄███▄─▄▄─█─▄▄▄▄█─▄▄▄─██▀▄─██▄─▀█▄─▄█ ██─██▀█─██─█─██▄─█▄▄░██─▄█─██████████─▄████─███─██▀██─▄█▀█▄▄▄▄─█─███▀██─▀─███─█▄▀─██ ▀▄▄▄▄▄▀▄▄▄▄▀▄▄▄▄▄▀▀▄▄▄▀▄▄▄▀▀▀▀▀▀▀▀▀▀▄▄▄▀▀▀▄▄▄▀▄▄▄▄▄▀▄▄▄▄▄▀▄▄▄▄▄▀▄▄▄▄▄▀▄▄▀▄▄▀▄▄▄▀▀▄▄▀ بواسطة Renato Andalik (@andalik)
بسيط ومباشر... لا يتطلب ممارسة ولا مهارة! Log4j-FileScan هو نص برمجي مطور بلغة Python 3 لإجراء مسح كامل لنظام الملفات بحثًا عن الإصدارات الضعيفة من إطار عمل Log4j2 كما هو موصوف في CVE-2021-44228، CVE-2021-45046، CVE-2021-45105 و CVE-2021-44832. يتم المسح بشكل متكرر على القرص وداخل ملفات Java Archive (JAR).

لتحسين سرعة المسح، يتم البحث فقط في الملفات المتعلقة بالمشكلة:
Java ARchive (بما في ذلك الملفات المضغوطة بـ zip):
*.jar, *.war, *.ear و *.zipإذا تم العثور على ملف بأحد الامتدادات المذكورة أعلاه، يتم مسح الملفات الداخلية (كل شيء في الذاكرة).
يمكن تحميل النص البرمجي واستخدامه بطريقتين مختلفتين:
لتسهيل الأمر أكثر، قمنا بتجميع كل شيء وتوفير ملف ثنائي قابل للتنفيذ. فقط قم بتنزيل الإصدار المناسب لنظام التشغيل الخاص بك، افتح موجه الأوامر وقم بتشغيله:
Windows: log4j-filescan.exe هام: نظرًا لنموذج التعبئة الذي يوفره PyInstaller (كل شيء في ملف تنفيذي واحد)، قد تُصدر بعض برامج مكافحة الفيروسات تنبيهًا إيجابيًا خاطئًا. لذا، قم فقط بإضافة الملف التنفيذي إلى قائمة الاستثناءات في برنامج مكافحة الفيروسات لديك.
Linux: log4j-filescan
في Linux، عبر وحدة التحكم، يمكنك أيضًا استخدام wget للحصول على الملف الثنائي:
wget https://github.com/andalik/log4j-filescan/releases/download/v1.1.1/log4j-filescan -O log4j-filescan
chmod +x log4j-filescan
sudo ./log4j-filescan
لتوزيعات Linux المثبت عليها Python 3.6+، استخدم إحدى الطرق التالية:
wget https://github.com/andalik/log4j-filescan/raw/main/log4j-filescan.py
export LC_ALL=$(locale -a | grep UTF-8)
sudo python3 log4j-filescan.py
قم بتنزيل Python 3.6 أو أحدث من https://www.python.org/downloads/
Add Python 3.x to PATH.افتح موجه الأوامر وقم بتشغيل pip لتثبيت pyinstaller:
pip install pyinstaller
pip install colorama
قم بتنزيل أحدث إصدار من النص البرمجي log4j-filescan.py وقم بتشغيل PyInstaller:
pyinstaller --onefile --hidden-import colorama log4j-filescan.py
سيتم إنشاء الملف التنفيذي لنظام Windows في الدليل dist: dist\log4j-filescan.exe
مثال لنظام Debian 11:
sudo apt update
sudo apt install python3-pip git
pip3 install --user pyinstaller
git clone https://github.com/andalik/log4j-filescan
cd log4j-filescan
~/.local/bin/pyinstaller --onefile log4j-filescan.spec
./dist/log4j-finder --help
$ python3 log4j-filescan.py
أو
$ python3 log4j-filescan.py /المسار/المطلوب (في Linux)
$ python3 log4j-filescan.py d:\ (في Windows)
$ python3 log4j-filescan.py /المسار/الملف.jar
$ python3 log4j-filescan.py /المسار/دير1 /المسار/دير2 /المسار/الملف.jar
$ python3 log4j-filescan.py / --exclude "/المسار/*.war"
$ python3 log4j-filescan.py -v /المسار/المطلوب
$ python3 log4j-filescan.py -vv /المسار/المطلوب
c:\.
ومع ذلك، يمكن تحديد جميع محركات الأقراص الفعلية للكمبيوتر للمسح دفعة واحدة.افتح Powershell (يفضل "تشغيل كمسؤول") واكتب:
python3 log4j-filescan.py c:\ d:\ e:\
ستقوم الأداة بالمسح على C:\، ثم على D:\ وأخيرًا على E:. إذا لم يكن محرك الأقراص موجودًا، ستتجاهل الأداة ببساطة محرك الأقراص المحدد دون إظهار خطأ. سيتم تسجيل كل شيء على الشاشة (الملفات الضعيفة التي تم العثور عليها في أي محرك أقراص).