APP下载

基于Kali Linux的DNS欺骗及防范技术的研究

2018-01-27杨芙容张雅茜史洋

科教导刊·电子版 2017年35期

杨芙容+张雅茜+史洋

摘 要 DNS是把主机域名解析IP地址的系统,DNS欺骗则是攻击者冒充域名服务器的一种欺骗行为,常见被用做编写钓鱼网站或网页挂马等,对用户上网安全构成严重影响。本文首先对DNS基本概念及域名查询过程进行了简单陈诉,然后深入阐述了DNS欺骗原理,并利用渗透测试平台Kali Linux上集成的欺骗工具ettercap完成了DNS欺骗攻击,最后对DNS的防范措施提出了几点建议。

关键词 DNS 欺骗 kali Linux Ettercap

中图分类号:TP399 文献标识码:A

1 DNS域名系统

DNS即Domain Name System 的缩写,是把主机域名解析IP地址的系统。解决了IP地址难记的问题,用相对好记的域名就可以对服务器进行访问,即使服务器更换了IP地址,我们依旧可以通过域名访问该服务器,这样能够使我们更方便的访问互联网。该系统是由解析器和域名服务器组成的。DNS主要基于UDP协议,较少情况下使用TCP协议,端口号均为53。域名系统由三部分组成:DNS名称空间,域名服务器,DNS客户机。

DNS属于分层式命名系统,即采用的命名方式是层次树状结构。域名服务器运行模式为客户机、服务器模式,按域名空间层次可以分为根域名服务器、顶层域名服务器、权限域名服务器、本地域名服务器。域名解析就是将域名解协为IP地址。域名解析的方法有递归查询和迭代查询。

2 DNS域名查询过程

DNS是设置在互联网上很多主机中的一个分布式数据库,他用来进行域名和IP地址的转换查询,并提供电子邮件的路由信息。DNS域名查询请求与回应的过程可简单描述成以下五个步骤:(1)网络用户的浏览器提出将域名转换为IP地址的请求;(2)地址解析程序resolve生成查询报文;(3)地址解程序将查询请求语句封装在UDP包中发送出去;(4)DNS服务器查找到IP地址并生成相应报文;(5)DNS服务器将查询结果封装到UDP报文中发回给查询者。

3 DNS欺骗原理

DNS欺骗就是利用了DNS协议设计时的一个非常严重的安全缺陷。首先欺骗者向目标机器发送构造好的ARP应答数据包,ARP欺骗成功后,嗅探到对方发出的DNS请求数据包,分析数据包取得ID和端口号后,向目标发送自己构造好的一个DNS返回包,对方收到DNS应答包后,发现ID和端口号全部正确,即把返回数据包中的域名和对应的IP地址保存进DNS缓存表中,而后来的当真实的DNS应答包返回时则被丢弃。

以用户访问新浪网为例,DNS服务器的域名映射表中有一条信息是:新浪网站的IP地址是119.75.217.109,如果此映射信息中的IP地址被篡改为192.168.83.128。当用户访问新浪www.sina.com.cn网站时,从DNS上解析回来的目的IP地址就變成了192.168.83.128,用户主机按照步骤向192.168.83.128发送请求,收到的确实恶意攻击或进入不希望访问的网址。

DNS欺骗的危害是巨大的,常见被利用来钓鱼、挂马等,这在用户访问自己的银行账户,在线购书网站甚至是网页电子邮件时显得尤为重要。通常情况下,除非发生欺骗攻击,否则你不可能知道你的DNS已经被欺骗,只是你打开的网页与你想要看到的网页有所不同。在很多针对性的攻击中,用户都无法知道自己已经将网上银行帐号信息输入到错误的网址,直到接到银行的电话告知其帐号,已购买某某高价商品时用户才会知道。

4 DNS欺骗测试

DNS欺骗也可以被称为DNS毒化,属于中间人攻击,实验过程中采用虚拟机来模拟DNS欺骗攻击。测试环境为两台虚拟机,一台为攻击机装有Kali Linux系统,IP地址为192.168.83.128,另一台为靶机装Windows系统 ,IP地址为192.168.83.130。

Kali Linux是基于Debian的Linux发行版, 设计用于数字取证操作系统,面向专业的渗透测试和安全审计,由Offensive Security Ltd维护和资助。Kali Linux预装了许多渗透测试软件,包括nmap 、Wireshark 、John the Ripper ,以及Aircrack-ng.用户可通过硬盘、live CD或live USB运行Kali Linux。

实验用到的主要工具是Kali Linux 预装的Ettercap工具,具体欺骗工程如下:首先来看目标靶机IP地址为192.168.83.130,网关192.168.83.2,Ping www.sina.com.cn解析的IP地址为119.75.217.109,这时访问新浪所指向到的IP地址是正确的。接着在kali Linux上用ettercap来进行DNS欺骗,首先查看kali linux的ip地址192.168.83.128,进入usr/ettercap路径下找到etter.dns配置文件。vi编辑配置文件etter.dns添加一条A记录,将 www.sina.com.cn 指向到本机IP 192.168.83.128。保存并且退出,编辑文件/var/www/html/index.html ,添加

just kidding!

字段,保存退出。使用命令service apache2 start开启apache服务。利用ettercap开始欺骗:ettercap -i eth0 -Tq -M arp:remote -P dns_spoof /192.168.83.130// /192.168.83.2//

在到靶机上使用ipconfig/flushdns刷新路由信息,ping 新浪域名可以看出,欺骗攻击之前访问新浪,返回的地址为119.75.217.109,这时所指向到的IP地址是正确的。DNS欺骗攻击之后,可以看到访问已经被指向192.168.83.128,是Kali Linux的IP地址,在浏览器中访问该域名便访问到事先搭建好的一台WEB服务器,显示just kidding! 以上便完成了一次DNS欺骗攻击。

5 DNS欺骗的防范

DNS欺骗是很难进行有效防御的,因为大多情况下都是被攻击之后才会发现,而且这种攻击大多数本质都是被动的。为了竟可能地减少种类型攻击,提出以下几点建议:

因为DNS欺骗前提也需要ARP欺骗成功。所以首先做好对ARP欺骗攻击的防范;其次要保护内部设备:像这样的攻击大多数都是从网络内部执行攻击的,如果你的网络设备很安全,那么那些感染的主机就很难向你的设备发动欺骗攻击。不要依赖于DNS,在高度敏感和安全的系统,你通常不会在这些系统上浏览网页,最好不要使用DNS。如果你有软件依赖于主机名来运行,那么可以在设备主机文件里手动指定,可以使用hosts文件来实现相同的功能。

关闭DNS服务器的递归功能。DNS服务器利用缓存中的记录信息回答查询请求或是DNS服务器通过查询其他服务获得查询信息并将它发送给客户机,这两种查询成为递归查询,这种查询方式容易导致DNS欺骗。使用安全检测软件定期检查系统是否遭受攻击;使用DNSSEC,DNSSEC是替代DNS的更好选择,它使用的是数字前面DNS记录来确保查询响应的有效性,DNSSEC还没有广泛运用,但是已被公认为是DNS的未来方向。

参考文献

[1] 李建.DNS欺骗攻击的检测与防御[J].无线互联科技,2016(04).

[2] 邓诗钊.DNS域名安全实时检测的研究[D].成都:电子科技大学,2015(09).

[3] 雷惊鹏,沙有闯.利用Kali Linux开展渗透测试[J].长春大学学报,2016(06).

[4] 徐光.基于Kali Linux的Web渗透测试研究[J].信息安全与技术,2016(03).endprint