_______ __ __ _______
| ___ || |_| || |
| | | || || ___|
| |___| || || |___ Webshell finder,
| ___|| || ___| kiddies hunter,
| | | ||_|| || | website cleaner.
|___| |_| |_||___|
Detect potentially malicious PHP files.
يبذل PHP-malware-finder قصارى جهده لاكتشاف التعليمات البرمجية المبهمة/المراوغة بالإضافة إلى الملفات التي تستخدم وظائف PHP المستخدمة غالبًا في البرامج الضارة/webshells.
تم أيضًا اكتشاف القائمة التالية من برامج التشفير/المخفيات/أصداف الويب:
بالطبع، تجاوز PMF أمر تافه ، لكن هدفه هو القبض على الأطفال والأغبياء، وليس الأشخاص ذوي العقول العاملة. إذا أبلغت عن تجاوز غبي مخصص لـ PMF، فمن المحتمل أنك تنتمي إلى فئة واحدة (أو كلتيهما)، ويجب عليك إعادة قراءة البيان السابق.
يتم إجراء الاكتشاف عن طريق الزحف إلى نظام الملفات واختبار الملفات مقابل مجموعة من قواعد YARA. نعم، الأمر بهذه البساطة!
بدلاً من استخدام النهج القائم على التجزئة ، يحاول PMF قدر الإمكان استخدام الأنماط الدلالية، لاكتشاف أشياء مثل "يتم فك تشفير متغير $_GET
مرتين، وفك ضغطه، ثم تمريره إلى وظيفة خطيرة مثل system
".
git clone https://github.com/jvoisin/php-malware-finder.git
cd php-malware-finder && make
أو استبدل الخطوتين الأخيرتين بـ go install github.com/jvoisin/php-malware-finder
، والذي سيقوم بتجميع وتثبيت PMF مباشرة في المجلد ${GOROOT}/bin
.
$ ./php-malware-finder -h
Usage:
php-malware-finder [OPTIONS] [Target]
Application Options:
-r, --rules-dir= Alternative rules location (default: embedded rules)
-a, --show-all Display all matched rules
-f, --fast Enable YARA's fast mode
-R, --rate-limit= Max. filesystem ops per second, 0 for no limit (default: 0)
-v, --verbose Verbose mode
-w, --workers= Number of workers to spawn for scanning (default: 32)
-L, --long-lines Check long lines
-c, --exclude-common Do not scan files with common extensions
-i, --exclude-imgs Do not scan image files
-x, --exclude-ext= Additional file extensions to exclude
-u, --update Update rules
-V, --version Show version number and exit
Help Options:
-h, --help Show this help message
أو إذا كنت تفضل استخدام yara
:
$ yara -r ./data/php.yar /var/www
يرجى أن تضع في اعتبارك أنه يجب عليك استخدام YARA 3.4 على الأقل لأننا نستخدم التجزئات لنظام القائمة البيضاء والتعبيرات العادية الجشعة. يرجى ملاحظة أنه إذا كنت تخطط لبناء yara من المصادر، فيجب تثبيت libssl-dev على نظامك حتى تحصل على دعم التجزئة.
أوه، وبالمناسبة، يمكنك تشغيل مجموعة الاختبارات الشاملة من خلال make tests
.
إذا كنت تريد تجنب الاضطرار إلى تثبيت Go وlibyara، فيمكنك أيضًا استخدام صورة عامل الإرساء الخاصة بنا وتثبيت المجلد الذي تريد مسحه ضوئيًا في دليل /data
الخاص بالحاوية:
$ docker run --rm -v /folder/to/scan:/data ghcr.io/jvoisin/php-malware-finder
تحقق من ملف القائمة البيضاء.yar. إذا كنت كسولًا، فيمكنك إنشاء قوائم بيضاء للمجلدات بأكملها باستخدام البرنامج النصي generator_whitelist.py.
لأن:
تم ترخيص PHP-malware-finder بموجب ترخيص GNU Lesser General Public License الإصدار 3.
مشروع YARA المذهل مرخص بموجب ترخيص Apache v2.0.
التصحيحات أو القوائم البيضاء أو العينات هي بالطبع موضع ترحيب كبير.