如何排查网站被挂马问题

联启 电脑工具 4

本文目录导读:

如何排查网站被挂马问题-第1张图片-电脑手机工具软件下载 - 免费实用工具合集 | 联启科技

  1. 第一阶段:快速诊断与应急响应
  2. 第二阶段:自动化工具扫描(快速定位)
  3. 第三阶段:手动深度排查(关键步骤)
  4. 第四阶段:根因分析(防再次被攻破)
  5. 第五阶段:清理与加固
  6. 总结建议工具与流程

排查网站被挂马问题需要系统性地进行,以下是一套标准的排查流程,结合了安全工具、日志分析和代码审计。

第一阶段:快速诊断与应急响应

在深入排查前,先确认网站是否真的被挂马,并防止进一步扩散。

  1. 现象确认

    • 用户侧:页面是否出现异常弹窗、跳转到赌博/色情网站、页面加载缓慢、被浏览器拦截为危险网站。
    • 搜索引擎侧:Google Search Console 或百度站长平台是否收到“网站被黑”通知,搜索结果中标题或描述被篡改(如显示博彩、药品广告)。
    • 服务器侧:CPU/内存使用率突然飙升(可能是挖矿脚本)、异常的网络连接(外连陌生IP)、出现未知文件。
  2. 立即行动

    • 隔离服务器:如果怀疑是严重挂马,立即将服务器从公网断开,或切换至只读模式(如果重要数据未备份),避免木马继续通过服务器发垃圾邮件或攻击其他系统。
    • 备份现场证据:使用 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检测功能,通常能直接报警。
  • 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 是否有陌生公钥。

第四阶段:根因分析(防再次被攻破)

清除木马只是第一步,如果不修复漏洞,隔天可能再次被挂马,需要分析攻击路径

  1. 查看Web访问日志

    • 日志位置:通常是 /var/log/httpd/access_log/var/log/nginx/access.log
    • 重点搜索:POST 请求、eval 参数、cmd 参数、 路径穿越、扫描器特征(如 X-Forwarded-For: unknown)。
    • 使用 grepGoAccess 等工具分析。
      # 查看最近被上传恶意文件的日志
      grep "shell.php\|cmd.php\|eval.php" /var/log/nginx/access.log | tail -100
  2. 常见攻击入口排查

    • 弱口令:SSH、FTP、MySQL、后台管理员(admin/admin123)、WordPress/ThinkPHP默认密码。
    • 文件上传漏洞:头像上传、图片上传功能是否做了严格的类型和内容检查。
    • SQL注入:后台接口是否有参数过滤。
    • 框架/插件漏洞:检查CMS(如WordPress、Discuz!)、框架(如ThinkPHP、Laravel)版本是否为安全版本,插件是否过期。
    • 命令执行漏洞:ThinkPHP 5.x、Fastjson、Log4j2 等历史漏洞是否被利用。

第五阶段:清理与加固

  1. 彻底清除

    • 删除工具标记的可疑文件。
    • 替换所有被篡改的文件(最好从官方原始包中提取并覆盖)。
    • 修改数据库中被污染的字段,并更新管理员密码。
    • 修改所有涉及的服务账号密码(SSH、FTP、数据库、CMS管理员)。
  2. 系统加固(防止复发)

    • 文件权限:网站目录设置为 755,文件 644,上传目录去掉执行权限(PHP禁用或设置 chmod -R 644 /upload)。
    • 禁用危险函数:在 php.inidisable_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 验证可疑文件是否为病毒

最后提醒:如果网站对公司业务至关重要,且自身技术能力不足(尤其是找不到攻击入口和隐藏后门),建议找专业安全公司做应急响应,或购买网站安全监测服务(如知道创宇、阿里云安全、长亭科技),误删系统文件可能会导致网站无法运行,操作前请确认文件确实是恶意文件。

标签: 挂马检测

抱歉,评论功能暂时关闭!