基于Web的DNS欺骗技术研究
2022-12-23
来源:好走旅游网
第33卷第3期 大连大学掌报 、,ol-33 No.3 2012年6月 J0URNAL 0F DALIAN UNIVERSITY Jun.2O12 基于Web的DNS欺骗技术研究 张尚韬 (福建信息职业技术学院,福建福州350003) 摘要:本丈根据DNS解析的过程,结合DNS协议本身的缺陷,总结分析了DNS欺骗的原理,利用DNS 信息劫持进行DNS欺骗。当客户端发送域名解析请求时,先于DNS服务器给客户端发送欺骗应答数据包, 由于客户端处理DNS应答报文都是简单地信任先到达的数据包,只要DNS应答数据包的序列号标识与请求 数据包的序列号标识匹配就可以把客户端的请求重定向到某个预先设定的网页。并基于此设计开发了局域网 的DNS欺骗系统。 关键词:DNS欺骗;重定向;系统 中图分类号:TP393 文献标识码:A 文章编号:1008—2395(2012)03.0024.06 收稿日期:2012—02.27 作者简介:张尚韬(1980.),讲师,硕士,研究方向:计算机网络技术。 Intemet在当今社会展示了巨大的魅力,越来 错误的Internet站点等。 越多的用户通过网络获取信息,而Web攻击者千 本文主要利用DNS信息劫持进行DNS欺骗。 方百计通过这些信息引诱用户去访问并点击他 DNS欺骗的具体攻击过程如图1所示。 设定的Web陷阱,研究TCP/IP协议【l J的安全缺 陷和DNS[zJ网络欺骗攻击的技术原理,对了解网 DN鲫势 络协议,增强安全防范意识,对安全缺陷采取积 极的防御措施,以及下一代网络及无线网络的发 奁泛成餐饶遥1 展在可靠性、优良性和抗攻击性上有重要价值。 昕 1 DNS欺骗概述 DNS(DomainName System,域名系统)是 因特网的一项核心服务,是一个用于管理主机名 图1 DNS欺骗攻击示意图 字和地址映射的分布式数据库,它将便于记忆和 以福州大学网站www.fzu.edu.cn为例,假设 理解的名称同枯燥的IP地址联系起来,能够使人 伪造的IP为1.2.3.4,则具体的欺骗过程如下: 更方便的访问Intemet,而不用去记住能够被机器 (1)DNS客户端向首选DNS服务器发送对于 直接读取的IP数串。 www.fzu.edu.cn的递归解析请求数据包①。 DNS欺骗即域名信息欺骗是最常见的DNS f2)攻击者监听到请求,并根据请求ID构造 安全问题。所谓DNS欺骗,就是伪装DNS服务 发送欺骗应答包②,通知与w、vw.fzu.edu.cn对应 器提前向客户端发送响应数据包,使客户端DNS 的IP地址为1.2-3.4。 缓存中域名所对应的IP就是攻击者自定义的IP (3)本地DNS服务器返回正确应答(合法应答 了,同时客户端也进入攻击者指定的网站。当一 数据包③),如果晚于攻击者的应答,则此应答数 个DNS服务器掉入陷阱,使用了来自一个恶意 据包被丢弃;如果早于攻击者的应答,则攻击者 DNS服务器的错误信息,那么该DNS服务器就 的应答数据包被丢弃。 被欺骗了。DNS欺骗会使那些易受攻击的DNS (4)如果(3)中判断的为攻击者的DNS应答数 服务器产生许多安全问题,例如:将用户引导到 据包先到达,则欺骗成功,客户端对www.fzu.edu 第3期 张尚韬:基于Web的DNS欺骗技术研究 25 cn的访问被重定向到1.2.3.4。 让客户端以IP的形式重新与他访问的网站进行 连接,如果中间过程时间很短,就可以达到欺骗 2 DNS欺骗系统的设计及实现 客户端的目的而不被发现。DNS欺骗系统包括软 件模块和模块间的控制关系和模块组成关系,在 2.1 DNS欺骗系统设计 设计阶段,模块指功能模块,即按设计原理,划 设计一个DNS欺骗系统,基于DNS欺骗的 分独立功能而设计的模块。软件结构用模块结构 原理,当客户端访问指定的域名(一般为门户网 图表示。模块结构图的方框表示模块,分支表示 站或百度等搜索引擎)时,构造DNS欺骗数据 调用关系或组成关系,即上层模块调用下层模块, 包,重定向【。 客户端的访问。欺骗的方法是:把 或上层模块由下层模块组成。DNS欺骗系统模块 预先设定的网页作为中间过程,在其脚本语言中 设计如图2。 图2 DNS欺骗系统模块设计图 DNS欺骗系统模块功能如下: (1)循环捕获数据模块 (4)比较匹配模块 循环捕获数据模块模块的主要功能为循环 比较匹配模块主要功能是比较DNS查询的 捕捉数据,具体的说就是时刻监听网络中的DNS 域名是否与配置文件信息中需要攻击的域名相 查询数据包,一旦捕获DNS请求数据就转入下 匹配,匹配则调用欺骗应答模块构造DNS欺骗 个模块进行处理,没有捕获则循环进行监听。 应答数据包,重定向客户端的访问。 (2)DNS数据分析模块 (5)DNS欺骗应答模块 DNS数据分析模块的目标就是把DNS查询 DNS欺骗应答模块的功能就是快速构造与 数据包输入到模块之后,解析DNS数据包的各 DNS查询数据包序列号匹配的欺骗应答数据包, 个主要字段。具体的说分为两个方面:一是为 若在合法DNS服务器返回响应数据包之前到达 DNS域名提取模块提供DNS域名查询的数据, 客户端,则合法响应报文被丢弃,客户端查询的 二是当客户端查询的域名与非法域名数据库中 域名就被解析为自定义的IP。 的域名相匹配时,为欺骗应答模块提供DNS应 答数据包所需的各项置换和替换的数据,其中包 2.2 DNS欺骗系统实现 括DNS查询序列号标识、查询问题及IP和端口 2.2.1 DNS欺骗系统实现流程 等数据,为快速应答处理做好数据准备。 (3)DNS域名提取模块 DNS欺骗系统在监控主机(攻击主机)上运 DNS域名提取模块的主要功能为提取DNS 行,是基于Linux系统开发的系统,需要安装 查询数据包中的域名字段。但是DNS查询数据 Libpcap库和搭建HTTP服务器。系统的网络环 包中的域名字段长度是不固定的,可以通过DNS 境为:共享式以太网,攻击主机处于旁路监听模 查询数据包的长度计算出DNS查询域名的长度, 式L4J。共享式以太网,即局域网的出入口为具有 然后进行提取。 镜像端口的交换机,而运行DNS欺骗系统的主 机接入到交换机的镜像端口上,从而捕获该局域 网的所有数据包。DNS欺骗系统实现流程如图3 26 大连大学掌报 第33卷 图3 DNS欺骗系统实现流程 DNS欺骗系统是基于Linux系统设计的,它 访问就被重定向到预先设定的网站。 利用Libpcap库 】捕获和过滤数据,在捕获处理 提取域名字段内容、域名攻击判断、构造数 数据之前需要从配置文件中读取数据,配置的参 据包、发送重定向数据包等功能都是由DNS欺 数有目标主机IP、攻击的域名地址和重定向欺骗 骗系统来实现的。DNS欺骗系统的详细功能实现 的IP地址(即HTTP服务器的IP地址)等。利 如图4中的虚线框所示。 用Libpcap库函数捕获网络中的数据包,把网卡 设置为混杂模式,先根据以太网首部中的帧类型 DNS数据分析模块 字段判断协议类型(0x0800为IP数据包),再 UDP目的端u53 根据IP首部中的8位协议字段判断传输层的协议。 因为DNS数据包是基于UDP的数据包,所以只 DNS查询数据包 需要处理UDP数据包,其它类型的直接丢弃。 数据的置换和 替换处理 再从UDP数据包中分离出DNS查询报文,即目 的端口为53的UDP数据包,将其送入DNS欺 发送DNS 欺骗 答 骗模块进行处理,继续处理下一个数据包。 2.2.2 DNS欺骗系统主要模块实现思路 颤 \匹配 l、 的域名?// I、r DNS欺骗系统的实现思路是:利用旁路接入 I ● 。 模式监听局域网中的数据包,当发现有客户端发 不处理 I :I 1重定向网页 “ 送DNS查询数据包(UDP:目的端口53),则 提取其域名字段内容,与配置文件信息中的攻击 …一1"1 ……… 。。……r¨…… 1_ 域名地址进行比较,如果匹配,则根据DNS查 ◆ ◆ 询数据包的序列号标识构造DNS欺骗应答数据 包,如果先于合法应答数据包到达客户端,则其 图4 DNS欺骗系统详细功能实现图 第3期 张尚韬:基于Web的DNS欺骗技术研究 27 3 DNS欺骗系统的测试与结果分析 某次测试的流程如下:首先运行监控机(攻 击主机)上的欺骗系统,导入配置文件信息(包 实验环境利用了福建信息职业技术学院网 括目标主机IP、监控主机IP和欺骗的域名信息), 络设备实验室的局域网环境,局域网内的计算机 选择监控机的真实网络适配器eth0捕获数据包, 通过非智能交换机相连,这时候需要人为的进行 设置过滤规则为仅捕获192.168-3.70:53(UDP) 旁路设置,一般情况下,利用一台Hub来实现。 数据包,欺骗系统运行后处于监听状态,如图6 将网关设备、内网交换机、监控机(攻击主机) 为DNS欺骗系统的初始运行状态。 和目标主机都接在这台Hub上,因为Hub是介质 共享的,所以监控机也能得到全部被监控主机的 ud。p a毗篙。 nd h 0st .192 h. 16tm18 3.]..#. 7 ・/0 na d dst port 55 3DevScCe:ee et hOL’Stemna on... 通信数据,网络拓扑如图5所示。这种情况下也 可以把Hub换成可以做镜像端口的交换机。 图6 DNS欺骗系统初始运行状态 当监控主机捕获到数据包时,就会调用DNS 数据分析模块分析数据包是否为rd 1 a a DNS查询数据 a a a a 包,若是,与配置文件信息中需要欺骗的域名比 1 晓_n n r o t a e U S US S U S U S U S U S 0 ptS e qt ND t N Nt Nt Nt N t N e qr 0 pD r e qr r e qD e q e q r D r D 较,匹配的话,发送DNS欺骗数据包,重定向 C o 9t e r e St et et e t e n U U e U U U U 客户端的访问。在欺骗系统启动后,目标主机 ht 0 .n d[d Sd[d[d[d[ 茹 n w 192.168.3.7O分别访问了不同的网页。图7显示 的是DNS欺骗系统捕获到目标主机访问 d /O 】.18 k h.静3 t1t¨6t.tl a o 0d p Sd S n .7 6 C S n a ._. e p.p. f fl】 m mt ro or r】 n m.c ae .g暑dl Dk。o g b9 . C.C 1.a 1 m f .l a 3 .8.2 1 C】 q o..e K C af pgpC.f m】q-.C_.e rk o mt.t e C.C.(1 a orqe 2 e m . o q C q . e a a P】PCf ∞kI.n】 Cq eq Cot。C 1k.U ak . nef 1 W、vw.baidu.corn,并发送DNS欺骗数据包的过程。 f t o 1 1 。1 3 5 D t r o p C V e O 7 3 8 6 1 2 9 .。 0 7 7386 61 1Z9 91 。 .8 .2 0 . 1 2 9 7 3 8 6 . . 2 0 7 3 8 6 1 。.。 1 8 6 l 2 9 m D r. 】 f 1 2 9 1 m o r . 图5测试网络拓扑 当客户端访问指定的域名(一般为门户网站 或百度等搜索引擎)时,构造DNS欺骗数据包, e : 0 3 . 6 8 e [ 0 3 . 把客户端的访问重定向到预先设定的恶意网页 h 7 0 0 作为中问过程,当完成该网页的请求时,客户端 图7 DNS欺骗系统的运行状态 会以IP的形式跳转到客户端访问的网站,达到欺 骗的目的。 其中目标主机访问谷歌和腾讯的网站,不是 某次测试参数设置:目标主机IP为 欺骗系统需要欺骗的域名,没有对此DNS查询 192.168_3.70(或者是某一网段的IP),监控主机 数据包处理;当目标主机访问百度时,DNS欺骗 IP为192.168-3.1 11,DNS欺骗的域名为 系统对客户端进行了重定向欺骗,目标主机先访 、)l,、^ ,.baidu.tom,DNS域名欺骗后指向IP设置为 问攻击主机(192.168-3.111)设定的中间网页, 为192.168.3.1 1 1。启动“科来”网络分析系统监听 之后以IP的形式访问百度(220.181.37.55为百度 数据包,分析DNS欺骗L6J的过程。 的一个服务器的IP地址)。如图8显示的是对目 标主机欺骗跳转后的结果。 堑J舅嘲页 巴塑监蛭 堕 图8 DNS域名欺骗的结果 第3期 张尚韬:基于Web的DNS欺骗技术研究 29 生的网络安全事件中,70%的攻击是来自内部, 因此网络安全不仅仅是对外的,内部网络的欺骗 攻击行为成为内部网络安全研究的重点。通过研 究DNS欺骗技术,将来可以为拥有中小型网络 的企事业单位提供全方位的内部网络非法网站 访问监控服务。 [2 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. 参考文献: [1]W RICHARD STEVENS.TCP/IP详解卷1:协议[M] [6孔政,姜秀柱.DNS欺骗原理及其防御方案[6]J],计算 机工程,2010,36(03):125—127. 北京:机械工业出版社,2005:101—110. A Study of DNS Spoofing Technology Based on Web ZHANG Shang—tao (Fujian Polytechnic ofInformation Technology,Fuzhou 350003,China) Abstract: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既b site only by matching the ID of the response with the ID of the query.This paper designs and develops DNS spoofing system based on LAN. Key words:DNS spoofing;redirection;system