
Scanner baseado em YARA que detecta malware PHP ofuscado e webshells usando correspondência de padrões semânticos em vez de hashes de arquivo, com um sistema de lista de permissões e rastreamento multi-threaded.
_______ __ __ _______
| ___ || |_| || |
| | | || || ___|
| |___| || || |___ Webshell finder,
| ___|| || ___| kiddies hunter,
| | | ||_|| || | website cleaner.
|___| |_| |_||___|
Detecta ficheiros PHP potencialmente maliciosos.
O PHP-malware-finder faz o possível para detectar código ofuscado/difícil, bem como arquivos que usam funções PHP frequentemente utilizadas em malwares/webshells.
A seguinte lista de codificadores/ofuscadores/webshells também é detectada:
Claro que é trivial contornar o PMF, mas seu objetivo é pegar iniciantes e idiotas, não pessoas com cérebro funcionando. Se você relatar um bypass personalizado idiota para o PMF, provavelmente pertence a uma (ou ambas) categorias, e deve reler a afirmação anterior.
A detecção é feita percorrendo o sistema de arquivos e testando arquivos contra um conjunto de regras YARA. Sim, é simples assim!
Em vez de usar uma abordagem baseada em hash,
o PMF tenta ao máximo usar padrões semânticos, para detectar coisas como
"uma variável $_GET é decodificada duas vezes, descompactada,
e então passada para alguma função perigosa como system".
sudo apt-get install yarayum install yara (requer o repositório EPEL)Você também pode compilá-lo a partir do código fonte:
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
Ou se preferir usar yara:
$ yara -r ./php.yar /var/www
Lembre-se de que você deve usar pelo menos YARA 3.4 porque estamos usando hashes para o sistema de lista branca e expressões regulares greedy. Observe que, se você planeja compilar yara a partir das fontes, o libssl-dev deve estar instalado no seu sistema para ter suporte a hashes.
Ah, e a propósito, você pode executar a suíte de testes abrangente com make tests.
Verifique o arquivo whitelist.yar. Se você é preguiçoso, pode gerar listas brancas para pastas inteiras com o script generate_whitelist.py.
Porque:
O PHP-malware-finder é licenciado sob a GNU Lesser General Public License v3.
O projeto incrível YARA é licenciado sob a licença Apache v2.0.
Patches, listas brancas ou amostras são, claro, mais que bem-vindos.