农企新闻网

ip地址欺骗通常是通过什么手段(IP地址欺骗与盗用原理)

发布者:金书
导读大家好,农企新闻小编来为大家解答以上问题。ip地址欺骗通常是通过什么手段,IP地址欺骗与盗用原理很多人还不知道,现在让我们一起来看看吧!IP地址欺骗与盗用原理IP恶搞的技术很复杂,不是简单的画虎为猫

大家好,农企新闻小编来为大家解答以上问题。ip地址欺骗通常是通过什么手段,IP地址欺骗与盗用原理很多人还不知道,现在让我们一起来看看吧!

IP地址欺骗与盗用原理:

IP恶搞的技术很复杂,不是简单的画虎为猫就能掌握的。但作为一种常规的攻击手段,有必要了解其原理,至少有利于自身的安全。保管容易,保管难。

假设B上的客户运行rlogin与A上的rlogin通信:

1.b发送一个带有SYN标志的数据段,通知a需要建立TCP连接。并将TCP报头中的序列号设置为该连接的初始值ISN。

2.a向B发回一个带有SYS ACK标志的数据段,通知自己的ISN,确认B发送的第一个数据段,并将确认号设置为B的ISN 1。

3.b确认接收到的A的数据段,并将确认号设置为A的ISN 1。

B - SYN - A

B - SYN ACK - A

B - ACK - A

TCP使用的序列号是一个32位计数器,范围从0-4294967295。TCP为每个连接选择

选择一个初始序列号ISN。为了防止三次握手受到延迟、重传等的干扰。是不能随便选的。不同的系统有不同的算法。了解TCP如何分配ISN以及ISN如何随时间变化对于成功的IP欺骗攻击非常重要。

基于远程过程调用RPC的命令,如rlogin、rcp、rsh等。根据/etc/hosts.equiv和$HOME/进行检查。rhosts文件。这样做的本质是只根据源的IP地址来确认用户的身份,从而允许或拒绝用户的RPC。

IP欺骗攻击描述:

1.假设Z试图攻击A,A信任B,所谓信任是指/etc/hosts.equiv和$ home/.rhosts中有相关设置,注意,怎么才能知道A信任B呢?没有确定的方法。我的建议是平时注意收集线索,多多积累。

事实上,一次成功的攻击主要是由于广泛而详细的信息收集,而不是技术的先进性。我用了自以为很有成就感的技术,但并不比酒桌上提问高明多少。攻击只把成功作为最终目的,不在乎手段。

2.假设Z已经知道了可信的B,应该想办法暂时禁用B的网络功能,以免干扰攻击。

著名的SYN flood通常是IP欺骗攻击的前奏。请看并发服务器的框架:

int initsockid,newsockid

if ((initsockid=socket(.)) 0) {

错误(“无法创建套接字”);

}

if (bind(initsockid,) 0) {

错误(“绑定错误”);

}

if (listen(initsockid,5) 0) {

错误(“监听错误”);

}

