php木馬其實就是一個正常的php文件了,只是我們給了權限太高導致這個程序可以執行系統文件或調用系統命令來操作從而得到了服務器相關權限了,這樣對方就可以隨時拿我們程序或數據庫了,下面我來給各位介紹一些查找php木馬的方法與基本的安全配置教程吧。
安裝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.php last;
#——————————————-
}
(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木馬了,我經常使用後者來查找非常的不錯,當然安全還是很重要的一步了,就是把一些系統函數給禁止掉了。