1、DNS概述
关于DNS的定义,作用,分类以及工作原理,博主已在【Windows Server 2019】DNS服务器的配置与管理——理论】这篇博客中陈述过。
要预防DNS劫持,必须了解它的攻击原理和过程
声明
本博客不是在向大家展示这些攻击的方法,而是让大家尽可能的了解DNS攻击的手段以及如何采取必要的预防措施,来确保更安全地上网。
2、DSN劫持(DNS Hijacking)概述
2.1.什么是DNS劫持
DNS劫持全称为域名服务器劫持,又称DNS重定向(DNS redirection)。它是一种DNS攻击手段,用户主机的DNS查询被错误解析,攻击者将用户的访问重定义到恶意网站中,以此来获取一些重要私人信息。
攻击者实施攻击时,要么在用户电脑上安装恶意软件,要么接管路由器,要么拦截或侵入DNS通信系统。
2.2.DNS劫持攻击类型
DNS劫持有四种基本类型
- 本地DNS劫持(Local DNS hijack)——攻击者通过在用户计算机上安装特洛伊木马,然后更改本地DNS设置,将用户重定向到恶意站点中。
- 路由器DNS劫持(Router DNS hijack)——许多路由器具有默认密码或固件漏洞。攻击者可以通过这些漏洞接管路由器并修改覆盖原来的DNS设置,从而影响连接到该路由器的所有用户
- 中间人DNS攻击(Man in the middle DNS attacks )——攻击者拦截用户与DNS服务器之间的通信,并提供指向恶意站点的IP地址。
- 恶意DNS服务器(Rogue DNS Server )——攻击者入侵DNS服务器,更改DNS记录,使其将DNS请求重定向到恶意站点
2.3.DNS劫持的作用
(1)好的方面
-
ISP(互联网供应商)使用DNS重定向来接管用户的DNS请求,收集信息的同时在用户访问未知域时会返回广告。
-
一些国家会使用DNS重定向进行网络信息审查,将用户重定向到政府授权的站点。
(2)坏的方面
-
域诈骗(pharming)
pharming攻击是将用户的流量重定向到模拟合法网站外观的伪造网站中,目的是为了窃取账户,密码和其他个人信息等。
-
网络钓鱼(phishing)
网络钓鱼是黑客常使用的一种技术,通过发送电子邮件/文本,语音消息或传真等来获取用户的个人信息,黑客在看似合法的电子邮件中添加了恶意链接或附件,诱惑用户去点击,从而获取信息访问权限。
3、DNS劫持——Pharming攻击的实现
案例 1 ——本地DNS劫持
3.1.拓扑说明
(1)正常情况下,用户访问facebook
正常情况下,用户使用浏览器打开脸书登录,然后DNS服务器通过A记录访问脸书的服务器,返回合法登录网页。
(2)hacker发动DNS劫持时,用户访问facebook
当攻击者进行DNS劫持时,修改了用户电脑上的DNS服务器IP地址,将用户的流量重定向到攻击者自己的服务器中,用户在不知情的情况下,在恶意网站中输入了账户和密码,数据流量被转发到攻击者电脑中,从而用户私人信息泄露。
3.2.实验环境
主机 | 系统 | IP地址 |
---|---|---|
攻击者 | Kali-Linux | 192.168.83.11 |
PC2 | Windows 10 | 192.168.83.39 |
攻击者和普通用户在同一局域网中,两者的IP均是通过DHCP服务器获得。
3.3.具体步骤
3.3.1.前提
用户PC2中的浏览器中没有任何缓存(清空浏览器缓存)
普通用户的电脑上的DNS服务器IP地址在未被修改时,使用nslookup命令查看默认DNS服务器
(1)DNS未修改前
在局域网内,普通用户电脑已经被入侵者修改了DNS设置,设置的IP为入侵者的主机IP:192.168.83.11
(2)DNS被恶意修改后
3.3.2.劫持DNS
(1)劫持facebook.com域名
使用的工具是dnschef,该工具的使用方法具体请看《【KALI】DNS解析工具——Dnschef参数(中英对照)》这篇博文。打开kali终端,输入
┌──(kali㉿kali)-[~]
└─$ sudo dnschef --fakeip=192.168.83.11 --fakedomains=facebo0k.com,facebook.com --interface=0.0.0.0
(2)检测DNS是否劫持成功
通过截图可以看到,DNS劫持成功。原来www.facebook.com的IP地址为31.13.82.36,现在却是192.168.83.11(入侵者IP),显然DNS劫持成功。
(3)伪造facebook登录网站
使用 setoolkit 工具对脸书登录网页进行克隆。在终端中输入:
┌──(kali㉿kali)-[~/Desktop]
└─$ sudo setoolkit
进入setoolkit菜单界面,在set>
后输入1,即选择Social-Engineering Attacks。然后按回车
接着输入2,即选择Website Attack Vectors。然后按回车
进入站点攻击菜单后,输入3,即Credential Harvester Attack Method。然后按回车
最后输入2,即Site Cloner。按回车
选择IP地址,默认为193.168.83.11,默认选择即可,按回车。
在红框处输入要克隆的网站域名,这里是https://www.facebook.com,按回车
当终端中显示蓝色字幕时,说明克隆站点成功。
(4)验证伪造站点成功
使用setoolkit克隆的网站,会使用本地80号端口,因此只需要打开本地浏览器输入localhost或127.0.0.1或192.168.83.11,出现脸书登录站点说明克隆成功。
查看setoolkit命令终端,发现命令行中返回了一些参数,如下图所示
(5)在PC2中访问facebook网站
如果在PC2的浏览器中直接输入www.facebook.com,会显示连接失败。同时facebook会强制将http转成https,这样就无法访问facebook。因为这个原因,所以我们在使用dnschef命令时,设置了一个不存在的域名:facebo0k.com。
当PC2用户通过邮件收到伪造的facebook信件后,在不知情的情况下点击了www.facebo0k.com,浏览器会打开下图所示的网站。
网站内容和facebook登录界面完全一样,但是在URL栏我们可以看到火狐浏览器提示这是不安全连接(使用http协议)。而正常的facebook登录界面使用的是https协议。
(6)账户和密码等信息泄露
PC2用户在不知情的情况下,输入了账户和密码,那么攻击者会从setoolkit终端中获取到这些信息。
在伪站中输入邮箱:hack@gmail.com;密码:hack45。点击登录后,再查看kali上的setoolkit终端信息。
点击登录后系统自动跳到脸书的真实URL,这里由于邮箱和密码是编造的,所以无法登录。通过下图可以看到kali后台中可以获取在PC2中输入的邮箱和密码。至此,攻击者获取到了PC2用户的私人信息。
以上
篇幅过长问题,未完待续