欢迎光临
我们一直在努力

网站莫名跳转博彩广告?全套劫持排查与根治指南

半夜接到站长夺命连环Call,说网站没宕机,但百度搜出来全是博彩广告,或者手机打开直接跳“澳门新葡京”,电脑端看着却正常。

新手遇到这事,第一反应往往是:赶紧把 index.html 删了,或者把首页代码里的跳转链接抠掉,然后重启 Nginx。
结果呢?第二天早上又跳了。

说句掏心窝子的话:只清代码不查根因,等于给黑客当免费保洁。 今天这篇复盘,纯一线排障视角,不扯虚头巴脑的理论,直接上命令,手把手教你把网站劫持连根拔起。


一、 先做劫持类型判定(核心难点)

遇到劫持,别急着登服务器,先搞清楚是哪种劫持。类型判错了,后面全白干。

1. DNS域名劫持

现象:不管你是电脑、手机,还是换个浏览器,只要访问这个域名,全跳恶意网站。甚至有时候连 ping 域名出来的 IP 都不是你服务器的 IP。
特征:全网通杀,或者特定运营商(比如只有联通用户跳,电信正常)。

2. 网站代码后门劫持

现象:电脑端访问正常,手机端跳;或者正常用户访问正常,百度蜘蛛(Baiduspider)访问就跳。
特征:服务器本地 curl localhost 看着正常,外网访问就触发跳转。黑客在代码里写了 UA(User-Agent)判断。

3. Nginx/Apache配置劫持

现象:全站跳,或者特定目录(比如 /news/)跳。清一下浏览器缓存,或者换个无痕模式,表现又不一样。
特征:代码里干干净净,但 Web 服务器配置文件(如 .htaccess、nginx.conf)里被加了 rewrite 或 return 301。


二、 第一时间应急止损(千万别乱动)

发现被劫持,禁止随意批量删文件!禁止直接重启服务! 你一动,现场就破坏了,黑客留下的痕迹全没了。

