基于Web的DNS欺骗技术研究

2012-12-27 02:43张尚韬
大连大学学报 2012年3期
关键词:重定向域名IP地址

张尚韬

(福建信息职业技术学院,福建 福州 350003)

基于Web的DNS欺骗技术研究

张尚韬

(福建信息职业技术学院,福建 福州 350003)

本文根据DNS解析的过程,结合DNS协议本身的缺陷,总结分析了DNS欺骗的原理,利用DNS信息劫持进行DNS欺骗。当客户端发送域名解析请求时,先于DNS服务器给客户端发送欺骗应答数据包,由于客户端处理DNS应答报文都是简单地信任先到达的数据包,只要DNS应答数据包的序列号标识与请求数据包的序列号标识匹配就可以把客户端的请求重定向到某个预先设定的网页。并基于此设计开发了局域网的DNS欺骗系统。

DNS欺骗;重定向;系统

Internet在当今社会展示了巨大的魅力,越来越多的用户通过网络获取信息,而Web攻击者千方百计通过这些信息引诱用户去访问并点击他设定的Web陷阱,研究TCP/IP协议[1]的安全缺陷和DNS[2]网络欺骗攻击的技术原理,对了解网络协议,增强安全防范意识,对安全缺陷采取积极的防御措施,以及下一代网络及无线网络的发展在可靠性、优良性和抗攻击性上有重要价值。

1 DNS欺骗概述

DNS(Domain Name System,域名系统)是因特网的一项核心服务,是一个用于管理主机名字和地址映射的分布式数据库,它将便于记忆和理解的名称同枯燥的IP地址联系起来,能够使人更方便的访问Internet,而不用去记住能够被机器直接读取的IP数串。

DNS欺骗即域名信息欺骗是最常见的DNS安全问题。所谓DNS欺骗,就是伪装DNS服务器提前向客户端发送响应数据包,使客户端DNS缓存中域名所对应的IP就是攻击者自定义的IP了,同时客户端也进入攻击者指定的网站。当一个DNS服务器掉入陷阱,使用了来自一个恶意DNS服务器的错误信息,那么该DNS服务器就被欺骗了。DNS欺骗会使那些易受攻击的DNS服务器产生许多安全问题,例如:将用户引导到错误的Internet站点等。

本文主要利用DNS信息劫持进行DNS欺骗。DNS欺骗的具体攻击过程如图1所示。

图1 DNS欺骗攻击示意图

以福州大学网站www.fzu.edu.cn为例,假设伪造的IP为1. 2. 3. 4,则具体的欺骗过程如下:

(1)DNS客户端向首选DNS服务器发送对于www.fzu.edu.cn的递归解析请求数据包①。

(2)攻击者监听到请求,并根据请求ID构造发送欺骗应答包②,通知与www.fzu.edu.cn对应的IP地址为1.2.3.4。

(3)本地DNS服务器返回正确应答(合法应答数据包③),如果晚于攻击者的应答,则此应答数据包被丢弃;如果早于攻击者的应答,则攻击者的应答数据包被丢弃。

(4)如果(3)中判断的为攻击者的DNS应答数据包先到达,则欺骗成功,客户端对www. fzu. edu. cn的访问被重定向到1. 2. 3. 4。

2 DNS欺骗系统的设计及实现

2.1 DNS欺骗系统设计

设计一个DNS欺骗系统,基于DNS欺骗的原理,当客户端访问指定的域名(一般为门户网站或百度等搜索引擎)时,构造DNS欺骗数据包,重定向[3]客户端的访问。欺骗的方法是:把预先设定的网页作为中间过程,在其脚本语言中让客户端以IP的形式重新与他访问的网站进行连接,如果中间过程时间很短,就可以达到欺骗客户端的目的而不被发现。DNS欺骗系统包括软件模块和模块间的控制关系和模块组成关系,在设计阶段,模块指功能模块,即按设计原理,划分独立功能而设计的模块。软件结构用模块结构图表示。模块结构图的方框表示模块,分支表示调用关系或组成关系,即上层模块调用下层模块,或上层模块由下层模块组成。DNS欺骗系统模块设计如图2。

图2 DNS欺骗系统模块设计图

DNS欺骗系统模块功能如下:

(1)循环捕获数据模块

循环捕获数据模块模块的主要功能为循环捕捉数据,具体的说就是时刻监听网络中的DNS查询数据包,一旦捕获DNS请求数据就转入下个模块进行处理,没有捕获则循环进行监听。

(2)DNS数据分析模块

DNS数据分析模块的目标就是把DNS查询数据包输入到模块之后,解析DNS数据包的各个主要字段。具体的说分为两个方面:一是为DNS域名提取模块提供DNS域名查询的数据,二是当客户端查询的域名与非法域名数据库中的域名相匹配时,为欺骗应答模块提供DNS应答数据包所需的各项置换和替换的数据,其中包括DNS查询序列号标识、查询问题及IP和端口等数据,为快速应答处理做好数据准备。

(3)DNS域名提取模块

