精确查找PHP WEBSHELL木马的方法(1)攻略
查找PHP WEBSHELL木马一直是网络安全工作者的必备技能之一,本文将介绍一些精确查找PHP WEBSHELL木马的 方法,以帮助网络安全工作者更好地发现和处理木马。
1. 根据木马特征字符串查找
检查服务器上各个网站的PHP文件,可以在其文件头或尾巴查找PHP木马中常用的特征字符串来发现有无木马文件。其中常见的特征字符串如下:
eval(gzinflate(base64_decode('xxxx')));
eval(base64_decode('xxxxx'));
$_F=__FILE__;$_X='xxxxx';include($_X);
eval(\$_POST['cmd']);
可以使用以下的Linux命令来查找这些特征字符串:
grep -rn "eval(gzinflate" /path/to/wwwroot/
grep -r "eval(base64_decode" /path/to/wwwroot/
grep -rn "include(\$_GET['" /path/to/wwwroot/
grep -rn "eval(\$_POST['" /path/to/wwwroot/
这些命令将递归查找“/path/to/wwwroot”目录下包含这些特征字符串的文件,并将其打印出来。如果无法确定木马的特征字符串,可以在本地安装一些基于特征字符串的木马查杀工具,如Xuanwu Lab的PHPScan。
2. 利用日志文件查找
网络服务器通常会产生许多日志文件,如Apache的访问日志(access log)和错误日志(error log)等。利用这些日志文件来查找PHP木马也是一种有效的方法。
例如,可以在Apache的访问日志中查找时间很短的请求,因为这些请求往往代表了某些攻击者尝试上传木马文件或者访问木马文件的行为。
可以使用以下命令来查看访问日志:
tail -f /var/log/httpd/access_log # CentOS/RHEL
tail -f /var/log/apache2/access.log # Ubuntu/Debian
该命令将输出Apache的访问日志,并在每次有新的访问请求时自动更新。
例如,在Apache的访问日志中找到一个非常短的请求,如“POST / HTTP/1.1”,这很可能是攻击者上传了一个PHP木马文件,进行了一次快速的测试操作。
3. 示例说明
示例1
假设我们遇到一个文件名为index.php的文件,我们怀疑这个文件中可能含有PHP木马代码。我们可以使用以下命令来查看该文件中是否包含PHP木马字符串:
cat index.php | grep -E "eval\(|base64"
该命令将自动读取index.php文件,并输出其中包含“eval”或“base64”字符串的行。
如果发现该文件中包含木马代码,我们可以根据其中的特征字符串逐一查找其他可能感染的PHP文件。
示例2
我们还可以利用Apache的错误日志来查找异常请求。例如,在Ubuntu/Debian系统上查看Apache错误日志的命令如下:
tail -f /var/log/apache2/error.log
该命令将输出Apache的错误日志,并在每次有新的错误时自动更新。如果发现类似“ScriptAlias”或“/cgi-bin/”等异常请求,这很可能代表攻击者正在尝试上传或执行木马文件。
因此,我们可以利用日志文件来发现服务器上的PHP木马,及时清理这些木马以保障服务器安全。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:精确查找PHP WEBSHELL木马的方法(1) - Python技术站