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

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

📁 BBS的精华之处
💻 TXT
📖 第 1 页 / 共 2 页
字号:
发信人: wugang (Just do it), 信区: Hacker 
标  题: 通过IP欺骗进行攻击的原理及预防 
发信站: 哈工大紫丁香 (2001年08月31日00:12:16 星期五), 站内信件 
  
发布者:netbull 阅读次数:34 
  
  
  
本文的目的在于向读者解释IP欺骗的实现方法和预防措施。它要求您掌握 有关UIIX和 
TCP/IP的少量知识。如果您没有,也没有关系,相信下面的说明能 给您以足够的背景知 
识。 
IP欺骗是适用于TCP/IP环境的一种复杂的技术攻击,它由若干部分组成。 目前,在 
Internet领域中,它成为黑客攻击时采用的一种重要手段,因此有必 要充分了解它的工 
作原理和防范措施;以充分保护自己的合法权益。 
实际上,IP欺骗不是进攻的结果,而是进攻的手段。进攻实际上是信任关 系的破坏。然 
而,在本文中,IP欺骗将被看作是涉及到的整个攻击,对于利用IP 欺骗建立起来的虚假 
信任关系进行破坏的其它行为不作为我们讨论的内容。 本文将详尽地解释攻击的全过程 
。包括有关的操作系统与网络信息。 
背景知识(术语说明) 
A:表示目标主机 
B:表示对于A来说,可信任的主机 
X:表示不能到达的主机 
Z:表示进攻主机 
1(2):主机1化装成主机2 
图示符号定义 
本文中有若干图示,它们将类比以下示例进行解释: 
时间序列 主机A 控制 主机B 
1 A --SYN--> B 
时间序列;时间流逝的单位,可以无究细化。一般认为是很小的单位, 表示事件发生的 
先后顺序。 
主机A:参与一次TCP对话的机器。 
控制:显示有关TCP控制字段头部的控制字符和该字段的流动方向。 
主机B:参与一次TCP对话的机器。 
这个图示中,在第一参考时间点上主机A发送TCP字段给主机B,控制字段中的 SYN控制位 
将作为该TCP字段的主要信息。除非特别说明,我们一般不关心TCP 字段中的数据部分。 
  
