本文目录导读:

排查网站被挂马问题需要系统性地进行,以下是一套标准的排查流程,结合了安全工具、日志分析和代码审计。
第一阶段:快速诊断与应急响应
在深入排查前,先确认网站是否真的被挂马,并防止进一步扩散。
-
现象确认:
- 用户侧:页面是否出现异常弹窗、跳转到赌博/色情网站、页面加载缓慢、被浏览器拦截为危险网站。
- 搜索引擎侧:Google Search Console 或百度站长平台是否收到“网站被黑”通知,搜索结果中标题或描述被篡改(如显示博彩、药品广告)。
- 服务器侧:CPU/内存使用率突然飙升(可能是挖矿脚本)、异常的网络连接(外连陌生IP)、出现未知文件。
-
立即行动:
- 隔离服务器:如果怀疑是严重挂马,立即将服务器从公网断开,或切换至只读模式(如果重要数据未备份),避免木马继续通过服务器发垃圾邮件或攻击其他系统。
- 备份现场证据:使用
tar打包网站目录(tar czf evidence.tar.gz /var/www/html),同时备份数据库(mysqldump -u root -p --all-databases > evidence.sql)。 - 通知相关人员:告知运维、开发、安全团队,暂停所有部署操作,避免覆盖可疑文件。
第二阶段:自动化工具扫描(快速定位)
使用专业工具进行初步扫描,能快速定位常见后门文件。
-
Linux 环境(推荐):
- 河马(SHELLPUB):国内常用的Webshell查杀工具,支持PHP/JSP/ASP。
wget http://www.shellpub.com/down/hm_x64_linux.tar.gz tar zxvf hm_x64_linux.tar.gz ./hm scan /var/www/html
- ClamAV:开源病毒扫描工具,可检测已知恶意软件。
yum install clamav -y freshclam # 更新病毒库 clamscan -r --remove /var/www/html
- 云安全服务:如果使用阿里云/腾讯云,开启云安全中心/主机安全的Webshell检测功能,通常能直接报警。
- 河马(SHELLPUB):国内常用的Webshell查杀工具,支持PHP/JSP/ASP。
-
Windows IIS 环境:
- 使用 D盾(D_Safe) 或 护卫神 的网站安全检测工具。
- 用 Windows Defender 或 火绒 扫描服务器全盘。
-
在线扫描:
- 将可疑文件上传至 Virustotal(www.virustotal.com),查看多个引擎的检测结果。
第三阶段:手动深度排查(关键步骤)
工具可能漏报,手动检查是必不可少的。
检查文件完整性(Find命令)
查找最近被修改过的文件,这是最直接的线索。
# 查找最近7天内修改过的PHP/JSP/ASP文件
find /var/www/html -name "*.php" -mtime -7 -type f -exec ls -la {} \;
# 查找隐藏文件
find /var/www/html -name ".*" -type f
# 查找可疑的权限异常文件(如777权限的PHP文件)
find /var/www/html -name "*.php" -perm 0777 -type f
分析代码可疑特征(Grep命令)
挂马文件通常包含编码执行的函数。
# 搜索常见的恶意函数
grep -r "eval(" /var/www/html --include="*.php"
grep -r "base64_decode(" /var/www/html --include="*.php"
grep -r "preg_replace.*/e" /var/www/html --include="*.php" # PHP5的代码执行漏洞
grep -r "assert(" /var/www/html --include="*.php" # PHP7以下常见
grep -r "system(" /var/www/html --include="*.php"
grep -r "shell_exec(" /var/www/html --include="*.php"
grep -r "file_put_contents.*base64" /var/www/html --include="*.php" # 写入编码后文件
# 检查 .htaccess 和 nginx.conf 是否被篡改(用于重定向)
cat /var/www/html/.htaccess
nginx -t # 检查nginx配置(如果有)
检查数据库
挂马脚本可能将恶意内容写入数据库字段。
-- 在数据库中搜索可疑内容(如 iframe, script 标签) SELECT * FROM your_table_name WHERE content LIKE '%<script>%' OR content LIKE '%<iframe>%'; -- 检查管理员账号是否被新增或权限提升 SELECT id, user_login, user_pass, user_email FROM wp_users; -- WordPress示例
排查系统级后门
- 检查定时任务(Crontab):木马常通过定时任务维持权限或定期下载新木马。
crontab -l cat /etc/crontab ls -la /etc/cron.d/ cat /var/spool/cron/*
- 检查进程与网络连接:查找异常进程。
ps aux | grep -i "sh\|bash\|perl\|python\|wget\|curl" netstat -anp | grep "ESTABLISHED" | grep -v "127.0.0.1" # 查看对外连接 lsof -i :80 # 查看哪个进程占用80端口
- 检查启动项:
systemctl list-units --type=service | grep enabled或查看/etc/rc.local。 - 检查SSH密钥:查看
~/.ssh/authorized_keys是否有陌生公钥。
第四阶段:根因分析(防再次被攻破)
清除木马只是第一步,如果不修复漏洞,隔天可能再次被挂马,需要分析攻击路径。
-
查看Web访问日志:
- 日志位置:通常是
/var/log/httpd/access_log或/var/log/nginx/access.log。 - 重点搜索:
POST请求、eval参数、cmd参数、 路径穿越、扫描器特征(如X-Forwarded-For: unknown)。 - 使用
grep或GoAccess等工具分析。# 查看最近被上传恶意文件的日志 grep "shell.php\|cmd.php\|eval.php" /var/log/nginx/access.log | tail -100
- 日志位置:通常是
-
常见攻击入口排查:
- 弱口令:SSH、FTP、MySQL、后台管理员(admin/admin123)、WordPress/ThinkPHP默认密码。
- 文件上传漏洞:头像上传、图片上传功能是否做了严格的类型和内容检查。
- SQL注入:后台接口是否有参数过滤。
- 框架/插件漏洞:检查CMS(如WordPress、Discuz!)、框架(如ThinkPHP、Laravel)版本是否为安全版本,插件是否过期。
- 命令执行漏洞:ThinkPHP 5.x、Fastjson、Log4j2 等历史漏洞是否被利用。
第五阶段:清理与加固
-
彻底清除:
- 删除工具标记的可疑文件。
- 替换所有被篡改的文件(最好从官方原始包中提取并覆盖)。
- 修改数据库中被污染的字段,并更新管理员密码。
- 修改所有涉及的服务账号密码(SSH、FTP、数据库、CMS管理员)。
-
系统加固(防止复发):
- 文件权限:网站目录设置为
755,文件644,上传目录去掉执行权限(PHP禁用或设置chmod -R 644 /upload)。 - 禁用危险函数:在
php.ini的disable_functions中加入eval, system, exec, shell_exec, passthru, assert, popen, proc_open。 - 配置WAF(Web应用防火墙):推荐开启云WAF(阿里云WAF、Cloudflare),或使用ModSecurity(开源WAF)。
- 启用日志审计:开启详细的访问日志和错误日志,保存至少180天。
- 最小化原则:服务器只开必要的端口(如80、443、22(限制IP或密钥登录)),不安装多余的服务。
- 文件权限:网站目录设置为
总结建议工具与流程
| 阶段 | 工具/命令 | 作用 |
|---|---|---|
| 快速扫描 | 河马/ClamAV/D盾 | 自动查杀Webshell |
| 文件排查 | find / grep | 查找最近修改、隐藏、可疑内容的文件 |
| 进程排查 | ps / netstat / lsof | 查找异常进程和外连IP |
| 定时任务 | crontab -l / cat /etc/crontab | 查找恶意任务 |
| 日志分析 | grep / GoAccess | 定位攻击源和攻击手法 |
| 在线检测 | VirusTotal | 验证可疑文件是否为病毒 |
最后提醒:如果网站对公司业务至关重要,且自身技术能力不足(尤其是找不到攻击入口和隐藏后门),建议找专业安全公司做应急响应,或购买网站安全监测服务(如知道创宇、阿里云安全、长亭科技),误删系统文件可能会导致网站无法运行,操作前请确认文件确实是恶意文件。
标签: 挂马检测
版权声明:除非特别标注,否则均为本站原创文章,转载时请以链接形式注明文章出处。