首页 / 帮助文档 / 网站被劫持跳转到博彩的DNS排查

网站被劫持跳转到博彩的DNS排查

网站被劫持跳转到博彩网站,很多时候问题根源不在网站程序本身,也不在服务器漏洞,而是DNS解析环节被篡改。这种劫持方式隐蔽性极高,因为攻击者并没有入侵你的服务器,而是在你域名的解析路径上动了手脚。用户访问你的域名时,被指向了一个伪造的服务器,这个服务器再根据来访者特征决定是展示博彩页面还是反向代理回源站。站长自己打开网站一切正常,因为攻击者对管理者IP做了白名单处理,这正是这类劫持最让人头疼的地方。

劫持者如何篡改DNS解析

要理解排查思路,必须先搞清楚攻击者的操作手法。域名解析从根域名服务器到顶级域名服务器再到权威DNS服务器,中间任何一个环节被控制都会导致解析异常。最常见的情况有三种。第一种是域名注册商账号被盗,攻击者直接登录你的域名管理后台,把DNS服务器修改成他们控制的服务器。第二种是DNS服务商被攻击,攻击者通过漏洞批量修改了该平台下大量域名的解析记录。第三种是DNS缓存投毒,在递归DNS服务器上注入伪造的解析结果,让使用该递归DNS的用户被导向错误IP。国内还有一种特殊情况,部分地区的运营商DNS会主动对某些域名做劫持,但这种通常是广告跳转而非博彩。

第一步:确认劫持发生在DNS层面

在开始排查之前,必须确认问题确实是DNS劫持而不是网站代码被挂马。判断方法很直接,用多个不同网络环境访问你的网站。用手机4G流量访问,用家庭宽带访问,用公司专线访问,让不同城市的朋友帮忙测试。如果只有特定网络环境下出现跳转,DNS劫持的可能性就很大。如果所有网络环境都跳转,那大概率是网站代码被篡改。还有一个关键测试手段,直接通过IP地址访问网站,如果能正常打开且没有跳转,基本可以锁定是DNS问题。因为IP直连绕过了域名解析过程,攻击者无法在解析环节做手脚。

第二步:检查域名注册商后台

登录你的域名注册商管理平台,查看域名当前的DNS服务器设置。正常情况下这里应该指向你指定的DNS服务商,比如域名注册商默认的DNS、阿里云DNS、DNSPod等。如果发现DNS服务器被改成了陌生的地址,比如一些随机字母数字组合的域名,那账号密码很可能已经泄露。立即修改域名注册商账号的登录密码,同时检查账号绑定的邮箱和手机号是否被篡改。很多站长忽略了一个细节,域名注册商账号往往还设置了安全邮箱用于找回密码,攻击者如果拿到了安全邮箱的权限,即使你改了密码他也能再次找回。所以安全邮箱的密码也要一并修改,并开启两步验证。

第三步:排查DNS服务商的解析记录

如果域名注册商后台的DNS服务器设置没有被篡改,下一步就是检查DNS服务商那边的解析记录。登录你的DNS管理平台,逐条检查A记录、CNAME记录、NS记录。攻击者可能会偷偷添加一条泛解析记录,把除了www以外的所有子域名指向博彩服务器。也可能修改了现有A记录的IP地址,让域名解析到一个与源站IP不同的地址。特别注意检查那些平时不常用的子域名,攻击者喜欢在这些不起眼的地方做手脚。检查完毕后,即使没有发现异常,也建议把DNS服务商的账号密码修改一遍,并开启登录保护功能。

第四步:使用DNS诊断工具做全网检测

肉眼检查解析记录只能看到当前配置,无法发现缓存投毒或区域性劫持。这时候需要借助DNS诊断工具来检测域名在全球或全国范围内的解析情况。使用dig命令从不同公共DNS服务器查询你的域名解析结果,对比返回的IP地址是否一致。如果某个公共DNS返回的IP与其他DNS不同,且这个IP指向博彩服务器,说明该递归DNS的缓存被污染了。也可以用nslookup指定不同的DNS服务器进行测试。更全面的做法是使用在线DNS检测平台,这些平台会从全国多个节点发起解析请求,生成一份详细的解析报告,直观展示哪些地区的解析结果存在异常。

# 使用dig从指定DNS服务器查询
dig @114.114.114.114 yourdomain.com A
dig @223.5.5.5 yourdomain.com A
dig @119.29.29.29 yourdomain.com A

# 使用nslookup指定DNS服务器
nslookup yourdomain.com 114.114.114.114
nslookup yourdomain.com 223.5.5.5
第五步:检查本地hosts文件和路由器DNS