信任关系 
在Unix领域中,信任关系能够很容易得到。假如您在主机A和B上各有一个账户 ,您在使 
用当中发现,在主机A上使用时需要输入在A上的相应帐户,在主机B上 使用时必须输入在 
B上的帐户,主机A和B把您当作两个互不相关的用户,显然有 些不便。为了减少这种不便 
,您可以在主机A和主机B中建立起两个帐户的相互信 任关系,在主机A和主机B上您的 
home目录中创建.rhosts文件.从主机A上, 在您的home目录中输入e-cho" busername"> 
~/.rhosts;从主机B上,在您的 home目录中输入echo" A username">~/.rhosts.至此,您 
能毫无阻碍地使用 任何以r*开头的远程调用命令,如:rlogin,rcall,rsh等,而无口 
令验证的 烦恼。这些命令将允计以地址为基础的验证,或者允许或者拒绝以IP地址为基 
础 的存取服务。 
Rlogin 
Rlogin是一个简单的客户/服务器程序,它利用TCP传输。Rlogin允许用户从一台 主机登 
录到另一台主机上,并且,如果目标主机信任它,Rlogin将允许在不应答 口令的情况下 
使用目标主机上的资源,安全对外开放证完全是基于源主机的IP 地址,因此,根据以上 
所举的例子,我们能利用Rlogin来从B远程登录到A,而且 不会被提示输入口令, 
lnternet协议(IP) 
IP是TCP/IP协议组中非面向连接、非可靠传输的网络协议。它由两个数32bit的 头字段提 
供地址信息。IP数据包占TCP/IP协议网络流量中的很大部分,可以说明 最为繁书记的部 
分。IP的工作在于在网络环境中发送数据包,它不提供保证 可靠性的任何机制,对于可 
靠性的要求,由于层协议来完成。IP只是发送数据包 ,并且保证它的完整性。如果不能 
收到完整的IP数据包,IP会向源地址发送一个 ICMP错误信息,希望重新处理。然而这个 
包也可能丢失(ICMP是网际控制消息 协议,Internet Control Message Protocol,它 
是用于根据网络条件保证数据 传送的协议,主要是向IP层或其它层发送不同的错误信息 
)。由于IP是非面向 连接的,所以不保持任何连接状态的信息。每个IP数据包被松散地 
发送出去而 不关心前一个和后一个数据包的情况。由此我们不难看出,可以对IP堆本进 
行 修改,在源地址和目的地址中放入任意满足要求的IP地址,也就是说,提供 虚假的 
IP地址。 
传输控制协议(TCP) 
TCP是在TCP/IP协议组中面向边接、提供可靠传输的协议。面向连接意味着参 与对话的两 
个主机必须首先建立起连接,然后才能进行数据交换。可靠性是由 数据包中的多位控制 
字来提供的,但是,其中仅仅有两个是与我们的讨论有关。 它们是数据序列和数据确认 
,分别有SYN和ACK来表示。TCP向每一个数据字节 分配一个序列号,并且可以向已成功接 
收的、源地址所发送的数据包表示确认 (目的地址ACK所确认的数据包序列是源地址的数 
据包序列,而不是自己发送 的数据包序列(。ACK在确认的同时还携带也下一个期望获得 
的数据序列号。 显然,TCP提供的这种可靠性相对于IP来说更难于愚弄。 
序列编号、确认和其它标志信息 
由于TCP是基于可靠性的,它能够提供处理数据包丢失,重复或是顺序率乱 等不良情况的 
机制实际上,通过向所传送出的所有字节分配序列编号, 并且期待接收端对发送端所发 
出的数据提供收旋确认,TCP就能保证可靠的传送。 接收端利用序列号确保数据的先后顺 
序,除去重复的数据包。TCP序列编号可以 看作是否32位的计数器。它们从0至此2/32-1 
排列。每一个TCP连接 (由一定的标未位来表示)交换的数据都是顺序编号的。在TCPA数 
据包中定义 序列号(SYN)的标示位位于数据段的前端。确认位(ACK)对所接收的数据 
 进行确认,并且指出下一个期待接收的数据序列号。 
TCP通过滑动窗口听要领来进行流量控制。设想在发送端发送数据的速度很快 而接收端接 
收速度却很慢的情况下,为了保证数据不丢失,显然需要进行流量 控制协调好通信双方 
的工作节奏。所谓滑动窗口,可以理解成接收端所能提供 的缓冲区大小。TCP利用一个滑 
动的窗口来告诉发送端对它所发送的数据能提供 多大的缓冲区。由于窗口由不得16位 
BIT所定义,所以接收端TCP能最大提供 65535个字节的缓冲。由此,可以利用窗口大小和 
第一个数据的序列号计算出 最大可接收的数据序列号。 
其它TCP标示位有RST(连接复位,Reset the connection)、PSH (压入功能,Push 
function)如果RST被接收,TCP连接将立即断开。 RST通常在接收端接收到一个与当前连 
接不相关的数据包时被发送。 有些时候,TCP模块需要立即传送数据而不能等整段都充满 
时再传。 一个高层的进程将会触发在TCP头部的PSH标示,并且告诉TCPA模块立即 将所有 
排列好的数据发给数据接收端。FIN表示一个应用连接结束。 当接收端接收到FIN时,确 
认它,认为将接收不到任何数据了。 
TCP连接的建立 
为了利用TCP连接交换数据,主机间首先必须建立一个连接。TCP建立连接时 可以分为3个 
步骤,称为三步握手法。如果主机A运行rlogin客户程序, 并且希望连接到主机B上的 
rlogin daemon 服务器程序上,连接过程如图1所示。 
1 A ---SYN---> B 
2 A <--SYN/ACK--- B 
3 A ---ACK---> B 
图一 
需要提醒读者的是,主机A和B的TCP模块分别使用自己的序列编号。在时刻1时, 客户端 
通过设置标志位SYN=1告诉服务器它需要建立连接。同时,客户端在其 TCP头中的序列号 
领域SEQ放置了它的初始序列号(ISN),并且告诉服务器序 列号标示域是有效的,应该 
被检查。在时刻2时,服务器端在接收了上面的 SYN后,作出的反应是将自己的ISN和对客 
户端的ACKA发向客户端并且千知 下一个期待获得的数据序列号是(ISN+1)。客户端在第 
一流时刻,对服务器 的ISN进行确认。这时,数据传输就可以进行了。 
ISN与序列号的递增 
了解序数编号如何选择初始序列号和如何根据时间变化是很重要的。似乎 应该有这种情 
况,当主机启动后序列编号初始化为1,但实际上并非如此。 初始序列号是由tcp_init函 
数确定的。ISN每秒增加工厂128000,如果有连接 出现,每次连接将反计数器的数值增加 
64000。很显然,这使得用于表示ISN的 32位计数器在没有连接的情况下每9.32小时复位 
一次。之所以这样,是因为 这样有利于最大限度地减少旧有连接的信息干扰当前连接的 
机会。这里运用了 望2MSL等待时间的概念(不在本文讨论的范围之内。)如果初始序列 
号是 随意选择的,那么不能保证现有序列号是不同于先前的。假设有这样一种情况, 在 
一个路由回路中的数据包最终跳出了循环,回到了“旧有”的连接 (此时其实是不同于 
前者的现有连接(,显然会发生对现有连接的干扰。 
端口号 
为了提供对TCP模块的并行访问,TCP提供了叫做端口的用户接口。端口被 操作系统内核 
利用来标示不同的网络进程,也就是严格区分传输层入口的标示 (就是说,IP不关心他 
们的存在)。TCP端口与IP地址一起提供网络端到端的 通信。事实上,在任何时刻任何 
Internet连接都能由4个要素来措述:源IP地址、 源地址端口号、目的IP地址和目的地址 
端口号。服务器程序一般被绑定在标准 的端口号上,便如,rlogin daemon 被绑定在TCP 
 513的端口。 
IP欺骗 

⌨️ 快捷键说明

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