TCP/IP协议攻击实验1

TCP/IP协议攻击实验1

实验环境:
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

安装工具

1、Wireshark

sudo apt-get install wireshark

2、Netwag

sudo apt-get install netwag

3、Netwox

sudo apt-get install netwox

检查安装情况

1、Wireshark

wireshark

TCP/IP协议攻击实验1_第1张图片

2、Netwag

netwag

TCP/IP协议攻击实验1_第2张图片

3、Netwox

netwox

TCP/IP协议攻击实验1_第3张图片

克隆连接三个虚拟机

1、查ip地址

ifconfig

2、使用ping命令检查互相连接情况

ping 10.211.55.2*

TCP/IP协议攻击实验1_第4张图片

实验一、APR缓存中毒(ARP cache poisoning)

实验原理

ARP缓存是ARP协议的重要组成部分。ARP协议运行的目标就是建立MAC地址和IP地址的映射,然后把这一映射关系保存在ARP缓存中,使得不必重复运行ARP协议。因为ARP缓存中的映射表并不是一直不变的,主机会定期发送ARP请求来更新它的ARP映射表,利用这个机制,攻击者可以伪造ARP应答帧使得主机错误的更新自己的ARP映射表,这个过程就是ARP缓存中毒。
这样的后果即使要么使主机发送MAC帧到错误的MAC地址,导致数据被窃听;要么由于MAC地址不存在,导致数据发送不成功。

虚拟机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

清空ARP缓存

因为之前测试几个虚拟机之间是否连接成功的时候进行了ping命令,这个时候在各个虚拟机的时候已经进行了ARP缓存,如果进行实验的话,将不会有ARP协议的数据包,因为会直接在ARP缓存库里面取得相应的MAC地址。

所以这里我要先对ARP缓存进行清理。以下是ARP命令的使用说明:

arp: 显示所有的表项。
arp  -d  address: 删除一个arp表项。
arp  -s address hw_addr: 设置一个arp表项。

先用ARP命令查看已经缓存的ARP信息,然后再根据需要删除我们需要删除的ARP缓存。

实验内容实现

老师给的参考文档里面使用的是Telnet命令,但是可能因为虚拟机设置和VMWare不同的原因,在用Telnet命令的时候会出现connection refused的错误,所以我尝试使用ssh命令来实现实验内容。第一次建立ssh连接的时候就会产生ARP的数据包,可以用wireShark捕捉,我们一样用第三台虚拟机用虚假的ARP信息进行广播,那么应该ssh连接会失败。

正常状态下,我用虚拟机#3连接虚拟机#1,可以看到抓取到的ARP数据包如下:

这里写图片描述
这里写图片描述

对照前面我们记录的MAC地址和IP地址可以看到,在正常的状态下ARP是正确缓存的,并且可以连接ssh:

TCP/IP协议攻击实验1_第5张图片

然后按照老师的教程,用虚拟机#1进行虚假ARP信息广播:

sudo netwox 80 "00:1c:42:6f:5b:ee" -i "10.211.55.29"

我们可以在虚拟机#3的Wireshark里面看到这个周期性的广播信息:

TCP/IP协议攻击实验1_第6张图片

虚拟机#3连接虚拟机#2的时候,程序出错了,然后我们用arp命令查arp缓存,可以看到虚拟机#2的IP地址10.211.55.29对应的MAC地址已经被改成了虚拟机#1的MAC地址00:1c:42:6f:5b:ee

这里写图片描述

说明攻击成功。

注意:①WireShark在正常情况下我的环境里并找不到端口,所以我用了管理员权限打开WireShark,就能正常工作了。②我在第一次实验的时候发现虽然广播了但是没有被修改,第二次就成功了,查了WireShark找到原因,是因为刚好连接建立的时候没有广播到。

实验二、ICMP重定向攻击

实验原理

ICMP重定向攻击
ICMP重定向信息是路由器向主机提供实时的路由信息,当一个主机收到ICMP重定向信息时,它就会根据这个信息来更新自己的路由表。由于缺乏必要的合法性检查,如果一个黑客想要被攻击的主机修改它的路由表,黑客就会发送ICMP重定向信息给被攻击的主机,让该主机按照黑客的要求来修改路由表。

实验准备

安装traceroute:sudo apt-get install traceroute

虚拟机网络配置

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
网关 00:1c:42:00:00:18 10.211.55.1

虚拟机#3检查正常情况下的网关

使用命令sudo traceroute baidu.com来尝试路由追踪连接到百度时候的路由表情况,并且打开WireShark监视网络。

TCP/IP协议攻击实验1_第7张图片

由上图可知,路由追踪过程中因为有防火墙屏蔽了ICMP信息,所以没有返回任何结果而是*。但是没有关系,我们可以从WireShark抓到的数据包看到默认网关。

这里写图片描述

由上图可以看到虚拟机#3的默认网关在正常状态下是00:1c:42:00:00:18|10.211.55.1

虚拟机#1进行ICMP重定向攻击

为了让虚拟机#3认为默认网关已经被修改成了虚拟机#1,需要不断广播ICMP重定向信息。为了实现这个广播,可以使用netwox命令sudo netwox 86 -d "Eth0" --gw "10.211.55.27" -i "10.211.55.1",这个命令代表广播ICMP重定向信息,把10.211.55.1重定向为10.211.55.27,前者为默认网关,后者为虚拟机#1。

这里写图片描述

注意:为了让虚拟机#1能够正常转发数据包,需要对虚拟机#1进行如下设置:sudo sysctlnet.ipv4.ip_forward=1

虚拟机#3检查被攻击情况下的网关

打开WireShark监视网络,使用traceroute命令访问baidu.com。观察抓包情况:

TCP/IP协议攻击实验1_第8张图片

由上图可以验证虚拟机#1的广播生效了。

这里写图片描述

由上图可以验证虚拟机#3发送的数据包的默认网关已经被改成了虚拟机#1,说明攻击成功。

参考文档

  1. Linux命令学习手册-arp命令
  2. Netwox参考文档

你可能感兴趣的:(information,Security)