
Scanner basato su YARA che rileva malware PHP offuscato e webshells utilizzando il pattern matching semantico invece di hash di file, con un sistema di whitelist e crawling multi-thread.
_______ __ __ _______
| ___ || |_| || |
| | | || || ___|
| |___| || || |___ Webshell finder,
| ___|| || ___| kiddies hunter,
| | | ||_|| || | website cleaner.
|___| |_| |_||___|
Detect potentially malicious PHP files.
PHP-malware-finder fa del suo meglio per rilevare codice offuscato/sospetto, così come file che utilizzano funzioni PHP spesso usate in malware/webshell.
Vengono anche rilevati i seguenti encoder/offuscatori/webshell:
Ovviamente è banale aggirare PMF, ma il suo obiettivo è catturare i principianti e gli idioti, non persone con un cervello funzionante. Se segnali un stupido bypass personalizzato per PMF, probabilmente appartieni a una (o entrambe) le categorie, e dovresti rileggere la dichiarazione precedente.
Il rilevamento viene eseguito esplorando il filesystem e testando i file rispetto a un set di regole YARA. Sì, è così semplice!
Invece di utilizzare un approccio basato su hash, PMF cerca il più possibile di utilizzare pattern semantici, per rilevare cose come "una variabile $_GET viene decodificata due volte, decompressa, e poi passata a qualche funzione pericolosa come system."
sudo apt-get install yarayum install yara (richiede il repository EPEL)Puoi anche compilarlo dai sorgenti:
git clone [email protected]:VirusTotal/yara.git
cd yara/
YACC=bison ./configure
make
git clone https://github.com/jvoisin/php-malware-finder.git$ ./phpmalwarefinder -h
Usage phpmalwarefinder [-cfhtvl] <file|folder> ...
-c Optional path to a rule file
-f Fast mode
-h Show this help message
-t Specify the number of threads to use (8 by default)
-v Verbose mode
Oppure se preferisci usare yara:
$ yara -r ./php.yar /var/www
Tieni presente che dovresti usare almeno YARA 3.4 perché stiamo usando hash per il sistema di whitelist, e regex greedy. Nota che se prevedi di compilare yara dai sorgenti, libssl-dev deve essere installato sul tuo sistema per avere supporto per gli hash.
Oh, e a proposito, puoi eseguire la completa suite di test con make tests.
Controlla il file whitelist.yar. Se sei pigro, puoi generare whitelist per intere cartelle con lo script generate_whitelist.py.
Perché:
PHP-malware-finder è concesso in licenza sotto la GNU Lesser General Public License v3. Lo straordinario progetto YARA è concesso in licenza sotto la Apache v2.0. Patch, whitelist o campioni sono ovviamente più che benvenuti.