2000年以来,互联网上黑客新闻不断,比如今年3月发生在北京的黑客攻击事件,几家较为著名的ISP相继宣称被同一站点入侵,证据是在受害主机上通过某种形式得到了属于被指控站点的IP纪录,而被指责方则宣称是有人恶意假冒该方IP,而且这种假冒非常容易实现。   双方各执一词,争论不下,一方认定攻击来自被指责方,一方则辩解说假冒IP实现极为简单,自己是被人暗算。

那么,从技术角度讲,假冒IP是否可行,实现起来是不是那么简单呢?我们今天就谈谈这个话题,IP   spoof   (IP   电子欺骗)。

第一部分

     1.什么是IP   spoof?

     IP   spoof即IP   电子欺骗,我们可以说是一台主机设备冒充另外一台主机的IP地址,与其它设备通信,从而达到某种目的技术。    
   
       2.IP   spoof可以实现吗?    
   
       可以实现,早在1985年,贝尔实验室的一名工程师Robbert   Morris在他的一篇文章A   weakness   in   the   4.2bsd   unix   TCP/IP   software中提出了IP   spoof的概念,有兴趣的读者可参见原文:   http://www.coast.net/~emv/tubed/archives/Morris_weakness_in_TCPIP.txt    
   
           但要注意的是单纯凭借IP   spoof技术不可能很好的完成一次完整的攻击,因为现有IP   spoof技术是属于一种“盲人”式的入侵手段,下面会解释“盲人”的概念。    
   
       3.IP   spoof的实现原理    
   
       我们知道,IP是网络层的一个非面向连接的协议,   IP数据包的主要内容由源IP地址,目地IP地址,所传数据构成,   IP的任务就是根据每个数据报文的目的地址,路由完成报文从源地址到目的地址的传送。至于报文在传送过程中是否丢失或出现差错,   IP不会考虑。对IP来讲,源设备与目的设备没有什么关系,它们是相互独立的。IP包只是根据数据报文中的目的地址发送,因此借助高层协议的应用程序来伪造IP地址是比较容易实现的。   与此同时,TCP作为保障两台通讯设备之间数据有保证的顺序传输的协议,是面向连接的,它需要连接双方?quot;同意"才能进行通讯。TCP传输双方传送的每一个字节都伴随着一个序列号(SEQ),它期待对方在接收到后产生一个应答(ACK),   应答一方面通知对方数据成功收到,另一方面告知对方希望接收的下一个字节。同时,任何两台设备之间欲建立TCP连接都需要一个两方确认的起始过程,称三次握手,可分解如下面来表示:    
   
       第一步:请求方向服务方发送SYN,表示想发起一次TCP连接。我们假定这次的序列号是某个数值X    
  Trust   ->Target    
  SYN    
  SEQ:X    
   
       第二步:服务方产生SYN,ACK响应,并向请求方发送ACK,   ACK的值为X 1,表示数据成功接收到,且告知下一次希望接收到字节的SEQ是X 1。同时,   服务方向请求方发送自己的SEQ,   我们假定它的序列号是某个数值Y。    
  Target   ->   Trust    
  SYN,ACK    
  SEQ:Y    
  ACK:X 1    
   
       第三步:   请求方向服务方发送ACK,表示接收到服务方的回应。这次它的SEQ值为X 1,同时它的ACK值为Y 1,原理同上。    
  Trust   ->Target    
  ACK    
  SEQ:X 1    
  ACK:Y 1    
   
       完成这一步以后,   请求方与服务方之间的连接开放,数据可以进行传输了。    
   
   
  第二部分    
       上面是标准TCP连接建立的过程,我们来看IP   Spoof状态下的三次握手会是什么一种情况。    
   
       第一步、Hack假冒Trust主机IP向服务方Target发送SYN,告诉Target   来自他所信任的Trust主机想发起一次TCP连接,序列号为数值X,这一步实现比较简单,   Hack将IP包的源地址伪造为Trust主机IP地址即可。    
  Hack   ->Target    
  SYN    
  SEQ:X    
   
       要注意的是,在攻击的整个过程中,必须使Trust主机与网络的正常连接中断。因为SYN请求中IP包源地址是Trust主机的,当Target收到 SYN请求时,将根据IP包中源地址反馈ACK,SYN给Trust主机,   但事实上Trust并未向Target发送SYN请求,   所以Trust收到后会认为这是一次错误的连接,从而向Target回送RST,中断连接。这可不是我们所企求的。为了解决这个问题,在整个攻击过程中我们需要设法停止Trust主机的网络功能,这一实现很简单,用现在威力很强大的tfn2k之类的分布式拒绝服务软件攻击Trust主机,使之拒绝服务即可,(可参考作者另一篇文章《分布式拒绝服务软件》见www.chinabyte.com的网络学院部分)这里就不介绍了。    
   
       第二步、服务方Target产生SYN,ACK响应,并向请求方Trust主机(注意:是Trust,不是Hack,因为Target收到的IP包的源地址是Trust)发送ACK,   ACK的值为X 1,表示数据成功接收到,且告知下一次希望接收到字节的SEQ是X 1。同时,Target向请求方Trust发送自己的SEQ,注意,这个数值对Hack是不可见的!!    
  Target   ->   Trust    
  SYN,ACK    
  SEQ:?    
  ACK:X 1    
   
       第三步、Hack再次向服务方发送ACK,表示接收到服务方的回应——虽然实际上他并没有收到服务方Targe的SYN,ACK响应。这次它的SEQ值为X 1,同时它必须猜出ACK的值!!并加一后回馈给Target。    
  Hack   ->Target    
  ACK    
  SEQ:X 1    
  ACK:? 1    
   
       如果Hack能成功的猜出Target   的ACK值,那么TCP的三次握手就宣告成功,   Target会将Hack看作Trust主机,IP   spoof最关键的技术部分得到解决!   但有一点要清楚,   Hack   主机这种连接是“盲人”式的,Hack永远不会收到来自Target的包,因为这些反馈包都被路由到Trust主机那里了(除非黑客能将相关骨干点的路由表内容做改动,记住:IP是独立的,它只是根据源地址,目的地址在互联网上路由传送。而在Hack向Target发送的三次握手IP包中源地址是宣称为 Trust主机的)   我们可以不恰当的举个简单例子,   Hack在Target上执行ls   -l   /,在Hack的屏幕上不会看到任何反馈,尽管事实上Target列出了根目录下的所有内容——Target将ls   -l   /结果送到了Trust主机。    
   
       由上我们可以看出,   IP   spoof成功的关键在于猜出在第二步服务方所回应的SEQ值,有了这个值,TCP连接方可成功的建立。在早期,这是个令人头疼的问题,但随着IP   spoof攻击手段的研究日益深入,一些专用的算法,技术得到应用,并产生了一些专用的c程序,如SEQ-scan,yaas等。当黑客得到这些c程序时,   一切问题都将迎刃而解。  
    
    
  第三部分         
    
    
       在现实中投入应用的IP   spoof一般被用于有信任关系的服务器之间的欺骗。假设网上有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   -l   root   server1.Yiming.com   csh   -i,则该管理员即直接进入server1.Yiming.com,不需要任何账号密码。除了这种为了省事的偷懒用途,   r服务在目前的网络最多的被用来远程备份,远程磁带设备和需备份文件必须有信任关系。    
   
       好了,在上例中如果我们能假冒11.22.33.44这个IP,那么将会是什么样子?每一台信任它的服务器都会被控制!这才是管理员需要引起的注意的。    
   
       由上我们看到,因为TCP/IP本身的漏洞,IP   spoof是有实现条件的,但在目前的互联网中,假冒它人IP,然后利用这个IP去攻击和这个IP无信任的关系的主机从理论上依然很难行的通。

