查看原文
其他

第35篇:某区宽带用户路由器DNS被篡改事件分析(DNS重绑定攻击)

abc123info ABC123安全研究实验室 2023-02-12

 Part1 前言 

攻击事件描述如下:当时有几个区的部分用户访问一些网站会跳出菠菜、色情页面,最后工作人员发现这些用户的家用路由器DNS都被篡改了,这些DNS统计下来有几十个,部分DNS服务器被威胁情报标记为恶意ip,然后部分路由器密码也被重置。将路由器恢复出厂设置之后,一切恢复正常,但是发现过几天DNS又会被篡改,最后客户通过屏蔽恶意DNS服务器ip地址,解决了这一次攻击事件

这个事件过去很多年了,攻击者是如何将内网用户的网络设备的DNS改掉的,到现在也没有定论。这几年自己补充了不少基础知识,同时与一个研究路由器固件漏洞的小伙讨论,对以前的资料进行整理分析,最终得出的结论应该就是“DNS重绑定攻击”造成的。


 Part2 部分观点研判 

首先简单对当时的一些观点进行简要分析:

 1  tp-link开启了远程访问功能,存在弱口令。这个不太可能,几乎所有用户家里的路由器买了之后就不会动,没有造成大量用户中招的可能性。

 2   使用tp-link的CSRF修改DNS配置漏洞。这个可能性是有,但是tplink这个版本是没有默认密码的,但是不排除普通家庭宽带用户都会把默认密码改为123456等等简单密码,给攻击者带来便利。

 3   路由器远程代码执行。这个之前我认为可能性不大,现在认为可能性也是有的。现在的安全研究技术总是在进步,挖掘一个路由器的栈溢出漏洞,已经不像10几年前难度那么大了,而且能够稳定利用。

 4   DNS重绑定攻击。前面几种观点,都不能圆满解释攻击者是如何从外网打内网设备的,DNS重绑定攻击是一种可能的手段,接下来看具体分析过程。


 Part3 前置基础知识 

  • DNS重绑定攻击介绍

DNS重绑定攻击过程如下:攻击者事先构造好一个网站,想办法以各种形式让用户访问到。当受害者点开一个不明链接地址后,用户就会中招,这个链接地址的网页在用户不知情情况下,绕过浏览器同源限制,以网页中的js代码发起几个http请求,对用户所在内网的设备如TP-Link路由器、物联网设备等发起攻击。由此可见DNS重绑定攻击是可以从外网直接对内网设备进行攻击的


  • 浏览器同源策略

同源策略SOP指的是“协议+域名+端口”三者相同,现在主流的浏览器都会使用这个策略。但是同源策略是“协议+域名+端口”,但不是“协议+ip地址+端口”,这就给攻击者可乘之机。

  • DNS记录的TTL时间

当各地的DNS服务器接受到解析请求时,就会向域名指定的授权DNS服务器发出解析请求从而获得解析记录,这个记录在DNS服务器上保留的时间,就是TTL值。这里需要指出的一点,谷歌chrome浏览器自己也有一个TTL时间,即使你的DNS服务器TTL设置为0,那么谷歌也会在一分钟之后才不用用缓存。


 Part4 DNS重绑定攻击过程 

为了很好地解释宽带用户内网的家用路由器,在不通外网的情况下,如何被攻击者篡改路由器的DNS记录的,我画了一个比较直观的示意图,方便大家理解“DNS重绑定攻击”。


  • DNS重绑定攻击示意图

攻击者首先需要能控制DNS解析记录,可以使自己搭建的DNS服务器,自己是域名拥有者。在用户第一次访问www.hacker.com时,DNS返回域名解析记录为攻击者的恶意服务器111.222.333.111,后续访问都解析到192.168.1.1。这样当受害者访问攻击者的页面(http://www.hacker.com)的时候,会从攻击者的服务器上拉取JS攻击代码,后面的对www.hacker.com域名的请求,会指向本地192.168.1.1。虽然DNS解析指向的服务器变了,但是域名没变,浏览器仍然遵循同源策略,这样就可以对内网的路由器进行攻击了。


  • 新手的疑问

这里新手朋友可能会有一个疑问,为啥要绕这么大一个弯子?直接写一个网页放www.hacker.com域名上,用js写一段代码直接对内网设备发起http请求http://192.168.1.1/login.html?exp=xxx进行攻击呢?


我们构造一个网页,用浏览器访问一下看看结果,发现是不行的,被浏览器同源策略给阻拦了,不允许跨域。


至此DNS重绑定攻击就讲完了,当时的日志记录没有留存,没法找到关键证据,所以对于这次攻击事件,上述只是我个人的猜测,不一定是最终的准确答案。大家有什么见解,可以在公众号后台给我留言。这里还引出一个问题,攻击者有哪些手段可以控制DNS服务器的解析记录呢?请关注本公众号,后续会写文章专门讲解。


 Part5 修复方案及总结 

1.  内网设备都要开启CSRF策略。

2.  内网的网络设备需要对http请求的host头进行校验,查看是否是合法请求。

3.  对http请求头进行referer校验。

4.  升级网络设备到最新版本,及时更新补丁,并且杜绝网络设备弱口令现象。

5.  内网网络设备可以尽量使用HTTPS而不是HTTP,发生DNS重绑定攻击时,会无效的SSL证书,安全警告将阻止你的请求。

6.  过滤DNS响应中的私有IP范围等可疑IP地址。


专注于网络安全技术分享,包括红队攻防、蓝队分析、渗透测试、代码审计等

每周一篇,99%原创,敬请关注

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存