如果只有你自己或公司内部网络出现跳转,问题可能出在本地环境。检查电脑的hosts文件,Windows系统路径是C:\Windows\System32\drivers\etc\hosts,macOS和Linux是/etc/hosts。用记事本打开,查看是否有你的域名被指向了陌生IP。有些恶意软件会修改hosts文件来劫持特定网站。同时检查路由器的DNS设置,登录路由器管理后台,查看WAN口设置中的DNS服务器地址。如果被改成了不明来源的DNS服务器,比如一些来路不明的公共DNS,这些DNS本身可能就在做恶意劫持。把路由器DNS改回运营商自动获取或者使用知名的公共DNS,然后重启路由器。

第六步:排查CDN和反向代理配置

很多网站使用了CDN服务,域名的CNAME记录指向CDN厂商提供的加速域名。如果CDN账号被盗,攻击者可以在CDN后台修改源站设置,把源站IP改成博彩服务器。登录你的CDN管理平台,检查加速域名的源站配置是否正确。同时检查回源host设置,确保回源时携带的host头是你的域名,否则源站无法正确识别请求。如果你使用了反向代理服务,比如Nginx前端代理,也要检查代理配置是否被篡改。攻击者可能修改了proxy_pass的目标地址,把流量转发到了博彩服务器。

第七步:检查网站代码中的DNS劫持后门

有一种情况比较特殊,攻击者曾经入侵过你的服务器,在网站代码中植入了判断逻辑。代码检测到访问来源是搜索引擎爬虫或者特定referrer时,通过PHP或JavaScript进行跳转。这种不是DNS劫持,但表现和DNS劫持很像。排查方法是检查网站根目录下的.htaccess文件、index.php、index.html等入口文件,查看是否有可疑的跳转代码。同时检查JavaScript文件中是否被插入了恶意的重定向脚本。用grep命令搜索网站目录下所有包含“location.href”、“window.location”、“meta refresh”等跳转关键词的文件,逐一排查。

# 在网站目录下搜索可疑跳转代码
grep -r "location.href" /var/www/html/
grep -r "window.location" /var/www/html/
grep -r "meta.*refresh" /var/www/html/
grep -r "eval(" /var/www/html/
grep -r "base64_decode" /var/www/html/
第八步:使用HTTP响应头分析劫持特征

通过curl命令查看域名返回的HTTP响应头,对比直接通过IP访问源站返回的响应头。如果通过域名访问时,响应头中出现了不属于你服务器环境的字段,比如Server头显示的是nginx但你实际用的是Apache,或者出现了陌生的Set-Cookie、X-Cache等字段,说明中间经过了代理层。这个代理层很可能就是劫持者搭建的。同时检查返回的网页内容,查看源代码中是否有异常的iframe标签、script标签引用。有些劫持不会直接跳转,而是在页面中嵌入博彩广告,这种方式更加隐蔽。

# 查看HTTP响应头
curl -I https://yourdomain.com
curl -I http://yourserverip

# 查看完整响应内容并搜索可疑标签
curl https://yourdomain.com | grep -i "iframe"
curl https://yourdomain.com | grep -i "script.*src"
第九步:处理DNS缓存投毒问题

如果确认是DNS缓存投毒,需要从多个层面清除污染缓存。首先在DNS服务商后台刷新解析缓存,大多数DNS管理平台都提供了这个功能。然后联系你的DNS服务商,报告缓存投毒事件,他们有技术手段可以主动清除分布在各地的递归DNS缓存。对于用户侧,可以建议受影响的用户清除本地DNS缓存。Windows用户在命令行执行ipconfig /flushdns,macOS用户执行sudo dscacheutil -flushcache,Linux用户根据使用的发行版执行相应命令。同时建议用户在路由器上更换DNS服务器地址,避免继续使用被污染的递归DNS。

第十步:加固域名安全体系

问题解决后,必须采取预防措施防止再次被劫持。第一,为域名注册商账号和DNS服务商账号开启两步验证,这是最基本也是最有效的防护手段。第二,启用域名注册商提供的锁定功能,比如域名转移锁、域名更新锁,防止域名被恶意转移或修改。第三,使用支持DNSSEC的DNS服务商并开启DNSSEC签名。DNSSEC通过数字签名验证DNS解析结果的真实性,可以有效防止缓存投毒和中间人篡改。第四,定期检查域名的whois信息和DNS解析记录,建立监控机制,一旦发现异常变动立即收到告警通知。第五,选择安全可靠的DNS服务商,避免使用小众、安全防护能力弱的DNS平台。

劫持排查的优先级总结

整个排查过程应该按照从外到内的顺序进行。先查域名注册商后台的DNS服务器设置,这是最高层级,一旦被控制所有解析都会失效。再查DNS服务商的解析记录,这是直接产生解析结果的地方。然后通过全网DNS检测工具验证解析结果的一致性,发现区域性劫持。接着排查本地环境、CDN配置、网站代码等可能产生类似劫持效果的因素。最后通过HTTP响应头分析确认是否有中间代理层存在。每一步排查都要保留截图和日志记录,这些证据在后续向相关部门投诉或报警时非常关键。DNS劫持本质上是对域名解析链路的攻击,只要把解析链路上的每个环节都加固到位,攻击者就很难再有可乘之机。