转载于:https://www.cnblogs.com/starspace/archive/2009/01/13/1374551.html

IP Spoof技术介绍相关推荐

  1. IP Spoof技术

    IP Spoof技术介绍 2000年以来,互联网上黑客新闻不断,比如今年3月发生在北京的黑客攻击事件,几家较为著名的ISP相继宣称被同一站点入侵,证据是在受害主机上通过某种形式得到了属于被指控站点的I ...

  2. IP多播技术介绍(二)

    2.MOSPF(Multicast OSPF) 开放式组播最短路径优先(MOSPF)由FRC1584为OSPF组播的扩展,是OSPFV2单播路由协议的一个扩展. 组播扩展 OSPF(MOSPF)在原 ...

  3. 【论坛转贴】IP spoof欺骗关于修改ip源向网页post的方法,伪造虚假IP来源!可用于群发发贴机拱贴机邮件EMail群发!!!!!!

    [论坛转贴]IP spoof欺骗,关于修改ip源向网页post的方法,伪造虚假IP来源!可用于群发发贴机拱贴机邮件EMail群发!!!!!! 现在我急需这段程序,有好心的人帮我解决一下吗     这是 ...

  4. IP地址欺骗 IP Spoof

    1.什么是IP spoof? 是一台主机设备冒充另外一台主机的IP地址,与其它设备通信,从而达到某种目的技术. IP spoof的实现原理  我们知道,IP是网络层的一个非面向连接的协议, IP数据包 ...

  5. TIBCO Rendezvous — 技术介绍

      http://blog.csdn.net/tiercel2008/article/details/6799952 TIBCO Rendezvous - 技术介绍 1.1.1.      TIBCO ...

  6. 网络存储技术介绍(1) ( based on zt)

    最近由于某同学微信发了一些网络存储的文章,开始感兴趣,稍微收集了一些 一.  网络存储技术 http://ask.zol.com.cn/q/187044.html  (yxr:很老的技术介绍吧) 网络 ...

  7. SANS研究所:7大最危险的攻击技术介绍

    本文讲的是SANS研究所:7大最危险的攻击技术介绍,很显然,网络攻击威胁已经从理论走入现实生活,无论是个人.企业还是国家重要基础设施都处在日益严峻的威胁之中.本周三(2月15日)在加利福尼亚州旧金山举 ...

  8. LoRa、LoRaWAN及网关相关技术介绍

    LoRa.LoRaWAN及网关技术介绍 1. LoRa与LoRaWAN 2. LoRaWAN协议定义的终端节点工作模式 3. LoRaWan网络架构 4. 组网方式 5. 终端节点→网关:多对一时 6 ...

  9. Xilinx PCIE IP核接口介绍

    1.1 Xilinx PCIE IP核接口介绍 1.1.1 本节目录 1)本节目录: 2)本节引言: 3)FPGA简介: 4)Xilinx PCIE IP核接口介绍: 5)结束语. 1.1.2 本节引 ...

