⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 通过ip欺骗进行攻击的原理及预防.txt

📁 BBS的精华之处
💻 TXT
📖 第 1 页 / 共 2 页
字号:
IP欺骗由若干步骤组成,这里先简要地措述一下,随后再做详尽地解释。 先做以下假定 
:首先,目标主机已经选一。其次,信任模式已被发现, 并找到了一个被目标主机信任 
的主机。黑客为了进行IP欺骗,进行以下工作: 使得被信任的主机丧失工作能力,同时 
采样目标主机发出的TCP序列号, 猜测出它的数据序列号。然后,伪装成被信任的主机, 
同时建立起与目标 主机基于地址验证的应用连接。如果成功,黑客可以使用一种简单的 
命令 放置一个系统后门,以进行非授权操作。 
IP 欺骗是一种不光彩的进攻 
一个经常被忽略,但却是非常关键的事实就是IP欺骗是不光彩的进攻。 进攻者将取代真 
正被信任的主机,从而破坏目标主机的安全体系。黑客常常 利用如下所措述的方法使得 
真正被信任的主机丧失工作能力。安全防范程度 不高的主机在它正在和一个可以信赖的 
主机通信时,处于Internet某个阴暗 角落的一个攻击者实际上是可以使真正被信任的主 
机处于停顿状态,而自己 大量模信心它的数据包,将之发向目标主机。可悲的是目标主 
机全然没有 感觉。由攻击者模信心的TCPA数据包到达了目标地址,而由目标地址限往真 
 正被信任主机的TCPA数据包却永远到达不了攻击者的主机 (两者的真实IP地址不同(。 
当然,一理目标地址发送的TCPA数据包到达 了真正被信任的主机时,信息虽然进入协议 
堆本,到达TCP蓰理模块,但是会 被取消。所以,攻击者需要知道目标主机发送了什么, 
期待什么样的反应。 攻击者虽然不能看到目标主机发送的内容,但是它能预料到将发送 
的内容。 围绕着这些内容,攻击者将展开它不光彩的进攻。 
信任模式 
在选择好进攻目标后,黑客需要确定该主机的信任模式。为了讨论起见, 我们假设目标 
主机确实信任某个主机。找出某个主机信任谁或不信任谁是 不容易的。showmount -e’ 
可以显示出文件系统在哪里被export,同时 ‘rpcinfo’也能提供有价值的信息。如果得 
到目标主机的足够背景信息 ,进行攻击是不会太困难的。如果所有尝试都失败了,黑客 
会尝试相邻的IP地址 ,以获取有价值的信息。 
使被信任主机丧失工作能力 
一旦发现被信任的主机,为了伪装成它,往往使其丧失工作能力, 由于攻击者将要代替 
零点正的被信任主机,他必须确保真正被信任的主机 不能接收到任何有效的网络数据, 
否则将会被揭穿,。有许多方法可以做到这些 。在此,笔者只讨论一种方法,妈了“TCP 
 SYN 淹没”。前面已经谈到, 建立TCP连接的第一步就是客户端向服务器发送SYN请求。 
  
通常,服务器将向客户端发送SYN/ACK信号。这里客户端是由IP地址确定的。 客户端随后 
向服务器发送ACK(见图1),然后数据传输就可以进行了。 然而,TCP处理模块有一个处 
理并行SYN请求的最上限,它可以看作是 存放多条连接的队列长度。其中,连接数目包括 
了那些三步握手法没有 最终完成的连接,也包括了那些已成功完成握手但还没有被应用 
程序所 调用的连接。如果达到队列的最上限,TCP将拒绝所有连接请求,直到 处理了部 
分连接链路,因此,这里是有机可乘的,黑客往往向被进攻 目标的TCPA端口发送大量 
SYN请求,这些请求的源地址是使用一个合法的 但是虚假的IP地址(可能使用该合法IP地 
址的主机没有开机)。 而爱攻击的主机往往是会向该IP地址发送响应的,但可惜是查无 
音信。 与此同时IP包会通知受攻击主机的TCP:该主机不可到达,但不TCP会认为 是一种 
暂时错误,并继续尝试连接(比如继续对该IP地址进行路由, 发出SYN/ACK数据包等等) 
,直至确信无法连接。当然,这时已流逝了 大量的宝贵时间。值得注意的是,黑客们是 
不会使用那些正在工作的IP地址的。 因为这样一来,真正IP持有者会收到SYN/ACK响应, 
而随之发送RST给受攻击 主机,从而数开连接。前面所措述的过程可以表示为图2的模式 
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 
图2 
在时刻1时,攻击主机把大批SYN请求发送到受攻击目标(在此阶段,是那个 被信任的主机 
),使其TCP队列充满.在时刻2时,受攻击目标向它所相信的IP 地址(虚假的IP)作出 
SYN/ACK反应;在这一期间,受攻击主机的TCP模块会对 所有新的请求予以忽视.不同的TCP 
保持连接队列的长度是有所不同的.BSD 一般是5,Linux一般是6。使被信任主机失去处理 
新连接的能力,所赢得的 宝贵空隙时间就是黑客进行攻击目标主机的时间,这使其伪装 
成被信任主机 成为可能。 
序列号取样和猜测 
前面已经提到,要对目标主机进行攻击,必须知道目标主机使用的数据包 序列号。现在 
,我们来讨论黑客是如何进行预测的。他们先与被攻击主机 的一个端口(SMTP是一个很 
好的选择)建立起政党的连接。通常,这个 过程被重复若干次,并将目标主机最后所发 
送的ISN存储起来。黑客还 需要估计他的主机与被信任主机之间的RTT时间(往返时间) 
,这个RTT时间 是通过多次统计平均求出的。RTT对于估计下下个ISN是非常重要的。前面 
已经 提到每秒钟ISN是非常重要的。前面已经提到每秒种ISN是非常重要的。前面 已经提 
到每秒ISN是非常重要的。前面已经提到每秒钟ISN增加128000,每次 连接增加64000。现 
在就不难估计出ISN的大小了,它是128000乘以RTT的一半, 如果此时目标主机刚刚建立 
过一个连接,那么再加上一个64000,再估计出ISN 大小后,立即就开始进行攻击。当黑 
客的虚假TCP数据包进目标主机时, 
如果估计的序列号是准确的,进入的数据将被放置在接收缓冲器以供使用。 
如果估计的序列号小于期待的数字,那么将被放弃。 
如果估计的序列号大于期待的数字,并且在滑动窗口(前面讲的缓冲)之内, 那么,该 
数据被认为是一个未来的数据,TCP模块将等待其它缺少的数据。 如果估计的序列号大于 
期待的数字,并且不在滑动窗口(前面讲的缓冲)之内, 那么,TCP将会放弃该数据并返 
回一个期望获得的数据序列号。下面将要提到, 黑客的主机并不能收到返回的数据序列 
号。 
破坏行为...... 
图3是攻击的全过程. 
1 z(B) -----SYN-----> A 
2 B <----SYN/ACK---- A 
3 Z(B) -----ACK-----> A 
4 Z(B) -----PSH-----> A 
图3 

攻击者伪装成被信任主机的IP地址,此时,该主机仍在处在停顿状态 (前面讲的丧失处理能 
力),然后向目标主机的513端口(rlogin的端口号) 发送连接请求,如时刻1所示.在时刻2, 
目标主机对连接请求作出反应, 发送SYN/ACK数据包给被信任主机(如果被信任主机处于正 
常工作状诚心, 那么会认为是错误并立即向目标主机返回RST数据包,但此时它处于停顿状 
态). 按照计划,被信任主机会抛弃该SYN/ACK数据包,然后在时刻3,攻击者向目标 主机发 
送ACK数据包,该ACK使用前面估计的序列号加1(因为是正确认).如果 攻击者估计正胡的话 
,目标主机将会接收该ACK。至此连接正式建立起来了。 在时刻4,将开始数据传输。一 
般地,攻击者将在系统中放置一个后门, 以便侵入。经常会使用‘CAI+ + >> ~/. 
rhosts。之所以这样是因为, 这个办法迅速、简单地为下一次侵入铺平了道路。 
工作原理分析 
IP欺骗之所以可以成功是因为信任服务的基础仅仅是建立在网络地址的验证上。 IP地址 
是容易被伪造的。攻击过程最难的部分是进行序列号估计,估计精度 的高低是成功与否 
的关键所在。 
预防措施 
抛弃基于地址的信任策略 
阻止这类攻击的一种非常容易的办法就是放弃以地址为基础的验证。不允许 R*类远程调 
用命令的使用;删除rhosts文件;清空/etc/hosts equiv文件。 这将迫使所有用户使用 
其它远程通信手段。如telnet、ssh、skey等等。 
进行包过滤 
如果您的网络是通过路由器接人Internet的,那么可以利用您的路由器来 进行包过滤。 
确信只有您的内部LAN可以使用信任关系,而内部LAN上的 主LAN以外的主机要慎重处理。 
您的路由器可以帮助您过滤掉所有来自于外部 而希望与内部建立连接的请求。 
使用加密法 
阻止IP欺骗的另一种明显的方法是在通信时要求加密传输和通信和验证。 当有多种手段 
并存时,可能加密方法最为适用。 
使用随机化的初始序列号 
黑客攻击得以成功实现的一个很重要的因素就是,序列号不是随机选择的 或者随机增加 
的,Bellovin描述了一种弥补TCP不足的方法,就是分割序列号 空是。每一个连接将有自 
己独立的序列号空间。序列号将仍然按照以前的 方式增加,但是在这些序列号空间中没 
有明显的关系。可以通过下列公式来 说明: 
ISN=M+F(localhost, localport, remotehost,remoteport) 
M:4微秒定时器 
F:加密HASH函数 
F产生的序列号,对于外部来说是不应该能够被计算出或者被猜测出的。 Bellovin建议F 
是一个结合连接标识符和特殊矢量(随机数,基于启动时间 的密码)的HASH函数。 
  
  
  

  
-- 
                                                              ォォ

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -