计算机故障交流论坛
域名注册

利用ip序列攻击办法详解

发表时间:09-6-17   来源:计算机故障网   点击:

利用ip序列攻击办法详解

  在 John Markoff 的 1/23/95 NYT 中的文章,还有 CERT advisory CA-95:01之中提到很多关于 IP地址的欺骗( IP spoofing )和hijacking攻击.这儿是我的一些技术资料。希望它能帮助你明白这类攻击是怎么一回事。

  这是两种截然不同的攻击手段.IP 源地址欺骗和 TCP 序列序列预报是为了获得那些使用 X terminal 作为无盘工作站的初始的使用权。当 root 权限被获得时,一个已知的到其他系统的连接就会被“可加载内核 STREAMS 模块”或 hijacked 。

  这次攻击中的数据记录都是由 tcpdump 来完成的. 兴趣很明确(也很短!),有些日期被遗漏了.我特别推荐 Steve Bellovin 的关于“IP spoofing”的文章,他对 TCP 握手描述的非常详细, 也提出了怎样阻止这种攻击手段.

  我的设置是这样的:

  系   统 = 运行Solaris 1 提供 "X terminal"服务的 SPARC 工作站

  x-terminal = 运行Solaris 1 提供 "X terminal"服务

  目   标 = 攻击显然的目标

  IP spoofing 攻击是从 14:09:32 PST on 12/25/94 开始的.首先的探测来自

  toad.com (来自数据包的记录):

  14:09:32 toad.com# finger -l @target

  14:10:21 toad.com# finger -l @server

  14:10:50 toad.com# finger -l root@server

  14:11:07 toad.com# finger -l @x-terminal

  14:11:38 toad.com# showmount -e x-terminal

  14:11:49 toad.com# rpcinfo -p x-terminal

  14:12:05 toad.com# finger -l root@x-terminal

  这样的探测是为了查看在这些系统之中有什么信赖关系,借此可以发动 IP spoofing

  攻击.从 showmount 和 rpcinfo 的源端口可以看出是 toad.com 的 root

  六分钟之后, 我们收到了大量的 TCP SYN 请求(TCP 连接的请求),是来自 130.92.6.97

  到服务器上的 513 (login) 端口.这些 SYN 请求的目的就是堵塞513端口的连接队列,使其成为半开连接状态,因此无法接受其它的新的连接请求.详细些就是,它是不会对那些SYN-ACK请求发送TCP RST回应的。

  [梦:关于此处,看看TCP连接的三次握手]

  513 端口是一个“特权”(< IPPORT_RESERVED)端口 , server.login 可以被假定的源地址安全的使用,是在UNIX上的"r-服务" (rsh, rlogin)进行地址spoofing攻击的。130.92.6.97

  明显是没有反应的地址(对收到的数据包):

  14:18:22.516699 130.92.6.97.600 > server.login: S 1382726960:1382726960(0) win 4096

  14:18:22.566069 130.92.6.97.601 > server.login: S 1382726961:1382726961(0) win 4096

  14:18:22.744477 130.92.6.97.602 > server.login: S 1382726962:1382726962(0) win 4096

  14:18:22.830111 130.92.6.97.603 > server.login: S 1382726963:1382726963(0) win 4096

  14:18:22.886128 130.92.6.97.604 > server.login: S 1382726964:1382726964(0) win 4096

  14:18:22.943514 130.92.6.97.605 > server.login: S 1382726965:1382726965(0) win 4096

  14:18:23.002715 130.92.6.97.606 > server.login: S 1382726966:1382726966(0) win 4096

  14:18:23.103275 130.92.6.97.607 > server.login: S 1382726967:1382726967(0) win 4096

  14:18:23.162781 130.92.6.97.608 > server.login: S 1382726968:1382726968(0) win 4096

  14:18:23.225384 130.92.6.97.609 > server.login: S 1382726969:1382726969(0) win 4096

  14:18:23.282625 130.92.6.97.610 > server.login: S 1382726970:1382726970(0) win 4096

  14:18:23.342657 130.92.6.97.611 > server.login: S 1382726971:1382726971(0) win 4096

  14:18:23.403083 130.92.6.97.612 > server.login: S 1382726972x-terminal.shell: R 1382726997:1382726997(0) win 0

  14:18:29.584705 apollo.it.luc.edu.993 > x-terminal.shell: S 1382726997:1382726997(0) win 4096

  14:18:29.755054 x-terminal.shell > apollo.it.luc.edu.993: S 2022720000:2022720000(0) ack 1382726998 win 4096

  14:18:29.840372 apollo.it.luc.edu.993 > x-terminal.shell: R 1382726998:1382726998(0) win 0

  14:18:30.094299 apollo.it.luc.edu.992 > x-terminal.shell: S 1382726998:1382726998(0) win 4096

  14:18:30.265684 x-terminal.shell > apollo.it.luc.edu.992: S 2022848000:2022848000(0) ack 1382726999 win 4096

  14:18:30.342506 apollo.it.luc.edu.992 > x-terminal.shell: R 1382726999:1382726999(0) win 0

  14:18:30.604547 apollo.it.luc.edu.991 > x-terminal.shell: S 1382726999:1382726999(0) win 4096

  14:18:30.775232 x-terminal.shell > apollo.it.luc.edu.991: S 2022976000:2022976000(0) ack 1382727000 win 4096

  14:18:30.852084 apollo.it.luc.edu.991 > x-terminal.shell: R 1382727000:1382727000(0) win 0

  14:18:31.115036 apollo.it.luc.edu.990 > x-terminal.shell: S 1382727000:1382727000(0) win 4096

  14:18:31.284694 x-terminal.shell > apollo.it.luc.edu.990: S 2023104000:2023104000(0) ack 1382727001 win 4096

  14:18:31.361684 apollo.it.luc.edu.990 > x-terminal.shell: R 1382727001:1382727001(0) win 0

  14:18:31.627817 apollo.it.luc.edu.989 > x-terminal.shell: S 1382727001:1382727001(0) win 4096

  14:18:31.795260 x-terminal.shell > apollo.it.luc.edu.989: S 2023232000:2023232000(0) ack 1382727002 win 4096

  14:18:31.873056 apollo.it.luc.edu.989 > x-terminal.shell: R 1382727002:1382727002(0) win 0

  14:18:32.164597 apollo.it.luc.edu.988 > x-terminal.shell: S 1382727002:1382727002(0) win 4096

  14:18:32.335373 x-terminal.shell > apollo.it.luc.edu.988: S 2023360000:2023360000(0) ack 1382727003 win 4096

  14:18:32.413041 apollo.it.luc.edu.988 > x-terminal.shell: R 1382727003:1382727003(0) win 0

  14:18:32.674779 apollo.it.luc.edu.987 > x-terminal.shell: S 1382727003:1382727003(0) win 4096

  14:18:32.845373 x-terminal.shell > apollo.it.luc.edu.987: S 2023488000:2023488000(0) ack 1382727004 win 4096

  14:18:32.922158 apollo.it.luc.edu.987 > x-terminal.shell: R 1382727004:1382727004(0) win 0

  14:18:33.184839 apollo.it.luc.edu.986 > x-terminal.shell: S 1382727004:1382727004(0) win 4096

  14:18:33.355505 x-terminal.shell > apollo.it.luc.edu.986: S 2023616000:2023616000(0) ack 1382727005 win 4096

  14:18:33.435221 apollo.it.luc.edu.986 > x-terminal.shell: R 1382727005:1382727005(0) win 0

  14:18:33.695170 apollo.it.luc.edu.985 > x-terminal.shell: S 1382727005:1382727005(0) win 4096

  14:18:33.985966 x-terminal.shell > apollo.it.luc.edu.985: S 2023744000:2023744000(0) ack 1382727006 win 4096

  14:18:34.062407 apollo.it.luc.edu.985 > x-terminal.shell: R 1382727006:1382727006(0) win 0

  14:18:34.204953 apollo.it.luc.edu.984 > x-terminal.shell: S 1382727006:1382727006(0) win 4096

  14:18:34.375641 x-terminal.shell > apollo.it.luc.edu.984: S 2023872000:2023872000(0) ack 1382727007 win 4096

  14:18:34.452830 apollo.it.luc.edu.984 > x-terminal.shell: R 1382727007:1382727007(0) win 0

  14:18:34.714996 apollo.it.luc.edu.983 > x-terminal.shell: S 1382727007:1382727007(0) win 4096

  14:18:34.885071 x-terminal.shell > apollo.it.luc.edu.983: S 2024000000:2024000000(0) ack 1382727008 win 4096

  14:18:34.962030 apollo.it.luc.edu.983 > x-terminal.shell: R 1382727008:1382727008(0) win 0

  14:18:35.225869 apollo.it.luc.edu.982 > x-terminal.shell: S 1382727008:1382727008(0) win 4096

  14:18:35.395723 x-terminal.shell > apollo.it.luc.edu.982: S 2024128000:2024128000(0) ack 1382727009 win 4096

  14:18:35.472150 apollo.it.luc.edu.982 > x-terminal.shell: R 1382727009:1382727009(0) win 0

  14:18:35.735077 apollo.it.luc.edu.981 > x-terminal.shell: S 1382727009:1382727009(0) win 4096

  14:18:35.905684 x-terminal.shell > apollo.it.luc.edu.981: S 2024256000:2024256000(0) ack 1382727010 win 4096

  14:18:35.983078 apollo.it.luc.edu.981 > x-terminal.shell: R 1382727010:1382727010(0) win 0

  注意每个x-terminal送出的 SYN-ACK 数据包通过 x-terminal 有个初始数列,并且都比前

  一个来的大.

  我们看到一个伪造的 SYN (连接请求), 是从 server.login 送到 x-terminal.shell 的。

  设想服务器如果被x-terminal所信任, 那么 x-terminal 就可以利用了(甚至一些伪装的服务器)请求了.

  x-terminal 会对服务器回复一个 SYN-ACK, 只有 ACK 过的才可以打开连接.服务器会丢失送到 server.login 的数据包,所以ACK 也要伪造.

第1页:利用ip序列攻击(1)   第2页:利用ip序列攻击(2)  

© CopyRight 2008-2010, JSJGZ.CN, 计算机故障 Inc. All Rights Reserved

闽ICP备09000710号 增值电信业务经营许可证闽B2-20080004号 Rss订阅