最新文章

  1. LockBits in GDI+【转】http://timothyqiu.com/archives/lockbits-in-gdiplus/
  2. Oracle 学习笔记 11 -- 视图 (VIEW)
  3. Linux 设置windows可见的文件夹共享,创建只拥有读权限的共享用户,samba工具安装,“smbpasswd: command not found“问题解决
  4. Machine Learning week 9 quiz: Recommender Systems
  5. javaGUI猜生日游戏
  6. 指针、数组、函数阶段小结
  7. 汇编语言(三十五)之输入字符串以$结束然后输出字母个数
  8. 大数的四则运算(加法、减法、乘法、除法)
  9. highcharts 显示平均值数值_拼多多评价多久能显示,有什么出评价技巧吗?
  10. 【福利】囚犯抓绿豆,谁生谁死?
  11. POJ 1692 Crossed Matchings dp[][] 比较有意思的dp
  12. 可以设置选项背景颜色的DropDownList
  13. gradle文件利用java解析_使用文件读取Gradle Multi项目构建
  14. c语言函数实现顺序线性表,数据结构C语言实现——顺序线性表SqList
  15. 微信小程序播放器实战开发教程
  16. react-native打包失败: Expiring daemon because jvm heap space is exhausted
  17. 设置单选框radio不可选(禁用)
  18. QGIS 3.14|地震数据动画效果实战(二)动画设置篇
  19. #433 津津有味:红黑榜 | 要不是为了热量缺口,谁爱吃它!
  20. 外键约束的创建及例子

热门文章

  1. 猪猪猫.CN-WINXPSP2电脑城装机12DVD[豪华版]
  2. 世纪前线网络质量测试工具 是什么_6.1.1 测试工具分类
  3. 牛客网-《刷C语言百题》第一期
  4. Mind Control(暴力+枚举)
  5. python一级考试试题题库_Python编程一级试卷一及参考答案
  6. Day463.视图存储过程存储函数 -mysql
  7. 百度卫士最新版更新版源码下载
  8. LSTM模型对家庭用电进行多步时间序列预测
  9. onenote使用心得
  10. 用python实现交警手势识别