_______ __ __ _______
| ___ || |_| || |
| | | || || ___|
| |___| || || |___ Webshell finder,
| ___|| || ___| kiddies hunter,
| | | ||_|| || | website cleaner.
|___| |_| |_||___|
检测潜在的恶意PHP文件。
PHP-malware-finder 会尽全力检测混淆的/可疑的代码,以及使用常用于恶意软件/webshell的PHP函数的文件。
同时,还会检测以下编码器/混淆器/webshell列表:
当然,绕过PMF是非常容易的,但其目标是捕获脚本小子和蠢货,而不是有正常思维能力的人。如果你报告了一个针对PMF的愚蠢定制绕过方式,那么你很可能属于上述一类(或两类)人,并且应该重新阅读前面的声明。
检测是通过遍历文件系统,并使用一组 YARA 规则来测试文件完成的。这写在 此处。是的,就是这么简单!
PMF 没有采用基于哈希的方法,而是尽可能多地使用语义模式来检测诸如“一个 $_GET 变量被解码两次、解压,然后传递给像 system 这样的危险函数”之类的情况。
你也可以从源码编译:
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
或者如果你更喜欢使用 yara:
$ yara -r ./php.yar /var/www
请记住,你至少应该使用 YARA 3.4,因为我们在白名单系统中使用了 哈希 和贪婪正则表达式。请注意,如果你计划从源码构建 yara,系统必须安装 libssl-dev 才能支持哈希。
哦,顺便说一下,你可以使用 make tests 运行全面的测试套件。
请查看 whitelist.yar 文件。 如果你很懒,可以使用 generate_whitelist.py 脚本为整个文件夹生成白名单。
因为:
PHP-malware-finder 采用 GNU 宽通用公共许可证 v3 授权。
极好的 YARA 项目采用 Apache v2.0 许可证授权。
补丁、白名单或样本当然非常欢迎。