官网被挂马或者被人改了首页,怎么发现和处理

一个做外贸的朋友,有天早上收到老客户的消息:你们官网怎么变成赌博网站了?他吓一跳,打开一看,首页确实被替换成了乱七八糟的内容,后台密码也登不进去了。

这不是个例。企业官网被黑,尤其是被挂上博彩、色情这类灰产链接,比想象中普遍。多数时候网站本身不值钱,值钱的是你的域名和多年积累的搜索排名,被黑一次,恢复要花好几天,排名还可能掉一大截。

一、先判断是不是真的被黑了

被黑不一定是首页被改得面目全非,症状有很多种:

  • 首页或者部分页面被插入陌生链接、弹窗
  • 用搜索引擎搜你的公司名,提示"该网站可能含有恶意内容"
  • 手机流量访问正常,电脑上访问跳转到别的网站(针对特定地区的攻击)
  • 网站突然变得特别慢,服务器 CPU 一直很高
  • 后台出现不认识的账号,或者密码明明没改却登不进去
  • 服务器上多出一些你没见过的文件,比如奇怪命名的 php、aspx 文件

只要中了一条,都按被黑处理,别抱着侥幸心理。先别急着删东西,保留现场很重要,后面排查要靠它。

二、先断网、再取证

发现被黑,第一件事是防止损失扩大。

如果网站还在提供下载、支付这类功能,先停掉,或者临时把网站下线,挂一个维护公告。然后给服务器做快照或者把重要文件备份下来,这些是后面追查和申诉的凭证。

千万不要一上来就格式化重装。不查清楚入侵途径,重装完过两周又会被黑第二次,这种案例太多了。

三、按这几个地方找问题

登录服务器,按下面这个顺序翻:

第一,看最近被修改的文件。Linux 上用 find /var/www -mtime -7 这种命令,找最近七天被动过的文件,正常运营的站,一周内不该有大面积文件变动。Windows 服务器就按修改时间排序翻网站目录。

第二,重点看入口文件。首页、配置文件、以及所有能执行代码的脚本文件,看里面有没有被插入加密的乱码代码,或者请求某个奇怪域名地址的语句。

第三,检查有没有后门文件。攻击者改完首页,一般会留一个后门方便下次进来,常见的是藏在图片目录里的脚本文件、名字伪装成正常文件(比如 1.php、xx.asp)的可执行文件。

第四,查后台和数据库。看后台管理员表里有没有多出来的账号,数据库里有没有被插入的异常内容。很多攻击是先用弱密码猜进你后台,再往内容里塞东西。

四、清理完,这几件事必须做

找到问题文件后:删掉被篡改的文件和后门,从干净备份里恢复正常文件;把管理员密码、FTP 密码、数据库密码、服务器密码全部改掉,别只改一个;给服务器和网站程序打上补丁,能升级的版本都升一下。

然后去搜索引擎申诉。百度搜索资源平台和 Google Search Console 里都有"站点被黑"的申诉入口,提交后等审核,审核期间搜索结果的危险提示会逐步解除。

最后通知相关的人:客户、员工、合作伙伴,如果有人下载过你网站上的文件,提醒他们注意安全。这一步容易漏,但真出事的时候很重要。

五、怎么防止第二次

  • 密码别用弱口令,后台、FTP、服务器分开设不同的强密码,能开两步验证的都开
  • 服务器只开放必要的端口,22 端口(远程登录)别用默认端口,改掉或者限制 IP
  • 网站文件和数据库定期备份,备份放到服务器之外的地方,云端对象存储或者另一台机器都行
  • 网站程序、插件、模板保持更新,漏洞大多数是旧版本没打补丁
  • 有条件就套一层云防火墙或者 WAF,攻击流量在到达网站前就被拦掉一部分
  • 服务器厂商的告警通知开着,异地登录、异常流量会第一时间发消息给你

网站安全这事,投入产出比最高的其实是最后一条:把备份做好、告警开好。真被黑的时候,一份干净备份能让你从"数据全没了"变成"损失几小时"。

如果你用的是模板市场的成品站,维护起来会更简单:文件结构清楚、没有冗余插件,出问题后按上面的流程重装一次、改掉所有密码,成本远低于定制站的清理费用。平时多花十分钟把基础防护配好,比出事以后熬几个通宵强。