正确姿势:

  • 打快照:去云控制台,给系统盘和数据盘打个快照,留作证据和回滚底牌。
  • 断外网:在云安全组里,把 80 和 443 端口的入方向规则暂时删掉,或者改成只允许你本地的 IP 访问。业务先停,保住数据。
  • 留现场:把当前的 Nginx 配置、网站目录、日志目录,打包备份一份到本地。

  • 三、 Linux服务器全套排查命令

    直接上服务器,按下面这套命令挨个过。

    1. 定位最近被篡改的文件

    黑客改过文件,必定会留下修改时间。查最近 3 天内被修改过的文件:

    # 查找网站目录下最近3天修改过的文件,按时间倒序
    find /var/www/html -type f -mtime -3 -exec ls -lt {} + | head -n 50

    2. 筛查恶意跳转代码(核心)

    黑客最喜欢用 eval、base64_decode、document.write 和 <iframe>。直接全盘搜:

    # 忽略二进制文件,搜索常见后门和跳转特征
    grep -rnI -E 'eval\\(|base64_decode|document\\.write|<iframe|window\\.location|navigator\\.userAgent' /var/www/html

    注:如果搜出来一堆正常的 JS 库,可以加个 -v 排除掉,或者重点看那些文件名是一串随机字母的数字组合的文件。

    3. 核查首页及隐藏文件篡改

    有时候黑客不改 index.php,改的是 header.php 或者 footer.php,甚至藏在隐藏文件里。

    # 查找所有隐藏文件(黑客最爱把后门放在 .xxx.php)
    find /var/www/html -name ".*" -type f

    # 检查首页及公共头部文件是否被加了跳转
    head -n 20 /var/www/html/index.php
    head -n 20 /var/www/html/header.php

    4. 排查 .htaccess 伪静态劫持

    如果是 Apache 或者 Nginx 开启了伪静态支持,.htaccess 是重灾区。

    # 找出所有 .htaccess 文件并查看内容
    find /var/www/html -name ".htaccess" | xargs cat

    看到 RewriteRule .* http://恶意域名 [R=301,L] 这种,直接实锤。

    5. 排查 Nginx 恶意 Lua 脚本或配置

    有时候代码里没后门,是 Nginx 配置被改了。

    # 搜索 Nginx 配置目录里的恶意跳转和 Lua 脚本
    grep -rnI -E 'rewrite.*http|return 301|content_by_lua|access_by_lua' /etc/nginx/

    6. 网站日志溯源

    查日志,看黑客是怎么进来的,或者看哪些 IP 在疯狂访问。

    # 统计访问最多的前 20 个 IP,看有没有异常扫描 IP
    awk '{print $1}' /var/log/nginx/access.log | sort | uniq -c | sort -nr | head -n 20

    # 搜索特定恶意 UA 或者 POST 上传请求
    grep -i "POST.*upload" /var/log/nginx/access.log | tail -n 50

    7. 排查异常外联 IP

    看看服务器有没有被植入挖矿木马或者反弹 Shell,在往外连。

    # 查看当前所有 ESTABLISHED 状态的网络连接
    ss -antp | grep ESTABLISHED

    如果发现服务器在连一些奇怪的境外 IP,赶紧 kill 掉进程,并顺藤摸瓜找木马文件。


    四、 本地客户端排查(排除假劫持)

    有时候服务器根本没被黑,是你本地网络或者 DNS 被污染了。

  • 清理本地 DNS 缓存:
    打开 CMD,执行:ipconfig /flushdns

  • 判定路由/运营商劫持:
    把电脑连上手机热点,或者换个浏览器无痕模式访问。如果手机热点访问正常,WiFi 访问就跳,那就是你路由器被黑了,或者运营商 DNS 被劫持了。去路由器后台把 DNS 改成 223.5.5.5 或 119.29.29.29。

  • 五、 溯源分析:黑客到底从哪进来的?

    找到后门只是第一步,不知道入口,明天还会被挂。重点排查以下几个入口:

  • 弱口令/后台漏洞:查 Nginx 日志,看有没有针对 /wp-admin、/admin 的爆破记录。
  • 文件上传漏洞:搜日志里的 POST /upload.php,看有没有传 .php、.jsp 后缀的文件。
  • 第三方插件漏洞:如果是 WordPress、织梦等 CMS,去查一下最近爆出的插件漏洞,看看自己用的版本中没中招。
  • 域名解析被篡改:登录阿里云/腾讯云/Cloudflare,看域名解析记录里,有没有被加了一条 A 记录指向黑客 IP,或者 CNAME 被改了。
  • Nginx 配置被改:看 /etc/nginx/nginx.conf 的修改时间,如果是半夜被改了,说明服务器 SSH 密码泄露了。

  • 六、 分级修复方案

    1. 临时紧急恢复

    如果业务不能停,先做临时止血:

    • 在 Nginx 配置里,把恶意跳转的 rewrite 注释掉。
    • 把被篡改的首页文件,从备份里覆盖回去。
    • 重启 Nginx:nginx -t && systemctl reload nginx。

    2. 彻底清理后门

    • 把排查出来的恶意文件、.htaccess 里的恶意规则、Nginx 里的恶意配置,全部删掉或还原。
    • 如果后门太多删不干净,最稳妥的办法是:只保留图片/附件等静态资源,把 PHP/Java 代码全部用官方原版覆盖,然后重新导入数据库。

    3. 配置加固(防二次劫持)

    • 锁死目录权限:网站目录所有者改为 www,权限设为 755。chown -R www:www /var/www/html
      chmod -R 755 /var/www/html

    • 上传目录禁执行:在 Nginx 里配置,禁止附件目录执行 PHP。location ~* /wp-content/uploads/.*\\.php$ {
      deny all;
      }

    • 改密码:改掉服务器 SSH 密码、数据库密码、CMS 后台管理员密码。

    4. 域名解析锁死

    去域名解析控制台,开启 “域名解析锁定” 或 “修改需手机/邮箱二次验证”,防止黑客再次篡改 DNS。


    七、 总结:90%站长踩坑点

    最后盘点一下,处理了上百起劫持事件,发现大家最容易犯这几个致命错误:

  • 只改首页,不查隐藏脚本:黑客早就不改 index.html 了,都在 footer.php、header.php 或者公共 JS 里加跳转,你改首页有个屁用。
  • 忽略服务器配置劫持:代码查了三遍没问题,最后发现是 .htaccess 里被加了一行 301 跳转。
  • 不做溯源,反复中毒:找到后门直接删,不查是怎么进来的。结果黑客留了定时任务(Crontab)或者隐藏的后门脚本,第二天准时给你再挂一次。
  • 盲目重启服务:一着急直接 reboot 服务器,内存里的木马进程和临时文件全没了,线索全断。
  • 网站劫持排查,拼的就是细心和耐心。按这套流程走一遍,基本能把 99% 的劫持问题揪出来。


    干运维和安全,就是个不断填坑的过程。如果你也遇到过奇葩的劫持案例,或者在排查时卡壳了,欢迎在评论区留言交流。

    觉得这篇实战复盘有用的兄弟,麻烦点个赞、收藏一下,防走丢!你的支持是我继续输出硬核干货的最大动力,咱们下篇见!

    赞(0)
    未经允许不得转载:171主机测评 » 网站莫名跳转博彩广告?全套劫持排查与根治指南
    分享到: 更多 (0)

    评论 抢沙发

    • 昵称 (必填)
    • 邮箱 (必填)
    • 网址