排查php2shell攻击需重点检查web目录下的异常文件、定时任务及进程行为。通过扫描隐藏脚本、分析日志中的恶意请求以及监控可疑的反弹shell连接,可以确认入侵痕迹并定位攻击源。

如何识别Web目录中的隐蔽后门文件
攻击者通常会将Webshell伪装成正常文件或隐藏在深层目录中。使用find命令结合特定关键词和属性(如隐藏、只读)进行扫描是第一步。

find /var/www/html -type f \( -name "*.php" -o -name "*.txt" -o -name "*.jpg" \) -exec grep -l "eval\|base64_decode\|system\|passthru" {} \;
上述命令会递归搜索网站根目录,查找包含常见危险函数调用的文件。重点关注那些修改时间异常或位于非标准路径的文件。例如,若发现一个名为 .htaccess 的文件被修改用于执行PHP代码,或者在图片目录下发现了可执行的PHP脚本,这通常是入侵的直接证据。
如何分析日志以追踪攻击入口
通过分析Nginx或Apache访问日志,可以找到攻击者利用的具体漏洞点,如文件上传或SQL注入尝试。过滤包含恶意Payload的请求是关键。

grep -E "(cmd=|exec=|system=|passthru=|eval\()" /var/log/nginx/access.log | head -n 50
该命令从日志中提取包含命令执行参数的请求。如果看到大量来自同一IP的POST请求,且参数中包含 cmd=ls 或 exec=id,则表明攻击者正在尝试执行系统命令。记录这些IP地址有助于后续封禁和溯源。
基于程序中某个输入、条件或结果的具体问题
当发现服务器存在异常网络连接时,如何判断是否为反弹Shell?
检查当前活跃的网络连接和进程树是判断反弹Shell的有效手段。使用 netstat 或 ss 命令查看是否有连接到外部未知IP的TCP连接,特别是端口为高位随机端口的情况。
netstat -antp | grep ESTABLISHED | grep -v "127.0.0.1"
如果发现某个Web服务进程(如 www-data 或 nginx)建立了到外部IP的连接,极有可能是反弹Shell。进一步使用 ps auxf 查看进程树,确认父进程是否为Web服务,子进程是否为 /bin/bash 或 /bin/sh。这种父子关系是反弹Shell的典型特征,因为Webshell通常会启动一个新的Shell进程来执行命令。
php免费学习视频:立即使用
踏上前端学习之旅,开启通往精通之路!从前端基础到项目实战,循序渐进,一步一个脚印,迈向巅峰!











