今天明月收到了一个新手站长的求助,其 80 端口被滥用,造成主域名被人全站镜像仿冒。具体表现为:主域名是 www.mydomain.net 但一个叫www.xxssxx.com 的域名内容完全一致,点击内容链接又都跳转到www.mydomain.net 对应链接,这样长期下去www.mydomain.net 的首页权重应该是会被 www.xxssxx.com 给“偷走”了,至少国内主流搜索引擎是必然的,谷歌还没有听说有这个漏洞。
登录这位站长的宝塔面板,修改主域名 www.mydomain.net 这个 WordPress 站点的数据库密码,www.xxssxx.com 竟然实时同步了新密码!Nginx 配置文件里禁止非绑定域名请求毫无效果!基本判断对方域名是解析到了 www.mydomain.net 服务器的真实 IP 上了,并且拥有了 www.mydomain.net 服务器上的数据库完整权限或者站点目录权限(主要是wp-config.php文件),初步判断应该是服务器真实 IP 地址泄露和木马植入。
备份网站数据后重置服务器系统、重装宝塔面板,www.xxssxx.com 出现 404 请求失败,但带上 http 前缀后以“不安全方式”访问依旧显示为镜像 www.mydomain.net 的结果,只是浏览器地址栏会提示安全警告。开启www.mydomain.net 的“强制 HTTPS”,并封禁 80 端口 TCP 请求,www.xxssxx.com 出现 80 端口超时的错误,清除浏览器缓存后,访问 http 和 https 的www.xxssxx.com 均返回错误,控制台终端 curl 请求 443 端口和 80 端口均返回“Connection timed out”超时错误。
至此完美解决。
分析总结一下,应该是 Linux 服务器遭到恶意代码或者木马的入侵、植入获得服务器真实 IP 并拥有了网站目录的控制权限,因为 www.mydomain.net 没有开启“强制 HTTPS”造成 80 端口被利用,让 DNS 以www.xxssxx.com 域名 A 解析到服务器,再通过wp-config.php文件获得数据库账号密码形成一个不同域名的内容镜像站点以达到黑帽 SEO 手法的目的。
这种恶意镜像一般很难第一时间被发现,只有搜索引擎收录镜像域名并已经形成搜索关键词权重后才会被发现,理论上来说对 SEO 的影响应该是很大的,严重的不排除被 K 站的可能。要降低这种安全隐患带来的危害,明月建议至少要做到如下几点:
- 1、给网站套个带有 WAF 的免费 CDN (最好是有公开 CDN 节点 IP 地址库的)隐藏服务器真实 IP,另外还可以在服务器防火墙上对回源请求 IP 进行筛选甄别。
- 2、借助 CDN 的 WAF 对服务器形成一种外在的保护,降低被漏洞扫描、恶意代码植入的风险。
- 3、站点启用 SSL 并要开启“强制 HTTPS”,然后彻底封禁 80 端口(http)的外部请求,仅开放 443 端口(https)的回源请求。
- 4、加强 Linux 服务器的安全防护能力,修改 SSH 端口(不要用默认 22 端口),不上传和使用、运行来历不明的代码和插件、主题等。
只能说现在的恶意代码、木马/后门等也是在不断的迭代更新中,不要过于相信那些所谓扫描排查工具,这类工具永远都是后知后觉。做好重要数据的备份(建议以天为单位备份,有条件就云备份),发现服务器异常可以及时的采取措施应对,服务器端注意危险端口做到即用即开,不用即关,非必须的 PHP 扩展不要安装开启,内部使用的扩展切记禁止对应端口的外部请求。
最后给小白站长的建议就是一定要有一个老手/高手能给你及时的技术支持,能够大大的降低风险和危害。网站、服务器的安全形势这几年是越来越严峻,那种“小站点人家看不上”的心态就不要有了,但凡一个拥有计算能力的服务器都是有其利用价值的。
本文算是一篇仓促完成的随手笔记,不尽之处还请见谅,又来了一个被 DDoS 攻击的业务订单,所以没有时间仔细审稿校对。本文提到的域名均为示例域名,仅做说明故障用,跟多详情可以扫码加微信好友咨询了解。