基于ARP与DNS欺骗的重定向技术的研究
第28卷第23期V01.28No.23计算机工程与设计ComputerEngineeringandDesign2007年12月Dee.2007基于ARP与DNS欺骗的重定向技术的研究刘扬1,刘杨1,胡
第28卷第23期
V01.28
No.23
计算机工程与设计
ComputerEngineeringandDesign
2007年12月
Dee.2007
基于ARP与DNS欺骗的重定向技术的研究
刘
扬1,
刘
杨1,胡仕成1,朱东杰2
(1.哈尔滨工业大学计算机科学与技术学院,山东威海264209;
2.哈尔滨工业大学软件学院,山东成海264209)
摘要:网络信息的检测与控制是网络管理的基本职责,限制客户端对非法网站访问是网络管理的重要任务。通过分析ARP欺骗的原理,利用ARP欺骗的方法对局域网内信息进行监听,分析DNS查询数据报内容,在ARP欺骗的基础上结合DNS欺骗对非法访问进行重定向技术进行了研究,并提出了相应的算法,减少了客户端对非法网站访问,实现了自动网络监控
的功能.
关键词:嗅探;ARP欺骗;DNS欺骗;会话劫持;重定向技术中图法分类号:TP393.08
文献标识码:A
文章编号:1000.7024(2007)23.5604.03
Reaching
on
redirectiontechnologybasedonARPandDNSspoofing
LIUYan91,LIUYan91,HUShi—chen91,ZHUDong-jie2
<1.SchoolofComputerScienceandTechnology,HarbinInstituteofTechnology,Weihai264209,China;
2.SchoolofSoftware,HarbinInstitute
Abstract:Thebasic
ofTechnology,Weihai264209,China)
responsibilityofnetworkmanagementischeckingandcontrollingofnetworkinformation,whilethemostimportant
Throughanalyzingtheprinciple
taskislimitingillegalaccessingnetworkARP
on
oftheARPspoofing,theLANinformationismonitoredby
spoofing,andthecontentofDNSrequestpackageisanalyzed,thenredirectiontechnologyofillegalaccessingisresearchedbasedARPspoofingandcorrespondingarithmeticcombinedwithDNSSpoOfingispresented,thustheillegalaccessingdegreeisreduced,
monitoring
andtheautomaticnetworkfunction
isachieved.
Keywords:sniffing;ARPspoofing;DNSspoofing;session・埘acking;redirectiontechnology
0引言
的隐蔽性。本文通过分析会话劫持,监听局域网中的主机访问信息,进而采用过滤技术并伪造DNS应答包对非法访问进行DNS欺骗,把访问者导向到一个特定的主机上,在该主机上放置一个警告页面,达到限制非法上网的目的。
局域网的链接方式主要有两种,一种是通过集线器链接,一种是通过三层交换机链接。通过集线器链接的网络,由于集线器只是对数据帧进行广播,只要把网卡设置为混杂模式,在集线器任何一个端口都可以侦听到整个局域网里面的数据流,在这种情况下可以很方便的对局域网里的主机进行监听Ⅲ。而大多数局域网是通过三层交换机链接,交换机有自己的MAC映射表,除了广播数据包,其它的数据包都是由发送主机端口进,接受主机端口出,在这种情况下除了网关,主机相互间不知道访问的内容。要侦听流向其它主机的数据流就需要破坏交换机的数据流向,可以有两种方法,一是使用洪泛方式攻击交换机,使其映射表溢出,于是交换机就会进入类似于集线器的广播模式;二是会话劫持,通过ARP欺骗,在侦听的主机和网关之间做中间人,获取数据流。第一种方法会对网络的稳定性造成一定的影响并且易于觉察。采用会话劫持具有较高
收稿日期:2006-12—22
E-mail:lyyl2322@126.tom
1欺骗原理
1.1
ARP欺骗原理
ARP协议是建立在相互信任的基础上的,它是一个无状
态协议嘲。ARP请求是以广播方式进行的,任意一台主机在没有接到请求的情况下也可以随意发送ARP应答包,接收到ARP应答包的ARP缓存没有认证机制,直接动态更新缓存,这些都为ARP欺骗提供了条件。
会话劫持是攻击者通过将自身插入到两个通信主机之间,从而获取通信双方交互信息,为防止通信中断,攻击者将不断转发两个通信主机之间的信息。会话劫持的方式可以分为内网会话劫持和外网会话劫持阱。
基金项目:哈尔滨工业大学(威海)校研究基金项目(MQl0000079).
作者简介:刘扬(1972一),男,陕西武功人,硕士,讲师,研究方向为计算机网络协议分析及安全保障、企业资源计划;硕士,助教,研究方向为计算机网络:
胡仕成(1970--),男,博士后,副教授,研究方向为企业资源计划、计算机网络;
男,河南正阳人,硕士,助教,研究方向为人工智能、计算机网络。
刘杨(1978--),女,朱东杰(1983一),
一5604一
万方数据
,1.1.1内网会话劫持包的简化格式如表3所示。
假设在同一网段内的主机A要和主机B进行通信,现在表3发送到A主机的ARP应答包攻击者主机C要进行监听双方通信内容,如图1所示。源MAC地址源口地址目的MAC地址目的P地址
AB-AB.AB.AB.AB172.29.26.20000.11-22.33婢AA172.29.26.100
主机A接收到Al冲应答包更新缓存,主机A在遭受欺骗
后将信息发送给主机B时是按攻击者主机C的MAC地址寻
址,ARP协议为局域网协议,由于主机C在外网,所以主机A
不会将信息发送到路由器,这时主机C利用ICMP更新主机A
的路由表,将发送给主机B的信息先发送到路由器再转发给
攻击者Ⅲ。这样攻击者就实现了对主机A的监听。同理,可以
图l内网监听过程实现对主机B的监听,从而实现外网监听。
1.2DNS欺骗原理
攻击者主机C在已知通信双方IP的基础上,可以通过收当客户向一台服务器请求服务时,服务器方一般会根据集ARP请求/响应信息或通过ICMP协议的PING命令获取通客户的礤反向解析出该口对应的域名。这种反向域名解析信双方主机的MAC地址。主机C设置网卡为混杂模式并具就是一个查DNS(domainnallleservice)的过程嘲。有转发功能,主机C进行ARP欺骗(ARPSpoofing),构造AR.P在DNS数据报头部的序列号是用来匹配应答和查询数应答包发送给主机A,该包的简化格式如表1所示。据报的。客户端首先以特定的标识向DNS服务器发送域名
表1发送到A主机的ARP应答包查询数据报,在DNS服务器查询之后以相同的/D号给客户端
发送域名应答数据报旧。这时客户端会将收到的DNS应答数
源MAC地址源坤地址目的MAC地址目的婵地址
AB—AB.AB.AB.AB172.29.26.20000—11-22—33—44—AA172.29_26.100据报的ID和自己发送的查询数据报ID相比较,如果匹配则
表明接收到的正是本机等待的数据报,如果不匹配则丢弃之。
由于ARP协议自身的缺陷,主机A接收主机C构造的假如伪装DNS服务器提前向客户端发送应答数据报,那ARP应答包并更新ARP缓存,为防止欺骗失效,主机C必须么客户端的DNS缓存里域名所对应的m就是欺骗者自定义不断发送ARP应答包持续欺骗。同理,主机C构造ARP应答的IP,同时客户端也就被带到了欺骗者希望的网站。前提条包发送给主机B进行欺骗。包的简化格式如表2所示。件就是欺骗者发送的ID匹配的DSN应答数据报在DNS服务
表2发送到B主机的ARP应答包器发送的应答数据报之前到达客户端。
利用DNS序列号欺骗可分为如下两种情况:①本地主机
源MAC地址源Ⅲ地址目的MAC地址目的口地址与DNS服务器,本地主机与客户端主机均不在同一个局域网AB—AB-AB・AB.^B172.29.26.10000-1l_22-33-44-BB172.29.26.200
内,方法有以下几种:向客户端主机随机发送大量DNS应答
这样攻击者阻断了主机A与主机B的直接通信,通过攻数据报,其中序列号是任意给定的,因此序列号和客户端查询击者可以接收并转发通信双方的信息,进行不易被通信双方报文序列号匹配的概率很低旧;向DNS服务器发起拒绝服务发觉的监听。攻击,容易被检测;BIND漏洞,使用范围比较有限。②本地主1.1.2外网会话劫持机至少与DNS服务器或客户端主机中的某一台处在同一个局
假设在同一网段内的主机A要和主机B进行通信,现在域网内:欺骗者可以通过嗅探Snitiing得到DNS查询报文的序攻击者主机C处于外网中,要进行监听双方通信内容,如图2列号,利用ARP欺骗来实现可靠而稳定的DNS序列号欺骗。所示。攻击者主机C为监听主机A和主机B的通信内容,必2具体实现
须通过路由器。考虑到信息从内网到外网的存活时间问题,
修改攻击者m分组的TrL时间,使攻击者发出的欺骗包有充在局域网中实现DNS欺骗的基础是ARP欺骗。ARP欺足的时间到达目的主机。主机C发送ARP应答包给主机A,.骗的对象是网关和客户端。欺骗者采用多线程方式运行ARP
Spoofing线程进行会话劫持,欺骗者持续向网关发送包含客户
端口及欺骗者MAC的DNS应答数据报,促使网关修改其ARP
缓存阁;同时欺骗者持续向客户端发送包含网关m及欺骗者
MAC的DNS应答数据报,促使客户端修改其ARP缓存。此时
网关看到客户端MAC地址就是欺骗者主机的MAC地址;客
户端也认为网关的MAC地址为欺骗者主机的MAC地址。网
关和客户端进行通信时,数据流通过欺骗者主机进行中转,欺
骗者主机可以在网关和客户端无觉察的情况下进行监听。当
欺骗者主机利用Sniffing线程进行监听时,如发现客户端发送
图2外网监听的DNS查询数据报(目的端口为53)贝1J提取其域名字段内容,
万 方数据・——5605‘‘—
,在数据库中进行对比,如果是非法网站,欺骗者主机根据DNS查询数据报的序列号构造DNS应答数据报,在DNS应答数据报域名字段中写入警告网站域名地址,这样客户端会收到欺骗者发送的DNS响应数据报并访问欺骗者自定义的网站。
主程序创建两个线程,一个线程进行实时的ARP欺骗,另一个线程监听接收到的数据报,若发现有域名服务查询数据报,则立即向客户端发送自定义的DSN响应数据报。测试环境:Windows2000+VC6.0十Winpcap3.O_alpha,注册表:HKE£zOCAL_MACHINE\SYSTEM\CurrentControlSet\Servi-
ces\Tcpip\ParametersRPEnableRouter=0xl。
DNS包结构:以太网头部+IP头部+UDP头部+DINS部分(B代表字节)ARPSpoofing线程:
PacketInitPacket(IPpackets.Selldbuf,sizeof(eth)+sizeof
(—嗵p));//初始化ARP响应数据报:
PacketScndPacket(IPNIC,IPpackets,TRI『E)://发送ARP欺骗的响应数据报;
GetMAC0函数
GctNICslnfo(pNlCinfo,&NICInfosize);∥获取网络适配器的属性;SendARP(destlP,0,pulMAC,&ullen);
//发送ARP请求数据报,过去网络主机的MAC地址;Sniffing线程:
PacketSetHwFilter(IPNIC。NDIS_PACKE飞娶PE
PROMIS—
cuous);//将网卡设置为混杂模式
PacketSetBuff(1pNIC,500’1024),//设置网络适配器的内核缓存;PaeketSetReadTimeout(IPNIC,1);,/设置等待时间;
PaeketReceivePaeket(IPNIC,IPpacketr,TRUE))∥接收网络数据报;
Checksum((USHORT‘)temp,sizeof(PSD)+sizeof(U『DP.
HDRhizeoffDNSMen+sizeof
(QUERY)+sizeof(RESPONSE));//计算校验和;
PaeketlnitPaeket(1ppackets,sendbuf:sizcof(ETHDl◇悔izeof(IPHDR)+sizeof(UDPHDR)+sizeof(DNS)+ulen+4+sizeof(RE—SPONSE));
//初始化一个PACKET结构,发送DNS响应数据报;DNS查询数据报域名字段的分析:要对DNS查询数据报中的域名字段做提取,分析出客户机访问的域名,域名字段的开始位置是固定的(55字节开始),但是长度是不固定的,可通过包长度计算出来这个字段的长度,字段长度=总包长度-58(以太网14+IP头20+UDP头8+DNS字段的其它部分16)嘲,所以可以每次在捕获DNS查询数据报以后都从截取55开始,长度为总包长度一58,进行域名分析。
分析的时候要注意这里面不是完全按照ASCII对应关系对应的,分析的时候需要做些转换,也就是域名中除了“0-9”
。a∥“一”以外都要作为“。”处理嗍。这样就可以得到客户机
的DNS请求中的域名信息了过滤方式:与非法的域名记录做对比,如果是非法域名,就进行DNS欺骗,如果不是不做回应。
・——5606・——
万
方数据采用的方法是每次在程序初始化时就从数据库里读出所有非法域名(管理员导入),全部存入内存缓存区(因为都是字符串不会占用很多内存),然后在内存中进行智能分词匹配,过滤出含有非法网站信息的域名。
构造欺骗包:构造欺骗包时,应该尽量构造简单的包,权威和附加字段都不添,如UDP校验和等“∞,可以减少出错的几率,也加快了回应速度。
DNS包的大部分字段的位置都是不变的,只是因为问题的域名长短不一才使得少量字段位置有区别,而且DNS查询数据报和应答包的包结构也是一样的,只是查询数据报的应答字段,权威字段,附加字段都是空,所以采用了改造查询数据报的方法,而不是构造包的方法,这样全是交换和置位操作,减少了分析数据包和构造结构体等麻烦,也省去了结构体类型转换等需要的时间。需要注意的是:每组DNS查询和应答是通过DNS部分的序列号来匹配的,所以回应的序列号要和查询的序列号一致。实现如下:
M^INO函数
PaeketGetNlCNames
((char’)NlCname,&NlClength)『;
//获得本地主机的网络适配器列表和描述:IPNIC=
PacketOpenNIC(NIClist[open-l】):
//打开指定的网络适配器;
CreateThread(NULL,0,Sniffing,M『IJm0&threadrid)t
CreateThread
(NULL,0,ARPSpoofmg,NULL,0,&threadsid);∥创建两个线程;
WaitForMultipleObjeets(2,thread,FALSE,INFINITE);∥等待其中的某个线程结束;
3结束语
网络信息的检测与控制是网络管理员面临的问题,在局域网可以采用多种方式(如软硬件防火墙等)对客户端的不良信息访问加以控制。本方法在校局域网内经测试,当客户端对非法网站访问时客户端可以在O.4ms内被定位到指定网站,有效减少客户端对非法网站的访问,从而实现对局域网内客户端对非法网站访问的控制。本文介绍的DNS序列号欺骗是基于ARP欺骗之上的网络攻击,仅限于局域网中。在数据库中对非法网站的匹配查询算法复杂度还有待进一步改进。
参考文献:
【1】
郭润,王振兴,敦亚南.交换式以太网中的ARP与DNS欺骗技术分析[J】.微计算机信息(管控一体化),2005,21(3):21-23.【2】David
C
Plummer.Anethemetaddressresolutionprotocol—
Convertingnetworkprotocoladdressesto
48bitethemetaddress
forIxansmission
on
ethernet
hardware[S].RFC826.
【3】LiuYang,ChiLcjma,ZhuDongjie.ARPspoofingdetection
and
guarding
algorithm[C].The
InternationalConferenceon
Multi-
media,InformationTechnologyanditsApplications.Daliaa:DalianUniversityofLightIndustry,2006:183-186.
(下转第5609.页)
,下的适应性选择消息和身份的存在性伪造攻击。
(2)PKG伪造签名
第一种情况,PKG想伪造对消息m的签名,使得该签名与用户对消息ra的签名相同。假设PKG所伪造的合法签名(配
于双线性对的计算时问,因此本方案在签名验证阶段的效率还是高于文献[7】中的方案。由此可知,在安全性相同的情况下,本方案高于文献【7】中方案的效率。
巧乃.尸)为对消息m的签名矿=(枞)扩1岛),这里,PKG知道&,
可计算:,_IP=(Qm+sXx+h)。1乃这与q.BDHIP难解是矛盾的。另外,在这种情况下就相当于用户的私钥变成了,.≯,根据(1)中的证明,此时本方案仍然能抵抗适应性选择消息和身份的存在性伪造攻击。
第二种情况,PKG想伪造对消息m的签名,该签名与用户
4结束语
本文在基于身份密码体制下提出了一个新的无可信中心的数字签名方案,并对该方案进行了安全性证明和效率分析。本文方案与传统的无可信中心的签名方案不同,是基于4.SDHP难解的,但是具有与传统的无可信中心的签名方案相同的安全性,能抵抗随机预言模型下的适应性选择消息和身份的存在性伪造攻击。本文方案在效率方面优于其它基于身份无可信中心的数字签名方案。
所作的对消息m的签名不同。PKG选择一个随机数r,∈Z,计
算Q名=凰(,D0z7,P),最后得到一个可验证有效的签名(【,,,n正r四。但是,合法的用户可以提供证据证明PKG伪造了他的
签名。他先把rP交给一个中间人,然后就可以证明他知道岛:
中间人随机选取口∈。z:,把口匕和aH,(IO0LrP’以通过一个安
参考文献:
【1】
BonehD,LynnB,ShachamH.Shortsignatures
fromtheWeil
全通道送给用户,用户计算:会(岛,aP.+aH(ID¨正厂P懈),如果
等式文%,aP.+att(ID
且他的ID在同一时间期限内对应了rP和r,P,这时中间人就可以判断PKG伪造了用户的签名。这是因为,由(1)中证明可知除PKG外的任何人都无法得到s,进而无法伪造用户的签名。3.2效率分析与对比
II正删=簖成立,就说明用户知道岛并
pairing[C】.GoldCoast,Queensland,Australia:ProcAdvances
inCryptology—Asiacrypt,2001:514-532.
【2】PatersonKG.ID-basedsignaturefrompairingOnelliptic
curves
[OL】.Cryptology
2002/004.
ePrint
Archive,2002.http://eprint.iacr.org/
【3】HessEEfficientidentitybasedsignatureschemesbased
011
pai-
本文所提出的签名方案和文献【7】所提出的方案都是基于身份无可信中心的签名,并且它们都具有相同的安全性。文献[7】的方案是目前所知的基于身份无可信中心的签名方案中效率最好的方案。下面分别对这两个方案进行签名和验证阶段的效率分析。
从表1中明显看出本方案在签名阶段效率高于文献[7】中的方案。在签名验证阶段本方案比文献[7】的方案多一个点乘计算,少了一个双线性对的计算。但是点乘的计算时间远低
【5】5
rings[C].SelectedAreainCryptography,SAC‘02.Heidelberg:
.
Springer-Verlag,2003:310・324.
【4】ChaJC。CheonJH.Anidentity-basedsignaturefromgapDiffie—
Hellman
groups[C】.Public
KeyCryptography-PKC.Berlin:
Springer-Verlag,2003:18-30.BarretoE
secure
LibertB,McCullaghN,eta1.Efficientandprovably-
identity—basedsignatureandsigncryptionfrombilinear
maps[C].Asiacrypt,LNCS3788.Berlin:Springer-Verlag,2005:
515.532.
表l性能对比
文献[7】的方案
双线性对
签名
点乘Hash函数双线性对
验证签名
点乘Hash函数
o4l212
【6】
本方案
O21l2
Chen)(’ZlumgF,Kimk
schemetiombilinear116.pdf.
AnewlID-based
groupsignature
pairings[OL].http://eprint.iacr.org/2003/
【7】苏达峰,谢冬青.一类基于身份的无可信中心的签名方案[J】.计算机工程与应用,2006,42(1):115.116.
【8】BonehD,BoyenX.Efficientselective
encryption
withoutrandom
IDsecurc
identitybased
inCrypto-
Oracles[c】.Advances
2
logy—Eurocrypt.Berlin:Springer-Verlag,2004:223・238.
(上接第5606页)【4】
【8】KooJ,Ahn
孟晓明.基于ARP的网络欺骗的检测与防范[J】.信息技术,2005(5):41,-44.
S,LimY
eta1.Evaluation
ofnetworkblockingalgo-
rithmbased∞ARPspoofinganditsapplication[C].Lecture
S.DetectingARPspoofing:Anactive
in
Nomsin
【5】Ramachandran、‘Nandi
ComputerScience,2005:848—855.
NotesinCompumr
t优hnique[C】.LectureNdtesComputerScience,2005:239-250.
to
【9】KwonKAhS,ChungJW.Networksecuritymanagementusing
ARP
[6】SeanWhalen.Anintroduction
ARPSpoofmg[EB/OL].HttrI://spoofing【C】.I.ectllm
Science。2004:
packetstormsecurity.org/papers/protocols/.
142.149.
【7】QinghuaDeng,SongqiaoChen.ARPspoofingandcountermea-.
【10】MengXiaoming。Detectingandprecautionofnetworkspoofing
base
on
sures[J].MierocomputerDevelopment,2004(8):126・128.
ARP[J】.InformationTeclmology,2005(5):80—83.
・——5609.——
万方数据