Linux nginx php木馬排查及加固整理
1、改變目錄和文件屬性,禁止寫入
find -type f -name \*.php -exec chmod 444 {} \;
find -type d -exec chmod 555 {} \;
注:當然要排除上傳目錄、緩存目錄等;
同時最好禁止chmod函數,攻擊者可通過chmod來修改文件只讀屬性再修改文件
2、php配置
禁用危險函數
passthru,exec,system,chroot,scandir,chgrp,chown,shell_exec,proc_open,proc_get_status,ini_alter,
ini_alter,ini_restore,dl,openlog,syslog,readlink,symlink,popepassthru,stream_socket_server,escapeshellcmd,popen,dl,
syslog,show_source
3、nginx配置
限制一些目錄執行php文件
location~^/images/.*\.(php|php5)$
{
denyall;
}
location~^/static/.*\.(php|php5)$
{
denyall;
}
location~*^/data/(attachment|avatar)/.*\.(php|php5)$
{
denyall;
}
注:這些目錄的限制必須寫在
location~.*\.(php|php5)$
{
fastcgi_pass127.0.0.1:9000;
fastcgi_indexindex.php;
include fcgi.conf;
}
的前面,否則限制不生效
path_info漏洞修正:
在通用fcgi.conf頂部加入
if ($request_filename ~* (.*)\.php) {
set $php_url $1;
}
if (!-e $php_url.php) {
return 404;
}
4、木馬查找
php木馬一般含有<?php eval($_POST[cmd]);?>或者<?php assert($_POST[cmd]);?>
find /data/wwwroot/* -type f -name "*.php" |xargs grep "eval(" > /root/scan.txt
還有
常見的一句話后門:
grep -r --include=*.php '[^a-z]eval($_POST' . > grep.txt
grep -r --include=*.php 'file_put_contents(.*$_POST\[.*\]);' . > grep.txt
把搜索結果寫入文件,下載下來慢慢分析,其他特征木馬、后門類似。有必要的話可對全站所有文件來一次特征查找,上傳圖片肯定有也捆綁的,來次大清洗。
5、查找近3天被修改過的文件:
find /data/www -mtime -3 -type f -name \*.php
注意:攻擊者可能會通過touch函數來修改文件時間屬性來避過這種查找,所以touch必須禁止
關鍵字:Linux、目錄、木馬
新文章:
- CentOS7下圖形配置網絡的方法
- CentOS 7如何添加刪除用戶
- 如何解決centos7雙系統后丟失windows啟動項
- CentOS單網卡如何批量添加不同IP段
- CentOS下iconv命令的介紹
- Centos7 SSH密鑰登陸及密碼密鑰雙重驗證詳解
- CentOS 7.1添加刪除用戶的方法
- CentOS查找/掃描局域網打印機IP講解
- CentOS7使用hostapd實現無AP模式的詳解
- su命令不能切換root的解決方法
- 解決VMware下CentOS7網絡重啟出錯
- 解決Centos7雙系統后丟失windows啟動項
- CentOS下如何避免文件覆蓋
- CentOS7和CentOS6系統有什么不同呢
- Centos 6.6默認iptable規則詳解