欺骗攻击类型
IP欺骗:公司使用其他计算机的IP地址来获得信息或者得到特权。
电子信件欺骗:电子信件的发送方地址的欺骗。比如说,电子信件看上去是来自TOM,但事实上TOM没有发信,是冒充TOM的人发的信。
WEB欺骗:越来越多的电子上午使用互连网。为了利用网站做电子商务,人们不得不被鉴别并被授权来得到信任。在任何实体必须被信任的时候,欺骗的机会出现了。
非技术类欺骗:这些类型的攻击是把经理集中在攻击攻击的人力因素上。它需要通过社会工程技术来实现。
※ IP欺骗
IP欺骗的三种基本形式是:
基本地址变化
使用源路由选择截取数据包
利用UNIX机器上的信息关系
(1) 基本地址变化
IP欺骗的最基本形式是搞清楚一个网络的配置,然后改变自己的IP地址,伪装成别人机器的IP地址。这样做会使所有被发送的数据包都带有假冒的源地址。这是非常低等级的技术,因为所有的应答都回到了被盗用了地址的机器上,而不是攻击者的机器。这被叫做盲目飞行攻击(flying blind attack),或者叫做单向攻击(one-way attack)。
这种攻击虽有一些限制,但就某一特定类型的拒绝服务攻击而言,只需要一个数据包去撞击机器,而且地址欺骗会让人们更难于找到攻击者的根源。对某些特定的攻击,如果系统受到了意想不到的数据包,说明对系统的攻击仍然在进行。而且因为UDP是无连接的,所以单独的UDP数据包会被发送到受害方的系统中。
(2)源路由攻击
有关欺骗的一个重要问题是被盗用的地址会收到返回的信息流,而攻击者从来不会接受到它们。但是对于更高级的攻击,攻击者更愿意看到对话的双方。
为了得到从目的机器返回到源机器的流量,一个方法是攻击者插入到正常情况下流量经过的通路上。这是非常困难的,因为攻击者必须攻击受害网络上的一台机器,而且不存在任何保障措施让流量继续通过攻击者的机器。我们知道互联网是采用动态路由的,它每天、每小时,甚至每分钟都会有变化。有一种方法能够保证数据包会经过一条给定的路径,而且作为一次欺骗,保证它经过攻击者的机器。这么做需要使用源路由,它被包含在TCP/IP协议组中。源路由允许指定一条数据包必须经过的路径。它包括两种类型的源路由:
宽松的源路由选择(LSR):
发送端指明了流量或者数据包必须经过的IP地址清单,但如果它需要,也可以经过一些其他的地址。换句话说,不用考虑数据包经过的确切地址,只要它经过这些地址就可以。
严格的源路由选择(SRS):
发送端指明IP数据包必须经过的确切地址。如果没有经过这一确切路径,数据包会被丢弃,并返回一个ICMP差错报文。换句话说,必须考虑数据包经过的确切路径,而且如果由于某种原因没有经过这条路径,这个数据包就不能被发送。
源站路由使用IP首部一个39个字节的源路由选项地址来工作。因为源站路由被放入了IP首部,所以对指定的IP地址数目会有限制。因为源路由选项字段是39个字节,其中3个字节是附加信息,那么剩下的36个字节是地址信息。每一个地址是4个字节。如果36除4,会有9个地址的空间,但情况不是那么简单。因为最后一个地址必须是目的地址,所以它只留下8个地址的空间。可知随着互联网的发展,会出现IP地址的数目大于8的情况。在这些情况下,就只能使用宽松的源站选路,因为如果不能找到确切的路径,那么严格的源路由选路就会丢弃那个数据包。
基本上源路由的工作过程是这样的:取出源站路由清单中第一个地址,使它成为目的地址。如果是严格的源路由选择,那么它必须是下一跳;如果不是,它就会被丢弃。对于宽松的源路由选择,在数据包到达清单上指出的地址以前,它经过多少跳是没有关系的。在它到达目的地址后,它从清单中取出下一个地址,使它变为目的地址。接下来它继续重复这个过程,直到找到目的地址或者数据包不能被路由为止。
需要指出的重要的一点是如果发送端指定了到达目的地址的源路由,那么目的机器能够自动地使用源路由返回到发送端,这就是为什么它那么危险的原因,可能不知道有人正在使用它。可能回答一个数据包,而且如果发送端使用了源路由,就会在未知的情况下使用它。
源路由为欺骗带来了巨大的利益。攻击者使用假冒的地址向目的地发送数据包,但指定了宽松的源路由选择,并把他的IP地址填入地址清单中。那么,当接受端回应时,数据包返回到假冒的IP地址处,而不是前面它经过的攻击者的机器。攻击者没有盲目飞行,因为他能看到对话双方。
(3)信任关系
在Unix领域中,信任关系能够很容易得到。假如在主机A和B上各一个帐户,在使用当中会发现,在主机A上使用时需要输入在A上的相应帐户,在主机B上使用时必须输入在B上的帐户,主机A和B把你当作两个互不相关的用户,显然有些不便。为了减少这种不便,可以在主机A和主机B中建立起两个帐户的相互信任关系。在主机A和主机B上你的home目录中创建.rhosts文件。从主机A上,在你的home目录中输入''echo " B username "> ~/.rhosts'';从主机B上,在你的home目录中输入''echo " A username " >~/.rhosts''。至此, 你能毫无阻碍地使用任何以r*开头的远程调用命令,如:rlogin,rcall,rsh 等,而无口令验证的烦恼。这些命令将允许以地址为基础的验证,或者允许或者拒绝以IP地址为基础的存取服务。
这里的信任关系是基于IP地址的。
Rlogin
Rlogin是一个简单的客户/服务器程序,它利用TCP传输。Rlogin 允许用户从一台主机登录到另一台主机上,并且,如果目标主机信任它,Rlogin 将允许在不应答口令的情况下使用目标主机上的资源。安全验证完全是基于源主机的IP 地址。因此,根据以上所举的例子,我们能利用Rlogin来从B远程登录到A,而且不会被提示输入口令。
IP欺骗
IP欺骗由若干步骤组成,这里先简要地描述一下,随后再做详尽地解释。先做以下假定:首先,目标主机已经选定。其次,信任模式已被发现,并找到了一个被目标主机信任的主机。黑客为了进行IP欺骗,进行以下工作:使得被信任的主机丧失工作能力,同时采样目标主机发出的TCP序列号,猜测出它的数据序列号。然后,伪装成被信任的主机,同时建立起与目标主机基于地址验证的应用连接。如果成功,黑客可以使用一种简单的命令放置一个系统后门,以进行非授权操作。
使被信任主机丧失工作能力
一旦发现被信任的主机,为了伪装成它,往往使其丧失工作能力 。由于攻击者将要代替真正的被信任主机,他必须确保真正被信任的主机不能接收到任何有效的网络数据,否则将会被揭穿。有许多方法可以做到这些。这里介绍"TCP SYN淹没"。
前面已经谈到,建立TCP连接的第一步就是客户端向服务器发送SYN 请求。
通常,服务器将向客户端发送SYN/ACK信号。这里客户端是由IP 地址确定的。客户端随后向服务器发送ACK,然后数据传输就可以进行了。然而,TCP处理模块有一个处理并行SYN请求的最上限,它可以看作是存放多条连接的队列长度。其中,连接数目包括了那些三步握手法没有最终完成的连接,也包括了那些已成功完成握手,但还没有被应用程序所调用的连接。如果达到队列的最上限,TCP将拒绝所有连接请求,直至处理了部分连接链路。因此,这里是有机可乘的。
黑客往往向被进攻目标的TCP端口发送大量SYN请求,这些请求的 源地址是使用一个合法的但是虚假的IP地址(可能使用该合法IP地址的主机没有开机)。而受攻击的主机往往是会向该IP地址发送响应的, 但可惜是杳无音信。与此同时IP包会通知受攻击主机的TCP:该主机不可到达,但不幸的是TCP会认为是一种暂时错误,并继续尝试连接 (比如继续对该IP地址进行路由,发出SYN/ACK数据包等等),直至确信无法连接。当然,这时已流逝了大量的宝贵时间。值得注意的是, 黑客们是不会使用那些正在工作的IP地址的,因为这样一来,真正IP持有者会收到SYN/ACK响应,而随之发送RST给受攻击主机,从而断开连接。前面所描述的过程可以表示为如下模式。
1 Z(X)---SYN---> B
Z(X)---SYN--->B
Z(X)---SYN--->B
2 X<---SYN/ACK--B
X<---SYN/ACK--B
3 X<---RST---B
在时刻1时,攻击主机把大批SYN请求发送到受攻击目标(在此阶段,是那个被信任的主机),使其TCP队列充满。在时刻2时,受攻击目标向它所相信的IP地址(虚假的IP)作出SYN/ACK反应。在这一期间,受攻击主机的TCP模块会对所有新的请求予以忽视。不同的TCP保持连接队列的长度是有所不同的。BSD一般是5,Linux一般是6。使被信任主机失去处理新连接的能力,所赢得的宝贵空隙时间就是黑客进行攻击目标主机的时间,这使其伪装成被信任主机成为可能。
※ 电子邮件欺骗
攻击者使用电子邮件欺骗有三个目的:第一,隐藏自己的身份。第二,如果攻击者想冒充别人,他能假冒那个人的电子邮件。使用这种方法,无论谁接受到这封邮件,他会认为它时攻击者冒充的那个人发的。第三,电子邮件欺骗能被看作时社会工程的一种表现形式。例如,如果攻击者想让用户发给他一份敏感文件,攻击者伪装他的邮件地址,使用户认为这是老板的要求,用户可能会发给他这封邮件。
执行电子邮件欺骗有三种基本方法,每一种有不同难度级别,执行不同层次的隐蔽:
相似的电子邮件地址
修改邮件客户
远程登录到端口25
(1)相似的电子邮件地址
使用这种类型的攻击,攻击者找到一个公司的老板或者高级管理人员的名字。有了这个名字后,攻击者注册一个看上去象高级管理人员名字的邮件地址。他只需简单的进入hotmail等网站或者提供免费邮件的公司,签署这样一个帐号。然后在电子邮件的别名字段填入管理者的名字。我们知道,别名字段是显示在用户的邮件客户的发件人字段中。因为邮件地址似乎是正确的,所以受信人很可能会回复它,这样攻击者就会得到想要的信息。
当用户收到邮件时,注意到它没有完整的电子邮件地址。这是因为把邮件客户设成只显示名字或者别名字段。虽然通过观察邮件头,用户能看到真实的邮件地址是什么,但是很少有用户这么做。
(2)修改邮件客户
当用户发出一封电子邮件时,没有对发件人地址进行验证或者确认,因此如果攻击者有一个象outlook的邮件客户,他能够进入并且指定他想出现在发件人中的所有地址。
攻击者能够指定他想要的任何返回地址。因此当用户回信时,答复回到真实的地址,而不是而到被盗用了地址的人那里。
(3)远程联系,登录到端口25
邮件欺骗一个更复杂的方法是远程登录到邮件服务器的端口25,邮件服务器使用它在互联网上发送邮件。当攻击者想发送给用户信息时,他先写一个信息,然后单击发送。接下来他的邮件服务器与用户的邮件服务器联系,在端口25发送信息,转移信息。用户的邮件服务器然后把这个信息发送给用户。
因为邮件服务器使用端口25发送信息,所以没有理由说明攻击者不会连接到25,装作是一台邮件服务器,然后写一个信息。有时攻击者会使用端口扫描来判断哪个端口25是开放的,以此找到邮件服务器的IP地址。
越来越多的系统管理员正在意识到攻击者在使用他们的系统进行欺骗,所以更新版的邮件服务器不允许邮件转发,并且一个邮件服务器应该只发送或者接受一个指定域名或者公司的邮件。
※ WEB欺骗
(1)基本的网站欺骗
攻击者会利用现在注册一个域名没有任何要求的现状,抢先或特别设计注册一个非常类似的有欺骗性的站点。当一个用户浏览了这个假冒地址,并与站点作了一些信息交流,如填写了一些表单,站点会给出一些响应的提示和回答,同时记录下用户的信息,并给这个用户一个cookie,以便能随时跟踪这个用户。典型的例子是假冒金融机构,偷盗客户的信用卡信息。
(2)man-in-the-middle攻击
可以说所有不同类型的攻击都能使用man-in-the-middle攻击,不止是WEB欺骗。在man-in-the-middle攻击中,攻击者必须找到自己的位置,以使进出受害方的所有流量都经过他。攻击者可通过攻击外部路由器来实现,因为所有进出公司组织的流量不得不经过这个路由器。
man-in-the-middle原理是,攻击者通过某种方法(比如攻破DNS服务器,DNS欺骗,控制路由器)把目标机器域名的对应的IP到攻击者所控制的机器,这样所有外界对目标机器的请求将涌向攻击者的机器,这时攻击者可以转发所有的请求到目标机器,让目标机器进行处理,再把处理结果发回到发出请求的客户机。实际上,就是把攻击者的机器设成目标机器的代理服务器,这样,所有外界进入目标机器的数据流都在攻击者的监视之下了,攻击者可以任意窃听甚至修改数据流里的数据,收集到大量的信息
(3)URL重写
在URL重写中,就像在攻击中一样,攻击者把自己插入到通信流中,唯一不同的是,在攻击中,当流量通过互联网时,攻击者必须在物理上能够截取它。有时这非常难于执行,因此攻击者使用URL重写。在URL重写中,攻击者能够把网络流量转到攻击者控制的另一个站点上。
利用URL地址,使地址都向攻击者的Web服务器,即攻击者可以将自已的Web地址加在所有URL地址的前面。这样,当用户与站点进行安全链接时,就会毫不防备地进入攻击者的服务器,于是用记的所有信息便处于攻击者的监视之中。但由于浏览器材一般均设有地址栏和状态栏,当浏览器与某个站点边接时,可以在地址栏和状态样中获得连接中的Web站点地址及其相关的传输信息,用户由此可以发现问题,所以攻击者往往在URL地址重写的同时,利用相关信息排盖技术,即一般 用JavaScript程序来重写地址栏和状态栏,以达到其掩盖欺骗的目的。
※ 非技术类欺骗
通常把基于非计算机的技术叫做社交工程(也有叫社会工程的)。社交工程中,攻击者设法设计让人相信它是其他人。这就像攻击者在给人打电话时说自己时某人一样的简单。因为他说了一些大概只有那个人知道的信息,所以受害人相信他。
社交工程的核心是,攻击者设法伪装自己的身份并设计让受害人泄密私人信息。这些攻击的目标是搜集信息来侵入计算机系统的,通常通过欺骗某人使之泄露出口令或者在系统中建立个新帐号。其他目标使侦察环境,找出安装了什么硬件和软件,服务器上装载了什么补丁等等。通过社会工程得到的信息是无限的。http://netadmin.77169.com/HTML/20051209002458.html