DNS域名提取模块的主要功能为提取DNS查询数据包中的域名字段。但是DNS查询数据包中的域名字段长度是不固定的,可以通过DNS查询数据包的长度计算出DNS查询域名的长度,然后进行提取。

(4)比较匹配模块

比较匹配模块主要功能是比较DNS查询的域名是否与配置文件信息中需要攻击的域名相匹配,匹配则调用欺骗应答模块构造DNS欺骗应答数据包,重定向客户端的访问。

(5)DNS欺骗应答模块

DNS欺骗应答模块的功能就是快速构造与DNS查询数据包序列号匹配的欺骗应答数据包,若在合法DNS服务器返回响应数据包之前到达客户端,则合法响应报文被丢弃,客户端查询的域名就被解析为自定义的IP。

2.2 DNS欺骗系统实现

2.2.1 DNS欺骗系统实现流程

DNS欺骗系统在监控主机(攻击主机)上运行,是基于Linux系统开发的系统,需要安装Libpcap库和搭建HTTP服务器。系统的网络环境为:共享式以太网,攻击主机处于旁路监听模式[4]。共享式以太网,即局域网的出入口为具有镜像端口的交换机,而运行DNS欺骗系统的主机接入到交换机的镜像端口上,从而捕获该局域网的所有数据包。DNS欺骗系统实现流程如图3

图3 DNS欺骗系统实现流程

DNS欺骗系统是基于Linux系统设计的,它利用Libpcap库[5]捕获和过滤数据,在捕获处理数据之前需要从配置文件中读取数据,配置的参数有目标主机IP、攻击的域名地址和重定向欺骗的IP地址(即HTTP服务器的IP地址)等。利用Libpcap库函数捕获网络中的数据包,把网卡设置为混杂模式,先根据以太网首部中的帧类型字段判断协议类型(0x0800为IP数据包),再根据IP首部中的8位协议字段判断传输层的协议。因为DNS数据包是基于UDP的数据包,所以只需要处理UDP数据包,其它类型的直接丢弃。再从UDP数据包中分离出DNS查询报文,即目的端口为53的UDP数据包,将其送入DNS欺骗模块进行处理,继续处理下一个数据包。

2.2.2 DNS欺骗系统主要模块实现思路

DNS欺骗系统的实现思路是:利用旁路接入模式监听局域网中的数据包,当发现有客户端发送DNS查询数据包(UDP:目的端口53),则提取其域名字段内容,与配置文件信息中的攻击域名地址进行比较,如果匹配,则根据DNS查询数据包的序列号标识构造DNS欺骗应答数据包,如果先于合法应答数据包到达客户端,则其访问就被重定向到预先设定的网站。

提取域名字段内容、域名攻击判断、构造数据包、发送重定向数据包等功能都是由DNS欺骗系统来实现的。DNS欺骗系统的详细功能实现如图4中的虚线框所示。

图4 DNS欺骗系统详细功能实现图

3 DNS欺骗系统的测试与结果分析

实验环境利用了福建信息职业技术学院网络设备实验室的局域网环境,局域网内的计算机通过非智能交换机相连,这时候需要人为的进行旁路设置,一般情况下,利用一台Hub来实现。将网关设备、内网交换机、监控机(攻击主机)和目标主机都接在这台Hub上,因为Hub是介质共享的,所以监控机也能得到全部被监控主机的通信数据,网络拓扑如图5所示。这种情况下也可以把Hub换成可以做镜像端口的交换机。

图5 测试网络拓扑

当客户端访问指定的域名(一般为门户网站或百度等搜索引擎)时,构造DNS欺骗数据包,把客户端的访问重定向到预先设定的恶意网页作为中间过程,当完成该网页的请求时,客户端会以IP的形式跳转到客户端访问的网站,达到欺骗的目的。

某次测试参数设置:目标主机IP为192.168.3.70(或者是某一网段的IP),监控主机IP为192.168.3.111,DNS欺骗的域名为www.baidu.com,DNS域名欺骗后指向IP设置为为192.168.3.111。启动“科来”网络分析系统监听数据包,分析DNS欺骗[6]的过程。

某次测试的流程如下:首先运行监控机(攻击主机)上的欺骗系统,导入配置文件信息(包括目标主机IP、监控主机IP和欺骗的域名信息),选择监控机的真实网络适配器eth0捕获数据包,设置过滤规则为仅捕获192.168.3.70:53(UDP)数据包,欺骗系统运行后处于监听状态,如图6为DNS欺骗系统的初始运行状态。

图6 DNS欺骗系统初始运行状态

当监控主机捕获到数据包时,就会调用DNS数据分析模块分析数据包是否为DNS查询数据包,若是,与配置文件信息中需要欺骗的域名比较,匹配的话,发送DNS欺骗数据包,重定向客户端的访问。在欺骗系统启动后,目标主机192.168.3.70分别访问了不同的网页。图7显示的是DNS欺骗系统捕获到目标主机访问www.baidu.com,并发送DNS欺骗数据包的过程。

图7 DNS欺骗系统的运行状态

