
Rileva file PHP potenzialmente dannosi
_______ __ __ _______
| ___ || |_| || |
| | | || || ___|
| |___| || || |___ Webshell finder,
| ___|| || ___| kiddies hunter,
| | ||_||_|| | website cleaner.
|___| |_| |_||___|
Rileva file PHP potenzialmente dannosi.
PHP-malware-finder fa del suo meglio per rilevare codice offuscato/dubbio, così come file che utilizzano funzioni PHP spesso impiegate in malware/webshell.
Vengono rilevati anche i seguenti encoder/offuscatori/webshell:
Certo, è banale eludere PMF, ma il suo obiettivo è catturare i principianti e gli idioti, non persone con un cervello funzionante. Se segnali una stupida elusione su misura 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 insieme di regole YARA. Sì, è così semplice!
Invece di usare 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".
git clone https://github.com/jvoisin/php-malware-finder.gitcd php-malware-finder && makeoppure sostituisci gli ultimi 2 passaggi con go install github.com/jvoisin/php-malware-finder,
che compilerà e installerà direttamente PMF nella tua cartella ${GOROOT}/bin.
$ ./php-malware-finder -h
Usage:
php-malware-finder [OPTIONS] [Target]
Application Options:
-r, --rules-dir= Percorso alternativo per le regole (default: regole incorporate)
-a, --show-all Mostra tutte le regole corrispondenti
-f, --fast Abilita la modalità veloce di YARA
-R, --rate-limit= Max. operazioni filesystem al secondo, 0 per nessun limite (default: 0)
-v, --verbose Modalità verbosa
-w, --workers= Numero di worker da generare per la scansione (default: 32)
-L, --long-lines Controlla le righe lunghe
-c, --exclude-common Non scansionare file con estensioni comuni
-i, --exclude-imgs Non scansionare file immagine
-x, --exclude-ext= Estensioni file aggiuntive da escludere
-u, --update Aggiorna le regole
-V, --version Mostra il numero di versione ed esci
Help Options:
-h, --help Mostra questo messaggio di aiuto
Oppure, se preferisci usare yara:
$ yara -r ./data/php.yar /var/www
Tieni presente che dovresti usare almeno YARA 3.4 perché utilizziamo hash per il sistema di whitelist e regexp greedy. Nota che se intendi compilare yara dai sorgenti, libssl-dev deve essere installato sul tuo sistema per avere il supporto per gli hash.
Oh, e comunque, puoi eseguire la suite di test completa con make tests.
Se vuoi evitare di installare Go e libyara, puoi anche usare la nostra
immagine docker e semplicemente montare la cartella che vuoi scansionare nella
directory /data del container:
$ docker run --rm -v /folder/to/scan:/data ghcr.io/jvoisin/php-malware-finder
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.
Il fantastico progetto YARA è concesso in licenza sotto la licenza Apache v2.0.
Patch, whitelist o campioni sono ovviamente più che benvenuti.