for(;{

newsockid=acc ept(initsockid,);

if(new ockid 0){

错误(“接受错误”);

}

If (fork()==0) {

close(initsockid);

do(newsockid);

退出(0);

}

close(newsockid);

}

listen函数中的第二个参数是5,这意味着initsockid上允许的最大连接请求数。如果initsockid上的连接请求数在某个时候达到了5,那么到达initsockid的后续连接请求将被TCP丢弃。请注意,一旦通过三次握手建立了连接,并且accept调用已经处理了该连接,TCP连接请求队列将空出一个位置。所以这个5并不意味着initsockid上只能接受5个连接请求。SYN flood是一种拒绝服务,导致B的网络功能暂时中断。

发送若干带有SYN标志的数据段给Z B请求连接,注意把源的IP地址改成不存在的主机X;b向假想的X发送SYN ACK数据段,但是没有来自X的ACK出现。B的IP层会向B的TCP层报告X不可达,但是B的TCP层忽略了这一点,认为这只是暂时的。所以B不能再接这个initsockid了。

接收正常的连接请求。

Z(X) -同步B

Z(X)

  Z(X) ---- SYN ----> B

  Z(X) ---- SYN ----> B

  Z(X) ---- SYN ----> B

  ......

  X <---- SYN+ACK ---- B

  X <---- SYN+ACK ---- B

  X <---- SYN+ACK ---- B

  X <---- SYN+ACK ---- B

  X <---- SYN+ACK ---- B

  ......

  我认为这样就使得B网络功能暂时瘫痪,可我总觉得好象不对头。

  因为B虽然在initsockid上无法接收TCP连接请求,但可以在another initsockid上接收,这种SYN flood应该只对特定的服务(端口),不应该影响到全局。当然如果不断地发送连接请求,就和用ping发洪水包一个道理,使得B的TCP/IP忙于处理负载增大。至于SYN flood,回头有机会我单独灌一瓢有关DoS的。如何使B的网络功能暂 碧被居 很多办法,根据具体情况而定,不再赘述。

  3. Z必须确定A当前的ISN。首先连向25端口(SMTP是没有安全校验机制的),与1中类似,不过这次需要记录A的ISN,以及Z到A的大致的RTT(round trip time)。这个步骤要重复多次以便求出RTT的平均值。现在Z知道了A的ISN基值和增加规律(比如每秒增 加128000,每次连接增加64000),也知道了从Z到A需要RTT/2 的时间。必须立即进攻击,否则在这之间有其他主机与A连接, ISN将比预料的多出64000。

  4. Z向A发送带有SYN标志的数据段请求连接,只是信源IP改成了B,注意是针对TCP513端口(rlogin)。A向B回送SYN+ACK数据段,B已经无法响应,B的TCP层只是简单地丢弃A的回送数据段。

  5. Z暂停一小会儿,让A有足够时间发送SYN+ACK,因为Z看不到这个包。然后Z再次伪装成B向A发送ACK,此时发送的数据段带有Z预测的A的ISN+1。如果预测准确,连接建立,数据传送开始。问题在于即使连接建立,A仍然会向B发送数据,而不是Z,Z 仍然无法看到A发往B的数据段,Z必须蒙着头按照rlogin协议标准假冒B向A发送类似 "cat + + >> ~/.rhosts" 这样的命令,于是攻击完成。如果预测不准确,A将发送一个带有RST标志的数据段异常终止连接,Z只有从头再来。

  Z(B) ---- SYN ----> A

  B <---- SYN+ACK ---- A

  Z(B) ---- ACK ----> A

  Z(B) ---- PSH ----> A

  ......

  6. IP欺骗攻击利用了RPC服务器仅仅依赖于信源IP地址进行安全校验的特性,建议阅读rlogind的源代码。攻击最困难的地方在于预测A的ISN。我认为攻击难度虽然大,但成功的可能性也很大,不是很理解,似乎有点矛盾。考虑这种情况,入侵 者控制了一台由A到B之间的路由器,假设Z就是这台路由器,那么A回送到B的数据段,现在Z是可以看到的,显然攻击难度骤然下降了许多。否则Z必须精确地预见可能从A发往B的信息,以及A期待来自B的什么应答信息,这要求攻击者对协议本身相当熟悉。同时需要明白,这种攻击根本不可能在交互状态下完成,必须写程序完成。当然在准备阶段可以用netxray之类的工具进行协议分析。

  7. 如果Z不是路由器,能否考虑组合使用ICMP重定向以及ARP欺骗等技术?没有仔细分析过,只是随便猜测而已。并且与A、B、Z之间具体的网络拓扑有密切关系,在某些情况下显然大幅度降低了攻击难度。注意IP欺骗攻击理论上是从广域网上发起的,不局限于局域网,这也正是这种攻击的魅力所在。利用IP欺骗攻击得到一个A上的shell,对于许多高级入侵者,得到目标主机的shell,离root权限就不远了,最容易想到的当然是接下来进行buffer overflow攻击。

  8. 也许有人要问,为什么Z不能直接把自己的IP设置成B的?这个问题很不好回答,要具体分析网络拓扑,当然也存在ARP冲突、出不了网关等问题。那么在IP欺骗攻击过程中是否存在ARP冲突问题。回想我前面贴过的ARP欺骗攻击,如果B的ARP Cache没有受到影响,就不会出现ARP冲突。如果Z向A发送数据段时,企图解析A的MAC地址或者路由器的MAC地址,必然会发送ARP请求包,但这个ARP请求包中源IP以及源MAC都是Z的,自然不会引起ARP冲突。而ARP Cache只会被ARP包改变,不受IP包的影响,所以可以肯定地说,IP欺骗攻击过程中不存在ARP冲突。相反,如果Z修改了自己的IP,这种ARP冲突就有可能出现,示具体情况而言。攻击中连带B一起攻击了,其目的无非是防止B干扰了攻击过程, 如果B本身已经down掉,那是再好不过。

  9. fakeip曾经沸沸扬扬了一下,我对之进行端口扫描,发现其tcp端口113是接收入连接的。和IP欺骗等没有直接联系,和安全校验是有关系的。当然,这个东西并不如其名所暗示,对IP层没有任何动作。

  10. 关于预测ISN,我想到另一个问题。就是如何以第三方身份切断 A与B之间的TCP连接,实际上也是预测sequence number的问题。尝试过,也很困难。如果Z是A与B之间的路由器,就不用说了; 或者Z动用了别的技术可以监听到A与B之间的通信,也容易些; 否则预测太难。作者在3中提到连接A的25端口,可我想不明白的 是513端口的ISN和25端口有什么关系?看来需要看看TCP/IP内部实现的源代码。

  看过文章“IP地址欺骗与盗用原理”的人还看了:

  1.自动或手动设置IP地址图解教程

  2.怎样查看自己的ip地址

  3.怎样快速找回被改IP地址

  4.子网掩码与IP地址有什么关系

  5.迅捷(FAST)路由器获取IP地址的方法

  6.查找路由器非默认IP地址的方法

  7.教你轻松解决Win7系统经常获取不到IP地址问题

  8.如何给电脑设置ip地址

  9.IP地址冲突原因分析及解决方案

  10.如何划分ip地址