Trải qua các thư mục cho các tệp với các tiện ích mở rộng PHP và các tệp kiểm tra theo các quy tắc văn bản hoặc regexp, các quy tắc dựa trên các mẫu tự thu thập và các malwares/webshell có sẵn công khai. Mục tiêu là tìm các tập tin bị nhiễm bệnh và chiến đấu chống lại những đứa trẻ, bởi vì dễ dàng bỏ qua các quy tắc. Chỉ cần sao chép kho lưu trữ hoặc với trình soạn thảo cài đặt trên toàn cầu Bỏ qua đối số có thể được sử dụng nhiều lần và chấp nhận phù hợp với kiểu Glob ex .: " Đối số mở rộng mặc định là "Máy quét phần mềm độc hại PHP
Cài đặt thế nào?
composer global require scr34m/php-malware-scanner
.Làm thế nào để sử dụng?
Usage: php scan.php -d
-h --help Show this help message
-d --directory Directory for searching
-e --extension File Extension to Scan
-E --scan-everything Scan all files, with or without extensions
-i --ignore Directory of file to ignore
-a --all-output Enables --checksum,--comment,--pattern,--time
-b --base64 Scan for base64 encoded PHP keywords
-m --checksum Display MD5 Hash/Checksum of file
-c --comment Display comments for matched patterns
-x --extra-check Adds GoogleBot and htaccess to Scan List
-l --follow-symlink Follow symlinked directories
-k --hide-ok Hide results with 'OK' status
-r --hide-err Hide results with 'ER' status
-w --hide-whitelist Hide results with 'WL' status
-n --no-color Disable color mode
-s --no-stop Continue scanning file after first hit
-p --pattern Show Patterns next to the file name
-t --time Show time of last file change
-L --line-number Display matching pattern line number in file
-o --output-format Custom defined output format
-j --wordpress-version Version of wordpress to get md5 signatures
--combined-whitelist Combined whitelist
--custom-whitelist Loads whitelist from specified file and merge with existing
--disable-stats Disable statistics output
cache*
", "??-cache.php
" hoặc "/cache
", v.v..php
" và cũng có thể được sử dụng nhiều lần.
--base64
là chế độ quét thay thế bỏ qua các tệp mẫu chính và sử dụng một danh sách lớn các từ khóa và chức năng PHP đã được chuyển đổi thành Base64. Chậm hơn và dễ bị dương tính giả, nhưng cung cấp bảo hiểm quét Base64 bổ sung. Các tệp mẫu này được đặt trong Base64_Potype và được lấy từ các từ khóa và chức năng của PHP 7. Không có nhiều phần mở rộng PHP được bao gồm.- Cờ
--comment
sẽ hiển thị nhận xét cuối cùng xuất hiện trong tệp mẫu trước mẫu phù hợp, do đó, việc ghi lại các tệp mẫu là rất quan trọng.
Định dạng đầu ra
Đầu ra mặc định tùy thuộc vào các tham số được chỉ định, nhưng định dạng đầy đủ là " %s %t %m # { %f} %C %p # %l" và sử dụng màu ANSI.
Các biến có thể là:
0 - Chỉ báo phù hợp, các giá trị có thể là OK, er, WL$ python tools/text2base64.py 'base64_decode' YmFzZTY0X2RlY29kZ Jhc2U2NF9kZWNvZG iYXNlNjRfZGVjb2Rl
1 - Thời gian thay đổi tệp$ python tools/text2base64.py 'base64_decode' YmFzZTY0X2RlY29kZ Jhc2U2NF9kZWNvZG iYXNlNjRfZGVjb2Rl
2 - Tệp giá trị băm MD5$ python tools/text2base64.py 'base64_decode' YmFzZTY0X2RlY29kZ Jhc2U2NF9kZWNvZG iYXNlNjRfZGVjb2Rl
3 - Tệp có đường dẫn$ python tools/text2base64.py 'base64_decode' YmFzZTY0X2RlY29kZ Jhc2U2NF9kZWNvZG iYXNlNjRfZGVjb2Rl
4 - mẫu$ python tools/text2base64.py 'base64_decode' YmFzZTY0X2RlY29kZ Jhc2U2NF9kZWNvZG iYXNlNjRfZGVjb2Rl
5 - Nhận xét mẫu$ python tools/text2base64.py 'base64_decode' YmFzZTY0X2RlY29kZ Jhc2U2NF9kZWNvZG iYXNlNjRfZGVjb2Rl
6 - Số dòng mẫu phù hợp$ python tools/text2base64.py 'base64_decode' YmFzZTY0X2RlY29kZ Jhc2U2NF9kZWNvZG iYXNlNjRfZGVjb2Rl
Mô hình
Có ba tệp mẫu chính bao gồm các loại phù hợp mẫu khác nhau. Có một mẫu trên mỗi dòng. Tất cả các dòng trong đó ký tự đầu tiên là "
$ python tools/text2base64.py 'base64_decode'
YmFzZTY0X2RlY29kZ
Jhc2U2NF9kZWNvZG
iYXNlNjRfZGVjb2Rl
7" được coi là một nhận xét và không được sử dụng làm mẫu. Khoảng trắng trong các tập tin mẫu không được sử dụng.
8 - Kết hợp chuỗi thô$ python tools/text2base64.py 'base64_decode' YmFzZTY0X2RlY29kZ Jhc2U2NF9kZWNvZG iYXNlNjRfZGVjb2Rl
9 - Trường hợp kết hợp chuỗi thô không nhạy cảm$ python tools/text2base64.py 'base64_decode' YmFzZTY0X2RlY29kZ Jhc2U2NF9kZWNvZG iYXNlNjRfZGVjb2Rl
- ________ 20- Kết hợp biểu thức chính quy.
Danh sách trắng
Xem tệp Whitelist.txt cho danh sách băm MD5 được xác định trước. Chỉ có 32 ký tự đầu tiên được sử dụng, phần còn lại của dòng bị bỏ qua, vì vậy hãy thoải mái để lại nhận xét.
WordPress MD5 Sum Whitelisting
Bạn có thể tự động thêm md5sum từ các tệp lõi WordPress bằng cách chỉ định phiên bản là đối số vào - -wordpress -prestion hoặc -j. Thí dụ:
Điều đó sẽ tự động nhận MD5sums từ API WordPress [//api.wordpress.org/core/checksums/1.0/?version=x.x.x] và thêm nó vào danh sách trắng. Để kiểm tra phiên bản của bạn, chỉ cần kiểm tra tệp WP-includes/phiên bản.php của WordPress của bạn
Kết hợp danh sách trắng
Danh sách này là một cơ sở dữ liệu được tạo trước cho các dự án OpenSource thêm thông tin tại //scr34m.github.io/php-malware-scanner/ trang web. Kiểm tra máy quét cho cơ sở dữ liệu Hiệu lực và chỉ tải xuống nếu nó khác biệt và tất nhiên khi đối số sử dụng.
Công cụ
text2base64.py
Lấy một chuỗi văn bản làm đầu vào và trả về 3 chuỗi base64 tương đương. Kịch bản Python cần được thực thi từ thiết bị đầu cuối sẽ được sử dụng.
Điều đáng chú ý là sự hiện diện của một trong ba chuỗi đầu ra trong một khối văn bản không đảm bảo 100% rằng chuỗi có mặt trong mã gốc. Đảm bảo rằng nếu chuỗi chủ đề có mặt trong mã gốc, thì một trong ba chuỗi đầu ra sẽ có mặt trong phiên bản Base64.
$ python tools/text2base64.py 'base64_decode'
YmFzZTY0X2RlY29kZ
Jhc2U2NF9kZWNvZG
iYXNlNjRfZGVjb2Rl
Một ví dụ: Sự hiện diện của 'ymfzzty0x2rly29kz' không đảm bảo rằng 'base64_decode' nằm trong mã văn bản đơn giản. Đảm bảo rằng nếu 'base64_decode' có mặt trong mã văn bản đơn giản, thì một trong ba chuỗi base64 này sẽ có mặt. Sự hiện diện của 'YMFZZTY0X2RLY29KZ' trong một khối mã có thể là do 'ASE64_DECOD' nằm trong mã gốc. ote các ký tự cạnh bị thiếu do sai lệch bit và chảy máu nhân vật.
It is guaranteed that IF 'base64_decode' was present in the plain text code, then one of these
three base64 strings WILL be present. The presence of 'YmFzZTY0X2RlY29kZ' in a block of code may be because 'ase64_decod' was in the original code.
ote the missing edge characters which is due to bit misalignment and character bleed.
Sử dụng làm thư viện
Scan.php thực hiện kiểm tra, rằng nó được gọi bằng LineLine hay không, vì vậy để sử dụng làm thư viện sử dụng thư mục khác với scan.php IT.