_______ __ __ _______
| ___ || |_| || |
| | | || || ___|
| |___| || || |___ Webshell finder,
| ___|| || ___| kiddies hunter,
| | | ||_|| || | website cleaner.
|___| |_| |_||___|
Detect potentially malicious PHP files.
PHP-malware-finder พยายามอย่างเต็มที่ในการตรวจจับโค้ดที่สับสน/หลบเลี่ยง เช่นเดียวกับไฟล์ที่ใช้ฟังก์ชัน PHP ที่มักใช้ในมัลแวร์/webshell
ตรวจพบรายการตัวเข้ารหัส/ตัวสร้างความสับสน/เว็บเชลล์ต่อไปนี้ด้วย:
แน่นอนว่าการหลีกเลี่ยง PMF ไม่ใช่ เรื่องง่าย แต่เป้าหมายคือการจับเด็กและคนโง่ ไม่ใช่คนที่มีสมองทำงาน หากคุณรายงานการบายพาสที่ปรับแต่งอย่างงี่เง่าสำหรับ PMF คุณอาจอยู่ในหมวดหมู่หนึ่ง (หรือทั้งสอง) และควรอ่านข้อความก่อนหน้านี้อีกครั้ง
การตรวจจับทำได้โดยการรวบรวมข้อมูลระบบไฟล์และทดสอบไฟล์กับชุดกฎ YARA ใช่แล้ว มันง่ายมาก!
แทนที่จะใช้วิธีการ แบบแฮช PMF พยายามใช้รูปแบบความหมายให้มากที่สุดเท่าที่จะเป็นไปได้ เพื่อตรวจจับสิ่งต่างๆ เช่น "ตัวแปร $_GET
ถูกถอดรหัสสองครั้ง คลายซิป แล้วส่งต่อไปยังฟังก์ชันที่เป็นอันตราย เช่น system
"
git clone https://github.com/jvoisin/php-malware-finder.git
cd php-malware-finder && make
หรือแทนที่ 2 ขั้นตอนสุดท้ายด้วย 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 เป็นอย่างน้อย เนื่องจากเราใช้แฮชสำหรับระบบไวท์ลิสต์และ regexp ที่โลภ โปรดทราบว่าหากคุณวางแผนที่จะสร้าง yara จากแหล่งที่มา จะต้องติดตั้ง libssl-dev บนระบบของคุณจึงจะสามารถรองรับแฮชได้
โอ้ และอีกอย่าง คุณสามารถรันชุดทดสอบ ที่ครอบคลุม ด้วย make tests
ได้
หากคุณต้องการหลีกเลี่ยงการติดตั้ง Go และ libyara คุณยังสามารถใช้อิมเมจนักเทียบท่าของเราและเพียงเมานต์โฟลเดอร์ที่คุณต้องการสแกนไปยังไดเร็กทอรี /data
ของคอนเทนเนอร์:
$ docker run --rm -v /folder/to/scan:/data ghcr.io/jvoisin/php-malware-finder
ตรวจสอบไฟล์ whitelist.yar หากคุณขี้เกียจ คุณสามารถสร้างไวท์ลิสต์สำหรับทั้งโฟลเดอร์ได้ด้วยสคริปต์ Generate_whitelist.py
เพราะ:
PHP-malware-finder ได้รับอนุญาตภายใต้ GNU Lesser General Public License v3
โครงการ YARA ที่น่าทึ่ง ได้รับใบอนุญาตภายใต้ใบอนุญาต Apache v2.0
แน่นอนว่าแพตช์ ไวท์ลิสต์ หรือตัวอย่างเป็นสิ่งที่น่ายินดีอย่างยิ่ง