其中目标主机访问谷歌和腾讯的网站,不是欺骗系统需要欺骗的域名,没有对此DNS查询数据包处理;当目标主机访问百度时,DNS欺骗系统对客户端进行了重定向欺骗,目标主机先访问攻击主机(192.168.3.111)设定的中间网页,之后以IP的形式访问百度(220.181.37.55为百度的一个服务器的IP地址)。如图8显示的是对目标主机欺骗跳转后的结果。

图8 DNS域名欺骗的结果

“科来”网络分析系统也捕获到客户端访问网页(DNS域名解析)、DNS欺骗系统发送欺骗数据包和以IP形式跳转的过程。如图9所示。图中第一列为数据包编号,第二列为数据包的捕获时间,第三列为数据包源IP,第四列为数据包目的IP,第五列为TCP数据包的标志位,第六列为数据包的概要内容。

从图9中可以看出,数据包80为目标主机向首选DNS服务器(202.115.32.36)查询百度(需要欺骗的域名)的IP地址。当DNS欺骗系统捕获到数据包80时,立即构造DNS欺骗数据包,假冒首选DNS服务器把www.baidu.com对应的IP地址设置为192.168.3.111,即图9中的数据包81。真正的首选DNS服务器202.115.32.36的应答为图9中的数据包82。

从图9数据包的绝对时间可以看出数据包81比数据包82先到达客户端192.168.3.70,则客户端访问的www.baidu.com就被重定向到192.168.3.111。由于所有DNS客户端处理DNS应答报文都是简单的信任首先到达的数据包,丢弃所有后到达的,而不对数据包的合法性做任何的分析,所以数据包82被客户端丢弃,不做任何处理。

数据包83、84、85为客户端与HTTP服务器(192.168.3.111)三次握手建立连接的过程,数据包86~96为中间网页的下载过程,93~96为完成页面下载双方端口关闭连接的过程;数据包107~115为客户端以IP形式连接其请求的真实网站的过程(本测试中为客户端以220.181.37.55连接百度),如图10所示。

图9 DNS欺骗系统对DNS数据包的处理

图10 客户端以IP形式连接其请求的真实网站

在局域网的中小流量的网络环境下,经过上面的测试分析,可以知道当目标主机访问配置文件中的攻击域名时,DNS欺骗系统成功地把客户端重定向到预先设定的中间网页,当客户端下载完中间网页时,又根据其脚本语言的指令以IP的形式跳转到客户端访问的网站。因为攻击的域名一般为门户网站或百度等搜索引擎,这些站点是客户端信任的站点,所以对于一般用户而言,浏览器的地址栏出现IP的形式也不会怀疑,这样就达到了欺骗的目的。

4 总结

堡垒最容易从内部攻破。据调查统计,已发生的网络安全事件中,70%的攻击是来自内部,因此网络安全不仅仅是对外的,内部网络的欺骗攻击行为成为内部网络安全研究的重点。通过研究DNS欺骗技术,将来可以为拥有中小型网络的企事业单位提供全方位的内部网络非法网站访问监控服务。

[1] WRICHARDSTEVENS. TCP/IP详解卷1:协议[M].北京:机械工业出版社, 2005: 101-110.

[2] DECCIO, CASEYSEDAYAO. Quantifying DNS namespace influence[J]. Computer Networks, 2012, 56(2): 780-794.

[3] 杨青. 基于蜜罐的网络动态取证系统研究[J]. 山东科学, 2010(5): 59-65.

[4] 宋广军. 基于校园网的防火墙和入侵检测联动技术研究[J]. 科技资讯, 2011(34): 25.

[5] 张毅. 基于Libnet和Libpcap的网络丢包率测试平台设计[J]. 广东通信技术, 2010(1): 23-27.

[6] 孔政, 姜秀柱. DNS欺骗原理及其防御方案[J], 计算机工程, 2010, 36(03): 125-127.

A Study of DNS Spoofing Technology Based on Web

ZHANG Shang-tao

(Fujian Polytechnic of Information Technology, Fuzhou 350003, China)

According to the DNS resolution process and the drawback of DNS itself, this paper analyses the principle of DNS spoofing and DNS information hijack.When the client sends a domain resolution query, it will send the spoofing response packet to the client ahead of the DNS server. Since the way of the client processing DNS response is to trust the first arrival data simply, the client query can be redirected to malicious Web site only by matching the IDof the response with the IDof the query. This paper designs and develops DNS spoofing system based on LAN.

DNS spoofing; redirection; system

TP393

A

1008-2395(2012)03-0024-06

2012-02-27

张尚韬(1980-),讲师,硕士,研究方向:计算机网络技术。

猜你喜欢
重定向域名IP地址
铁路远动系统几种组网方式IP地址的申请和设置
Combosquatting域名抢注的测量研究
解决安卓文件夹乱象
重复压裂裂缝重定向的措施研究
IP地址切换器(IPCFG)
如何购买WordPress网站域名及绑定域名
4G伪基站的监测定位与规避协同分析
基于SNMP的IP地址管理系统开发与应用
公安网络中IP地址智能管理的研究与思考
顶级域名争夺战:ICANN放出1930个通用顶级域名,申请者有上千家