文章总结: 这篇文章详细介绍了DNS劫持攻击的基本概念、工作原理和五种常见攻击类型(中间人攻击、本地DNS劫持、路由器DNS劫持、流氓DNS服务器劫持和DNS缓存投毒),并提供了实用的防御方法,包括手动修改DNS设置、检查路由器配置、扫描恶意软件和检查hosts文件等,帮助用户识别和应对DNS劫持威胁。
综合评分: 75
文章分类: WEB安全,网络安全,漏洞分析,威胁情报,应急响应
DNS劫持攻击及防御
原创
dcnb
Web安全基础与实践
2025年11月22日 19:01
广东
1、基本概念
DNS,即域名系统,是互联网的一项基础服务,主要通过将域名地址(例如www.Baidu.com)解析为IP地址,使用户可以方便地访问互联网。
因此,DNS劫持又称为域名劫持,主要指恶意攻击者利用某些攻击手段,篡改了某个域名的解析结果,导致原本指向的域名的IP地址被替换为另一个不可达的、假冒的亦或是包含恶意信息的网址,从而实现整蛊用户、非法窃取用户资料以及宣传非法业务等目的。
2、简化流程
多数人可能都遇见过,当你心心念念访问www.baidu.com时,浏览器却给你打开了一些内容不可描述的网页,你仔细检查了输入的域名,发现域名并没有出现错误,但是浏览器为什么会定向到未知的恶意网址呢?
正常情况的网址访问,一般来讲可简化为三步:客户端向域名服务器发送->域名服务器返回目标IP地址->客户端访问服务,如图1所示。
图1 正常的网址访问流程
以流氓DNS服务器劫持为例,劫持访问流程则主要简化为四步:客户端向域名服务器发送DNS查询请求->请求被恶意域名服务器劫持->恶意域名服务器返回恶意IP地址->客户端访问恶意服务,如图2所示。
图2 DNS请求被劫持时的网址访问流程
所以很明显,是访问网址的中间过程出现了DNS请求被劫持的现象,这也是为什么该类恶意攻击会被称为DNS劫持。
那么除了流氓DNS服务器劫持,还存在哪些DNS劫持方式?
3、常见攻击分类
DNS劫持的实施方式很多,流行的主要类型有本地DNS劫持、路由器DNS劫持、中间人(MITM)DNS劫持攻击和流氓DNS服务器等。
(1)中间人(MITM)DNS劫持
中间人攻击(Man-in-the-Middle Attack,简称MITM),是一种会话劫持攻击。攻击者作为中间人,劫持通信双方会话并操纵通信过程,而通信双方并不知情,从而达到窃取信息或冒充访问的目的。中间人攻击是一个统称,具体的攻击方式有很多种,例如Wi-Fi仿冒、邮件劫持、DNS欺骗、SSL劫持等。中间人攻击常用于窃取用户登录凭据、电子邮件和银行账户等个人信息,是对网银、网游、网上交易等在线系统极具破坏性的一种攻击方式。
所以,中间人DNS劫持是指——攻击者执行中间人(MITM)攻击以拦截用户和DNS服务器之间的通信并提供不同的目标IP地址,从而将用户重定向到恶意站点,简化流程如图3所示。
图3 中间人DNS劫持示意图
通过中间人劫持,用户和服务器的绝大多数通信都必须通过中间人进行,存在严重的信息泄露风险。
(2)本地DNS劫持
本地DNS劫持攻击 :在本地DNS劫持中,攻击者在用户系统上植入恶意软件并修改本地DNS设置,用户的系统现在使用由攻击者控制的DNS服务器。攻击者控制的DNS服务器将网站域请求转换为恶意站点的IP地址,从而将用户重定向到恶意站点。
本地DNS服务器劫持多发于未知来源的恶意软件或者其他资源的下载,导致电脑连同被植入了恶意脚本程序,干扰了正常的服务定向。
我们可以通过查看Windows本地DNS配置来确认本地的DNS是否受到攻击或者篡改,具体流程为:控制面板->网络和共享中心->以太网(或WLAN、EInternetx)->属性->Internet协议版本4。
打开控制面板,如图4所示。
图4 打开控制面板
点击“网络和共享中心”,如图5所示。
图5 网络和共享中心
点击“连接”后面的“EInternet0”,如图6所示。
图6 点击EInterne0
接着点击“属性”,如图7所示。
图7 打开属性
最后,在“此连接使用下列项目”中找到“Internet协议版本4”,如图8所示。
图8 Internet协议版本4示意
最后,打开可以看到电脑的DNS设置,如图9所示。
图9 电脑的DNS设置
如果没有手动设置过电脑的DNS,那么一般都默认为是自动的,此时如果电脑的DNS服务器获取改为手动获取,那么可能就已经被劫持了;如果自己已经手动设置过DNS,但是现在的DNS与之前设置的不一致,那么大概率就是被劫持了。
(3)路由器DNS劫持
路由器DNS劫持:攻击者利用路由器中存在的固件漏洞来覆盖DNS设置,而影响连接到该路由从器的所有用户。攻击者还可以通过利用路由器的默认密码来接管路由器。
我们可以通过查看WLAN的详细信息来确认本地的DNS是否受到攻击或者篡改,具体流程为控制面板->网络和共享中心->以太网(或WLAN)->详细信息->IPv4DNS服务器。
前三步如图4、5、6所示。
接着打开详细信息,如图10所示。
图10 打开网络详细信息
最后查看网络的DNS是否被更改,如图11所示。
图11 查看网络的DNS服务器设置
如果还不确认自己的路由器DNS是否被劫持,可以通过登录“192.168.1.1”等进入路由器管理界面,然后点击高级设置,查看DNS设置情况,如图12所示。
图12 查看路由器内部DNS设置
和本地DNS一样,如果没有手动设置过路由器的DNS,那么一般都默认为是自动的,此时如果路由器的DNS服务器获取改为手动获取,那么可能就已经被劫持了;如果自己已经手动设置过DNS,但是现在的DNS与之前设置的不一致,那么大概率就是路由器DNS被劫持了。
需要注意,不同型号的路由器的管理员页面的ip地址不同,DNS设置的位置也不尽相同,需要根据自己的路由器型号进行实际查找。
(4)流氓DNS服务器劫持
流氓DNS服务器劫持:流氓DNS服务器劫持指的是攻击者通过某种方式,将一个恶意的DNS服务器插入到用户的DNS解析路径中,使用户的DNS解析请求被恶意服务器拦截,导致用户定向到恶意网址的方式。具体流程如上述图2所示。
(5)DNS缓存投毒
DNS 缓存投毒也称为“DNS 欺骗”,是向 DNS 缓存中注入大量错误信息的行为,以使 DNS 查询返回错误响应并将用户定向到错误网站,简化流程如图13所示。
图13 DNS缓存投毒流程
4、简单应对方法
一般来讲,在实际场景中,想要确定到底是因为哪种情况导致的DNS劫持,即确认DNS劫持的具体类型是困难的,因此在实际处理时经常尝试多种解决方法。
(1)手动修改路由器和本地的DNS,常见的可靠公共服务器如表1所示。
表1 常见的公共DNS服务器及其服务商
| | |
| — | — |
| 公共DNS服务商 | DNS |
| 移动、联通和电信 | 114.114.114.114 |
| 谷歌 | 8.8.8.8 |
| 阿里巴巴 | 223.5.5.5 |
| 百度 | 180.76.76.76 |
在这几个里面,最常用的还是“114.114.114.114”和“8.8.8.8”,速度较快且安全性更高。
该种方法可以防范恶意DNS服务器劫持以及路由器劫持和本地DNS劫持等。
(2)检查路由器DNS设置,修改路由器的密码,必要时可以对路由器进行重置。
(3)检查电脑中是否存在恶意软件或者程序,尤其是检查最近下载的“.exe”文件和“.bat”文件,可以使用快速查找工具“everything”来进行简单快速的查找,“everything”无论是下载还是使用都非常便捷和简易,并完全免费。
首先Edge等浏览器搜索“everything”,点击网站进入下载界面,下载64位版本如图14所示。
图14 everything指引
安装过程较为简单,就直接略过。打开就得到这个界面,如图15所示。
图15 everything界面
随后输入.exe,就可以得到最近下载的.exe文件,再点击“修改时间”得到按获取时间排序的.exe文件,如图16所示。
图16 everything搜索结果
我们可以轻易地发现下载everything的“.exe”文件,以及其他含有“.exe”新增文件,这样我们能根据时间快速确认异常文件,解决源头。
(4)检查hosts文件是否被感染。
hosts文件是一个操作系统用来将主机名(域名)映射到 IP 地址的系统文件,它优先于 DNS 查询;常用于本地网络测试、屏蔽网站、开发调试,通常位于“C:\Windows\System32\drivers\etc\hosts”,如图17所示。
图17 hosts文件位置
与正常hosts文件内容进行配对,如图18所示。
图18 正常hosts文件内容
如果发现hosts文件内容不对,就要确定是否被感染,如果不确定是否被感染或者已确定被感染,就可以尝试修改hosts文件,不过需要注意,hosts文件需要用到管理员权限来修改,修改的内容直接复制上述图18的内容即可。
本文由刘战浩同学投稿。
- END –
免责声明:
本文所载程序、技术方法仅面向合法合规的安全研究与教学场景,旨在提升网络安全防护能力,具有明确的技术研究属性。
任何单位或个人未经授权,将本文内容用于攻击、破坏等非法用途的,由此引发的全部法律责任、民事赔偿及连带责任,均由行为人独立承担,本站不承担任何连带责任。
本站内容均为技术交流与知识分享目的发布,若存在版权侵权或其他异议,请通过邮件联系处理,具体联系方式可点击页面上方的联系我。
本文转载自:Web安全基础与实践 dcnb《DNS劫持攻击及防御》