
核心要点(TL;DR)
网站突然被挂马、流量异常、服务器CPU飙升?很可能被上传了WebShell后门。作为运维或站长,你必须快速检测并清除,否则数据泄露、SEO降权甚至业务中断将接踵而至。本文提供一套实战导向的检测与清除流程,包含具体命令和检查清单,帮你立即动手解决问题。
一、WebShell是什么?为什么危害极大?
WebShell是一种以网页文件形式存在的恶意后门,通常用PHP、JSP、ASP等语言编写。攻击者通过上传漏洞将其植入服务器,之后便可远程执行命令、窃取数据、篡改页面。其危害包括:数据泄露、网站被控、成为跳板攻击内网。常见WebShell如中国菜刀、冰蝎、哥斯拉等,会伪装成正常文件,如logo.php、1.jpg。
二、手动排查:快速定位可疑文件
首先,检查最近修改的文件。在Linux服务器上,运行:
find /var/www -type f -mtime -7 -name "*.php" -ls列出7天内修改的PHP文件,重点关注上传目录、缓存目录。接着,搜索常见WebShell特征字符串:
grep -r --include=*.php -l "eval($_POST" /var/www
grep -r --include=*.php -l "assert($_REQUEST" /var/www此外,检查异常进程和网络连接:
ps aux | grep -i apache
netstat -antp | grep ESTABLISHED若发现www-data用户运行了/bin/bash等异常进程,或外连陌生IP,需警惕。
三、日志分析:追踪入侵入口
Web日志是找到攻击入口的关键。检查访问日志中的可疑请求:
grep -i "POST" /var/log/apache2/access.log | grep -i "upload"
grep -i "eval" /var/log/nginx/access.log关注上传目录的POST请求、异常User-Agent、以及包含base64、cmd等参数的URL。同时,检查系统日志/var/log/secure或/var/log/auth.log,看是否有异常登录。
四、工具查杀:提高效率与检出率
手动排查后,使用专业工具交叉扫描。推荐:
- 河马WebShell查杀:支持Linux/Windows,可扫描常见特征。
- D盾:Windows环境首选,能检测变形WebShell。
- ClamAV:开源杀毒,可集成到脚本。
- Yara:自定义规则,精准匹配。
以河马为例,下载后运行:
./hm scan /var/www根据报告删除恶意文件。注意:删除前备份,避免误删。
五、清除与加固:彻底根除后门
确认WebShell后,立即删除文件,并检查是否留有其他后门。然后,修复漏洞:更新CMS、修补上传漏洞、限制目录执行权限。例如,在Nginx中禁止上传目录执行PHP:
location ~* /uploads/.*\.php$ { deny all; }修改所有密码,包括数据库、SSH、后台。部署WAF如AegisX,可实时拦截WebShell上传和访问,并提供虚拟补丁。最后,恢复服务并监控。
六、检查清单与行动建议
应急响应检查清单:
- 隔离服务器(断网或只读)
- 备份数据
- 扫描并删除WebShell
- 分析日志找入口
- 修复漏洞
- 修改密码
- 部署WAF
- 恢复服务并监控
行动建议:立即按照上述步骤排查,若缺乏经验,可使用AegisX等自动化工具辅助检测与防护。定期安全扫描和最小权限原则是预防关键。
常见问题(FAQ)
如何快速判断网站是否被上传了WebShell?
快速判断可检查最近修改的文件、异常进程和网络连接。使用命令如find /var/www -mtime -7 -name '*.php'查找近期修改的PHP文件,或通过netstat查看异常外连。同时,检查Web日志中可疑的POST请求。若发现不明文件或连接,很可能存在WebShell。
有哪些好用的WebShell查杀工具?
常用工具包括D盾、河马WebShell查杀、ClamAV、Yara等。D盾适合Windows环境,河马支持多平台,ClamAV可集成到Linux。此外,可编写脚本结合grep搜索特征码。建议多工具交叉扫描,提高检出率。
清除WebShell后,如何防止再次被上传?
清除后需修复漏洞(如更新CMS、修补上传漏洞)、设置目录权限(上传目录禁止执行)、部署WAF(如AegisX)拦截恶意上传,并定期扫描。同时,修改所有密码,检查是否有其他后门。
WebShell通常隐藏在哪些目录?
常见于上传目录(如/uploads/)、缓存目录、图片目录,以及CMS的特定文件夹(如WordPress的wp-content/uploads)。攻击者也会将WebShell伪装成正常文件,如index.php、logo.jpg等,需仔细排查。
没有专业安全团队,如何应急处理WebShell?
可按照步骤:1) 隔离服务器(断网或只读);2) 备份数据;3) 使用工具扫描并删除可疑文件;4) 分析日志找入口;5) 修复漏洞;6) 恢复服务。若不确定,可寻求专业安全公司协助,或使用AegisX等自动化工具。