
核心要点(TL;DR)
痛点引入:网站被挂马,如何快速止血?
网站被挂马后,搜索引擎标红、用户数据泄露、业务中断,每一分钟都在造成损失。作为运维或站长,你需要立即行动,但面对海量文件往往无从下手。本文提供一条高效的 find 命令,结合特征匹配,帮你快速定位网页木马,并给出从隔离到清除的完整操作步骤,让你在应急响应中有的放矢。
原理与危害:网页木马如何潜伏
网页木马(Webshell)通常是一段恶意脚本,攻击者通过漏洞上传后,可远程执行命令、窃取数据。常见特征包括使用 eval、base64_decode、assert 等函数,或隐藏在图片、缓存文件中。木马文件往往修改时间较新,且权限异常。不及时清除,会导致服务器被控、数据被删、成为跳板攻击他人。
一条命令定位可疑文件
核心思路:结合文件修改时间和恶意特征进行扫描。以下命令在网站根目录执行,列出最近7天修改且包含常见危险函数的 PHP 文件:
find /var/www/html -type f -mtime -7 \( -name "*.php" -o -name "*.js" \) -exec grep -l -E "eval\(|base64_decode\(|assert\(|system\(|passthru\(" {} \;如果网站文件较多,可缩小范围到上传目录或缓存目录。此外,检查隐藏文件:
find /var/www/html -name ".*" -type f分步排查与清除操作
步骤1:备份与隔离
立即备份网站和数据库,将可疑文件移动到隔离目录(如 /tmp/quarantine),不要直接删除,以便后续分析。
mkdir -p /tmp/quarantine
find /var/www/html -type f -mtime -7 -exec grep -l -E "eval\(|base64_decode\(" {} \; -exec mv {} /tmp/quarantine/ \;步骤2:分析日志与确认
查看 Web 访问日志,寻找可疑 POST 请求或异常 User-Agent。使用命令:
grep -i "eval\|base64" /var/log/nginx/access.log确认木马文件后,检查是否有多处后门,尤其注意 .htaccess 和 index.php 文件尾部。
步骤3:清除与修复
从备份恢复被修改的文件,或手动删除恶意代码。更新 CMS 和插件到最新版本,修补已知漏洞。修改所有相关密码(数据库、FTP、后台)。
步骤4:加固与监控
设置目录权限:上传目录禁止执行脚本。在 Nginx 中添加:
location ~* /uploads/.*\.(php|php5)$ { deny all; }部署文件完整性监控,如 AegisX 可实时告警文件变更,并拦截常见 Web 攻击,防止再次入侵。
检查清单与对比
| 检查项 | 操作命令/方法 | 预期结果 |
|---|---|---|
| 近期修改文件 | find -mtime -7 | 列出可疑文件 |
| 危险函数 | grep -E "eval|base64" | 定位恶意代码 |
| 隐藏文件 | find -name ".*" | 发现隐蔽后门 |
| 日志异常 | grep 可疑请求 | 确认攻击入口 |
| 权限配置 | ls -l 检查权限 | 修复过度权限 |
行动建议
立即执行上述命令扫描,隔离可疑文件,并按照步骤清除。事后务必修复漏洞,部署 AegisX 等安全工具进行持续监控,将应急转化为常态化防护。定期备份和更新,让网站远离挂马威胁。
常见问题(FAQ)
网站被挂马后,如何快速找到木马文件?
使用 find 命令结合时间与特征扫描。例如:find /var/www -type f -mtime -7 -name '*.php' -exec grep -l 'eval(' {} \; 可列出近期修改且包含 eval 的文件。再结合 grep 搜索常见木马特征如 base64_decode、assert、system 等,快速缩小范围。
清除网页木马时需要注意什么?
清除前务必先备份整个网站和数据库,并将可疑文件移动到隔离目录而非直接删除,以便后续分析。同时检查是否有多个后门,避免遗漏。清除后立即修改所有密码并更新程序补丁,防止再次入侵。
如何防止网站再次被挂马?
定期更新 CMS 和插件,禁用危险函数,设置目录权限最小化,上传目录禁止执行脚本。部署文件完整性监控(如 AegisX)实时告警异常修改,并配置 WAF 拦截常见攻击。
网页木马常见的隐藏位置有哪些?
常见于上传目录(如 uploads)、缓存目录、主题模板文件、index.php 尾部、图片文件(图片马)以及 .htaccess 文件。攻击者常将木马伪装成正常文件或插入正常代码中,需仔细排查。
没有专业安全工具,如何手动查杀网页木马?
可通过命令行工具组合排查:使用 find 按时间过滤,grep 搜索特征字符串,diff 对比原始文件。重点检查近期修改的文件和异常权限文件,并查看访问日志寻找可疑请求。