PHP Malware Finder是一款针对主机安全和PHP安全的强大检测工具,在该工具的帮助下,广大研究人员可以轻松检测其主机或服务器中可能存在的潜在恶意PHP文件。
PHP Malware Finder本质上就是一款恶意软件检测工具,它将尽其所能地去检测那些经过代码模糊/混淆处理的恶意代码,以及潜在恶意PHP文件中所使用的各种PHP功能函数。
PHP Malware Finder支持检测跟下列编码器、代码混淆工具和Webshell相关的恶意PHP文件:
当然了,绕过PHP Malware Finder的检测其实也并不负责,但PHP Malware Finder的主要目的就是帮助我们检测一些比较明显和常见的恶意文件。
整个检测过程是通过对目标主机或服务器的文件系统进行数据爬取来实现的,并根据一组YARA规则测试文件来执行恶意文件的检测。没错,就是这么简单!
PHP Malware Finder没有使用基于哈希的方法,但它会尽可能多地使用语义模式,检测诸如“一个$_GET变量被解码两次,解压,然后传递给某个危险的系统函数”这样的场景。
首先,我们需要安装好Yara。我们可以通过Linux包管理器来完成安装:
Debian:
sudo apt-get install yara
Red Hat(需要EPEL库):
yum install yara
除此之外,我们还可以使用下列命令从源码编译Yara:
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版本必须为Yara v3.4或更高版本,因为我们会在白名单系统中使用到某些组件(比如说哈希)。如果你想通过源码构建Yara的话,还必须要在系统上安装好libssl-dev以便支持哈希。
顺带提一句,我们还可以用“make tests”来对工具进行综合测试。
具体的白名单信息可以参见whitelist.yar文件,如果你懒得看的话,可以直接使用generate_whitelist.py脚本来为整个目录生成白名单。
本项目的开发与发布遵循General Public License v3开源许可证协议。
PHP Malware Finder:【GitHub传送门】
https://yara.readthedocs.io/en/stable/gettingstarted.html#compiling-and-installing-yara
https://fedoraproject.org/wiki/EPEL
https://yara.readthedocs.org/en/latest/modules/hash.html
https://github.com/jvoisin/php-malware-finder/blob/master/php-malware-finder/whitelist.yar