TCP/IP协议攻击实验3
2016-06-05 23:02
393 查看
实验环境: 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连接,因此没有体验到报文劫持的具体结果,但是基本原理和操作过程我们都已经熟知。参考文档
北京交通大学 计算机网络安全实验指南Netwox参考文档
相关文章推荐
- Ubuntu 默认壁纸历代记
- Ubuntu Remix Cinnamon 20.04 评测:Ubuntu 与 Cinnamon 的完美融合
- Linux socket 初步
- 关于Ubuntu 11.10启动提示waiting for the network configuration的问题
- 在 Ubuntu 桌面中使用文件和文件夹
- Linux Kernel 4.0 RC5 发布!
- linux lsof详解
- linux 文件权限
- Linux 执行数学运算
- 10 篇对初学者和专家都有用的 Linux 命令教程
- Linux 与 Windows 对UNICODE 的处理方式
- Ubuntu12.04下QQ完美走起啊!走起啊!有木有啊!
- 解決Linux下Android开发真机调试设备不被识别问题
- ubuntu下chrome无法同步问题解决
- 运维入门
- 运维提升
- Linux 自检和 SystemTap
- Ubuntu Linux使用体验