凌晨三点,域名我正盯着刚上线的被劫活动页面做最后检查,浏览器突然弹出“无法访问此网站”。持何处理刷新三次,域名DNS_PROBE_FINISHED_NXDOMAIN。被劫后台登录框也进不去了。持何处理那一刻我就知道——域名被劫持了,域名不是被劫服务器故障。
劫持分两种。持何处理一种是域名DNS解析被篡改,用户访问你的被劫域名时被指向钓鱼站或赌博页;另一种是域名注册商账户被盗,直接转移了域名所有权。持何处理前者还能抢救,域名后者基本要打官司。被劫我遇到的持何处理显然是前者,因为WHOIS信息没变,但解析记录全部指向了某个俄罗斯IP。
处理的第一步永远是冷静确认,别慌着改配置。先打开命令行,输入nslookup yourdomain.com,看返回的IP是不是你服务器真实地址。再查whois确认域名状态没有变成“clientTransferProhibited”被移除——如果被移除了,说明攻击者正在尝试转移域名,得立刻联系注册商锁死。
确认是DNS劫持后,马上登录你的DNS管理面板。注意,别用书签里的地址,直接手动输入域名服务商的官网。我那次就是书签被改了,登录进去半天没发现问题,后来才发现面板显示的解析记录全不是我设的。真正的劫持往往连面板都给你“调包”了,显示的是假数据,实际生效的是另一套记录。
这时候该做的不是删记录,而是全量导出当前解析,截图留存证据,再逐条改成你之前备份的正确记录。没有备份?那就惨了,得靠回忆和第三方DNS历史查询工具(比如SecurityTrails)找回原记录。我习惯每三个月导出一份DNS记录存本地,这习惯救过我两次。
改完解析记录,别急着走。TTL(缓存时间)是个坑。如果你原来的TTL设置成86400秒(24小时),全球用户刷新DNS缓存需要一天才能看到新解析。所以平时就把TTL调成300秒,遇到事故时改成60秒,等恢复后再调回去。这个细节很多人忽略,导致劫持解除后网站“半死不活”好几天——部分用户还在访问攻击者的服务器。
接下来是清除本地影响。如果你自己电脑上还访问不了,清一下DNS缓存:Windows用ipconfig /flushdns,Mac用sudo killall -HUP mDNSResponder。但别只清自己这一台,攻击者可能在你路由器上动了手脚。重启路由器,或者登录路由器后台检查DNS设置是否被改成8.8.8.8之外的恶意地址。
至于根因,多半是域名注册邮箱泄露。攻击者通过找回密码功能重置了你的DNS管理权限。所以处理完解析后,立刻改注册邮箱密码,开启两步验证,同时检查邮箱转发规则——有没有把邮件自动转发到陌生地址。我见过最阴的劫持,就是先攻破邮箱,静默设置转发,再慢慢等你的DNS密码重置邮件。
最后补一刀:去Google Safe Browsing和腾讯安全检测提交你的域名,确认没有被打上“危险网站”标签。劫持期间如果被用来发垃圾邮件,域名信誉会受损,影响后续邮件投递。处理完所有步骤,记得写个复盘文档,把攻击时间、手法、恢复过程记下来。下次再遇到,你能比这次快一半时间解决。
域名这东西,看着是虚拟资产,实际跟房子钥匙一样。丢了钥匙不可怕,可怕的是你不知道锁已经被换了。