php木马其实就是一个正常的php文件了,只是我们给了权限太高导致这个程序可以执行系统文件或调用系统命令来操作从而得到了服务器相关权限了,这样对方就可以随时拿我们程序或数据库了,下面我来给各位介绍一些查找php木马的方法与基本的安全配置教程吧.
1、服务器本身的安全
安装denyhost,防止SSH的暴力破解,具体安装方法参考《denyhost防止SSH暴力破解,保护你的linux》一文.
另外对系统的一些重要文件添加一个i权限,比如如下代码:
- #chattr+i/etc/passwd
- #chattr+i/etc/group
- #chattr+i/etc/shadow
- #chattr+i/etc/gshadow
- #chattr+i/etc/ssh/sshd_config
2、nginx和php的安全
(1)对discuz/attachments,uchome/attachment,ucenter/data/tmp等用户上传的目录,限制php程序。centos+nginx本身应该比较安全的,一般的黑客都是利用webshell来入侵.
在nginx的配置文件里面添加,代码如下:
- location~.*\.(php|php5)?${
- …….
- #——————————————
- rewrite^/(uc\_client|templates|include|plugins|admin|attachments|images|
- forumdata)/.*\.(php|php5)?$/50x.phplast;
- #——————————————- --phpfensi.com
- }
(2)修改php.ini
查找:disable_functions,找到后在=后面添加如下代码:
exec,system,passthru,error_log,ini_alter,dl,openlog,syslog,readlink,symlink,link,leak,fsockopen,proc_open,popepassthru,chroot,scandir,chgrp,chown,escapeshellcmd,escapeshellarg,shell_exec,proc_get_status,popen
这里都是禁止在php里面执行的函数.
(3)对一些重要而且不需要修改的文件添加i权限,方法同《1、服务器本身的安全》部分.
3、如何查找服务器中的php木马
PHP木马的最明显特征是使用了eval与base64_decode这个函数,我们可以这么查找,代码如下:
find /var/www/ -type f -name “*.php” | xargs grep “eval(” |more
如果发现这样的字样,多半是木马程序,代码如下:
eval(base64_decode(…………..));
经验分享:如果你是windows系统我们可以使用像安全狗或webshell插件来扫描服务器php文件上不是有php木马了,我经常使用后者来查找非常的不错,当然安全还是很重要的一步了,就是把一些系统函数给禁止掉了.