TCP/IP协议攻击实验3

来源:互联网 发布:国民党真实抗战知乎 编辑:程序博客网 时间:2024/06/06 02:53
实验环境:Linux ubuntu 3.13.0-24-generic #46-Ubuntu SMP Thu Apr 10 19:11:08 UTC 2014 x86_64 x86_64 x86_64 GNU/Linux

安装工具

Adobe Flash浏览器插件安装

参考:Linux火狐浏览器安装Flash插件

hunt嗅探工具安装

使用命令sudo apt-get install hunt即可。

实验五、对视频流应用程序的TCP RST攻击

实验原理

有三个条件可以产生RST包:
1. 建立连接的SYN到达某端口,但是该端口上没有正在监听的服务
如:IP为192.168.1.33的主机上并没有开启WEB服务(端口号为0x50),这时我们通过IE去访问192.168.1.33,通过Wireshark抓包,可以看到,对此SYN包的回复为RST。说明此服务器(即IP192.168.1.33)是存在的,不过其上并没有运行WEB Server(如apache)的程序
2. TCP想取消一个已有连接
基于什么样的情况才会取消一个已有的连接?
3. TCP接收到了一个根本不存在的的连接上的分节
我们知道,TCP在数据传输前,要通过三路握手(three-way handshake)建立连接,即连接建立起后,服务器和客户端都有一个关于此连接的描述,具体形式表现为套接口对,如果收到的某TCP分节,根据源 IP,源tcp port number,及目的IP,目的tcp port number在本地(指服务器或客户端)找不到相应的套接口对,TCP则认为在一个不存在的连接上收到了分节,说明此连接已错,要求重新建立连接,于是发出了RST的TCP包!

虚拟机MAC地址和IP地址

Machine Index HWAddr IPAddr 1 00:1c:42:6f:5b:ee 10.211.55.27 2 00:1c:42:cc:87:b6 10.211.55.29 3 00:1c:42:2e:73:dc 10.211.55.28

用虚拟机#3打开视频播放页面

我使用虚拟机#3作为被攻击方,先随便打开一个视频网站,然后使用命令netstat | grep tcp看看建立的TCP连接情况。

这里写图片描述

可以看到在播放网页视频的时候,建立了很多TCP连接。

使用虚拟机#1进行攻击

虚拟机#1作为攻击方,发送RST包给虚拟机#3。

攻击命令为sudo netwox 78 -i "10.211.55.28"。(注意:这里一定要用sudo命令,否则会出现没有权限访问的错误。

这里写图片描述

使用了攻击命令之后,虚拟机#3的视频播放马上停止了,然后再刷新网页就发现出错了,这个时候我们再看看TCP连接,还是使用之前的命令,发现之前建立的TCP连接已经断开了,说明攻击成功。

实验六、ICMP Blind Connection-Reset and Source-Quench攻击

实验原理

ICMP数据报可以进行 TCP/RESET攻击,为了达到这个目的,黑客会发送一个ICMP报文给通信双方,暗示他们双方的TCP通信端出现硬件错误,连接必须终止。

虚拟机#2和虚拟机#3简历telnet连接

把虚拟机#2作为服务器端,虚拟机#3作为客户端,建立telnet连接。

这里写图片描述

虚拟机#1进行ICMP包伪造

虚拟机#1作为攻击方,攻击虚拟机#2,发送伪造的ICMP包。命令为:

sudo netwox 82 -d "Eth0" -f "host 10.211.55.29 and tcp port 23" --code 2

进行攻击之后,虚拟机#2和虚拟机#3都能捕捉到相应的ICMP数据包。

这里写图片描述

这里写图片描述

实验结果

在攻击之后,虽然受到了恶意的ICMP数据包,但是telnet并没有断开连接。资料上说是Ubuntu 10.xx的版本已经修复了这个漏洞。

实验七、TCP报文劫持

攻击原理

TCP报文劫持攻击的目的是劫持一个现存的两台主机直接的TCP连接,然后在这个劫持的报文中注入恶意的内容。如果这个连接是一个Telnet连接,那么黑客可以在这个劫持的报文中注入恶意的命令,让被劫持的主机执行这个恶意的命令。

在没有建立telnet连接时看看hunt工具

使用ifconfig命令看看网卡是在哪个硬件上,我的是在eth1上,所以使用的嗅探命令是sudo hunt -i eth1

输入命令w看看建立的连接情况。

这里写图片描述

可以看到并没有建立任何连接。

建立telnet连接

虚拟机#2和虚拟机#3按照上一个实验的方法建立telnet连接,可以从虚拟机#1中的wireshark中看到telnet连接的数据包,按理说也可以在hunt工具中看到。

这里写图片描述

我们再在hunt中输入w命令,可以看到接收到的包数已经增加了,但是连接还是没有,可能ubuntu的telnet设置了保护的机制,所以并没有攻击成功。

这里写图片描述

注意:若使用hunt工具的w命令能嗅探到虚拟机#2和虚拟机#3之间的telnet连接,便可以继续使用s命令来劫持这个telnet连接。劫持到当前的telnet连接后,向该报文中注入cat /etc/passwd 命令,便可以显示虚拟机#3上的passwd文件。

实验结果

虽然hunt工具并没有成功嗅探虚拟机#2和虚拟机#3的telnet连接,因此没有体验到报文劫持的具体结果,但是基本原理和操作过程我们都已经熟知。

参考文档

  1. 北京交通大学 计算机网络安全实验指南
  2. Netwox参考文档
0 0
原创粉丝点击