您好,欢迎访问三七文档
电子欺骗电子欺骗•电子欺骗技术是一种利用目标网络的信任关系,即计算机之间的相互信任关系来获取计算机系统非授权访问的一种方法。如IP地址电子欺骗,就是伪造他人的源IP地址,其实质就是让一台机器来扮演另一台机器,籍以达到蒙混过关的目的。入侵者不用输入用户帐号和口令,就可以侵入目标。IP电子欺骗•IP电子欺骗就是伪造他人的源IP地址。其实质就是让一台机器扮演另一台机器。•常见的攻击过程–让被替代的机器A休眠–发现目标机器B的序列号规律–冒充机器A向机器B发出请求,算出机器应该发来什么序列号,给出机器B想要的回应。IP电子欺骗–这样就可以利用机器B对机器A的信任关系进行攻击。•IP电子欺骗并不容易:–此技术只适用于少数平台–这项技术复杂难懂,甚至对接密高手也是如此。–用户可以很容易防范IP欺骗攻击IPspoof的实现原理IP是网络层的一个非面向连接的协议,IP数据包的主要内容由源IP地址,目地IP地址,所传数据构成,IP的任务就是根据每个数据报文的目的地址,路由完成报文从源地址到目的地址的传送。至于报文在传送过程中是否丢失或出现差错,IP不会考虑。对IP来讲,源设备与目的设备没有什么关系,它们是相互独立的。IP包只是根据数据报文中的目的地址发送,因此借助高层协议的应用程序来伪造IP地址是比较容易实现的。与此同时,TCP作为保障两台通讯设备之间数据有保证的顺序传输的协议,是面向连接的,它需要连接双方都同意才能进行通讯。TCP传输双方传送的每一个字节都伴随着一个序列号(SEQ),它期待对方在接收到后产生一个应答(ACK),应答一方面通知对方数据成功收到,另一方面告知对方希望接收的下一个字节。同时,任何两台设备之间欲建立TCP连接都需要一个两方确认的起始过程,称三次握手,可分解如下面来表示:三次握手•第一步:请求方向服务方发送SYN,表示想发起一次TCP连接。我们假定这次的序列号是某个数值XTrust-TargetSYNSEQ:X•第二步:服务方产生SYN,ACK响应,并向请求方发送ACK,ACK的值为X+1,表示数据成功接收到,且告知下一次希望接收到字节的SEQ是X+1。同时,服务方向请求方发送自己的SEQ,我们假定它的序列号是某个数值Y。Target-TrustSYN,ACKSEQ:YACK:X+1•第三步:请求方向服务方发送ACK,表示接收到服务方的回应。这次它的SEQ值为X+1,同时它的ACK值为Y+1,原理同上。Trust-TargetACKSEQ:X+1ACK:Y+1完成这一步以后,请求方与服务方之间的连接开放,数据可以进行传输了。IPSpoof状态下的三次握手•第一步、Hack假冒Trust主机IP向服务方Target发送SYN,告诉Target来自他所信任的Trust主机想发起一次TCP连接,序列号为数值X,这一步实现比较简单,Hack将IP包的源地址伪造为Trust主机IP地址即可。Hack-TargetSYNSEQ:X注意:在攻击的整个过程中,必须使Trust主机与网络的正常连接中断。因为SYN请求中IP包源地址是Trust主机的,当Target收到SYN请求时,将根据IP包中源地址反馈ACK,SYN给Trust主机,但事实上Trust并未向Target发送SYN请求,所以Trust收到后会认为这是一次错误的连接,从而向Target回送RST,中断连接。这可不是我们所企求的。为了解决这个问题,在整个攻击过程中我们需要设法停止Trust主机的网络功能,这一实现很简单,用现在威力很强大的tfn2k之类的分布式拒绝服务软件攻击Trust主机,使之拒绝服务即可。IPSpoof状态下的三次握手•第二步、服务方Target产生SYN,ACK响应,并向请求方Trust主机(注意:是Trust,不是Hack,因为Target收到的IP包的源地址是Trust)发送ACK,ACK的值为X+1,表示数据成功接收到,且告知下一次希望接收到字节的SEQ是X+1。同时,Target向请求方Trust发送自己的SEQ,注意,这个数值对Hack是不可见的!!Target-TrustSYN,ACKSEQ:?ACK:X+1IPSpoof状态下的三次握手•第三步、Hack再次向服务方发送ACK,表示接收到服务方的回应——虽然实际上他并没有收到服务方Targe的SYN,ACK响应。这次它的SEQ值为X+1,同时它必须猜出ACK的值!!并加一后回馈给Target。Hack-TargetACKSEQ:X+1ACK:?+1•如果Hack能成功的猜出Target的ACK值,那么TCP的三次握手就宣告成功,Target会将Hack看作Trust主机,IPspoof最关键的技术部分得到解决!但有一点要清楚,Hack主机这种连接是“盲人”式的,Hack永远不会收到来自Target的包,因为这些反馈包都被路由到Trust主机那里了(除非黑客能将相关骨干点的路由表内容做改动,记住:IP是独立的,它只是根据源地址,目的地址在互联网上路由传送。而在Hack向Target发送的三次握手IP包中源地址是宣称为Trust主机的)举个简单例子,Hack在Target上执行ls-l/,在Hack的屏幕上不会看到任何反馈,尽管事实上Target列出了根目录下的所有内容——Target将ls-l/结果送到了Trust主机。•由上我们可以看出,IPspoof成功的关键在于猜出在第二步服务方所回应的SEQ值,有了这个值,TCP连接方可成功的建立。在早期,这是个令人头疼的问题,但随着IPspoof攻击手段的研究日益深入,一些专用的算法,技术得到应用,并产生了一些专用的c程序,如SEQ-scan,yaas等。当黑客得到这些c程序时,一切问题都将迎刃而解。•在现实中投入应用的IPspoof一般被用于有信任关系的服务器之间的欺骗。假设网上有Target,Trust,Hack三台主机,Target为我们打算愚弄的主机,Trust和Target有基于IP地址的信任关系,也就是说拥有Trust主机IP地址的设备上的用户不需要账号及密码即可进入Target。(使用window操作系统比较习惯的读者可以把这种信任理解为局域网环境下的PC间无需密码的硬盘共享)既然如此,那么我们就可以在Hack上做手脚假冒Trust主机IP地址从而骗取Target的信任。这种信任在unix中体现为r服务,比如一个大型网站的管理员除了自己的一台IP为11.22.33.44工作站外还拥有几打的sun服务器,他厌倦了一次次在各个服务器上登录时等待并输入username,passwd,那么他可以在每台服务器的根目录下生成.rhosts文件,内容为11.22.33.44+,这表示如果11.22.33.44这个IP有要求,服务器都无条件的提供可信的r服务。举例来讲,在11.22.33.44上执行rsh-lrootserver1.Yiming.comcsh-i,则该管理员即直接进入server1.Yiming.com,不需要任何账号密码。除了这种为了省事的偷懒用途,r服务在目前的网络最多的被用来远程备份,远程磁带设备和需备份文件必须有信任关系。•在上例中如果我们能假冒11.22.33.44这个IP,那么将会是什么样子?每一台信任它的服务器都会被控制!这才是管理员需要引起的注意的。•由上我们看到,因为TCP/IP本身的漏洞,IPspoof是有实现条件的,但在目前的互联网中,假冒它人IP,然后利用这个IP去攻击和这个IP无信任的关系的主机从理论上依然很难行的通。TCP会话劫持•所谓会话,就是两台主机之间的一次通讯。例如你Telnet到某台主机,这就是一次Telnet会话;你浏览某个网站,这就是一次HTTP会话。而会话劫持(SessionHijack),就是结合了嗅探以及欺骗技术在内的攻击手段。例如,在一次正常的会话过程当中,攻击者作为第三方参与到其中,他可以在正常数据包中插入恶意数据,也可以在双方的会话当中进行简听,甚至可以是代替某一方主机接管会话。我们可以把会话劫持攻击分为两种类型:1)中间人攻击(ManInTheMiddle,简称MITM),2)注射式攻击(Injection);并且还可以把会话劫持攻击分为两种形式:1)被动劫持,2)主动劫持;被动劫持实际上就是在后台监视双方会话的数据流,丛中获得敏感数据;而主动劫持则是将会话当中的某一台主机“踢”下线,然后由攻击者取代并接管会话,这种攻击方法危害非常大,攻击者可以做很多事情,MITM攻击简介•这也就是我们常说的“中间人攻击”,在网上讨论比较多的就是SMB会话劫持,这也是一个典型的中间人攻击。要想正确的实施中间人攻击,攻击者首先需要使用ARP欺骗或DNS欺骗,将会话双方的通讯流暗中改变,而这种改变对于会话双方来说是完全透明的。DNS(DomainNameSystem),即域名服务器,我们几乎天天都要用到。对于正常的DNS请求,例如在浏览器输入,然后系统先查看Hosts文件,如果有相对应的IP,就使用这个IP地址访问网站(其实,利用Hosts文件就可以实现DNS欺骗);如果没有,才去请求DNS服务器;DNS服务器在接收到请求之后,解析出其对应的IP地址,返回给我本地,最后你就可以登陆到黑客防线的网站。而DNS欺骗则是,目标将其DNS请求发送到攻击者这里,然后攻击者伪造DNS响应,将正确的IP地址替换为其他IP,之后你就登陆了这个攻击者指定的IP,而攻击者早就在这个IP中安排好了恶意网页,可你却在不知不觉中已经被攻击者下了“套”……DNS欺骗也可以在广域网中进行,比较常见的有“Web服务器重定向”、“邮件服务器重定向”等等。中间人攻击都改变正常的通讯流,它就相当于会话双方之间的一个透明代理,可以得到一切想知道的信息,甚至是利用一些有缺陷的加密协议来实现。注射式攻击简介•这种方式的会话劫持比中间人攻击实现起来简单一些,它不会改变会话双方的通讯流,而是在双方正常的通讯流插入恶意数据。在注射式攻击中,需要实现两种技术:1)IP欺骗,2)预测TCP序列号。如果是UDP协议,只需伪造IP地址,然后发送过去就可以了,因为UDP没有所谓的TCP三次握手,但基于UDP的应用协议有流控机制,所以也要做一些额外的工作。对于IP欺骗,有两种情况需要用到:1)隐藏自己的IP地址;2)利用两台机器之间的信任关系实施入侵。在Unix/Linux平台上,可以直接使用Socket构造IP包,在IP头中填上虚假的IP地址,但需要root权限;在Windows平台上,不能使用Winsock,需要使用Winpacp(也可以使用Libnet)。基于TCP协议的会话劫持•根据TCP/IP中的规定,使用TCP协议进行通讯需要提供两段序列号,TCP协议使用这两段序列号确保连接同步以及安全通讯,系统的TCP/IP协议栈依据时间或线性的产生这些值。在通讯过程中,双方的序列号是相互依赖的,这也就是为什么称TCP协议是可靠的传输协议(具体可参见RFC793)。如果攻击者在这个时候进行会话劫持,结果肯定是失败,因为会话双方“不认识”攻击者,攻击者不能提供合法的序列号;所以,会话劫持的关键是预测正确的序列号,攻击者可以采取嗅探技术获得这些信息。TCP协议的序列号在每一个数据包中,都有两段序列号,它们分别为:SEQ:当前数据包中的第一个字节的序号ACK:期望收到对方数据包中第一个字节的序号假设双方现在需要进行一次连接:S_SEQ:将要发送的下一个字节的序号S_ACK:将要接收的下一个字节的序号S_WIND:接收窗口//以上为服务器(Server)C_SEQ:将要发送的下一个字节的序号C_ACK:将要接收的下一个字节的序号C_WIND:接收窗口//以上为客户端(Client)它们之间必须符合下面的逻辑关系,否则该数据包会被丢弃,并且返回一个ACK包(包含期望的序列号)。C_ACK=C_SEQ=C_ACK+C_WINDS_ACK=S_SEQ=S_ACK+S_WIND如果不符合上边的逻辑关系,就会引
本文标题:电子欺骗
链接地址:https://www.777doc.com/doc-4338645 .html