
Escáner basado en YARA que detecta malware PHP ofuscado y webshells mediante coincidencia semántica de patrones en lugar de hashes de archivos, con un sistema de listas blancas y rastreo multihilo.
_______ __ __ _______
| ___ || |_| || |
| | | || || ___|
| |___| || || |___ Webshell finder,
| ___|| || ___| kiddies hunter,
| | | ||_|| || | website cleaner.
|___| |_| |_||___|
Detecta archivos PHP potencialmente maliciosos.
PHP-malware-finder hace todo lo posible para detectar código ofuscado/engañoso, así como archivos que utilizan funciones de PHP a menudo empleadas en malware/webshells.
La siguiente lista de codificadores/ofuscadores/webshells también se detecta:
Por supuesto, es trivial eludir PMF, pero su objetivo es atrapar a novatos e idiotas, no a personas con un cerebro funcional. Si reportas una evasión tonta hecha a medida para PMF, probablemente pertenezcas a una (o ambas) categorías, y deberías releer la afirmación anterior.
La detección se realiza recorriendo el sistema de archivos y probando los archivos contra un conjunto de reglas de YARA. ¡Sí, es así de simple!
En lugar de usar un enfoque basado en hashes,
PMF intenta en la medida de lo posible utilizar patrones semánticos, para detectar cosas como
"una variable $_GET se decodifica dos veces, se descomprime,
y luego se pasa a alguna función peligrosa como system".
sudo apt-get install yarayum install yara (requiere el repositorio EPEL)También puedes compilarlo desde el código fuente:
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
O si prefieres usar yara:
$ yara -r ./php.yar /var/www
Ten en cuenta que debes usar al menos YARA 3.4 porque estamos usando hashes para el sistema de listas blancas, y expresiones regulares greedy. Por favor, ten en cuenta que si planeas compilar yara desde las fuentes, debe tener instalado libssl-dev en tu sistema para tener soporte para hashes.
Ah, y por cierto, puedes ejecutar el completo conjunto de pruebas con make tests.
Consulta el archivo whitelist.yar. Si eres perezoso, puedes generar listas blancas para carpetas enteras con el script generate_whitelist.py.
Porque:
PHP-malware-finder está licenciado bajo la GNU Lesser General Public License v3.
El increíble proyecto YARA está licenciado bajo la licencia Apache v2.0.
Parches, listas blancas o muestras son, por supuesto, más que bienvenidos.