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

2、Netwag

netwag

3、Netwox

netwox

克隆连接三个虚拟机

1、查ip地址

ifconfig

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

ping 10.211.55.2*

实验一、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:

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

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

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

虚拟机#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监视网络。

由上图可知,路由追踪过程中因为有防火墙屏蔽了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。观察抓包情况:

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

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

参考文档

  1. Linux命令学习手册-arp命令
  2. Netwox参考文档
时间: 2024-10-10 08:43:28

TCP/IP协议攻击实验1的相关文章

OSI七层模型详解 TCP/IP协议

总结 OSI中的层 功能 TCP/IP协议族 应用层 文件传输,电子邮件,文件服务,虚拟终端 TFTP,HTTP,SNMP,FTP,SMTP,DNS,Telnet 等等 表示层 数据格式化,代码转换,数据加密 没有协议 会话层 解除或建立与别的接点的联系 没有协议 传输层 提供端对端的接口 TCP,UDP 网络层 为数据包选择路由 IP,ICMP,OSPF,EIGRP,IGMP 数据链路层 传输有地址的帧以及错误检测功能 SLIP,CSLIP,PPP,MTU 物理层 以二进制数据形式在物理媒体上

TCP/IP协议详解内容总结

TCP/IP协议 TCP/IP不是一个协议,而是一个协议族的统称.里面包括IP协议.IMCP协议.TCP协议. TCP/IP分层: 这里有几个需要注意的知识点: 互联网地址:也就是IP地址,一般为网络号+子网号+主机号 域名系统:通俗的来说,就是一个数据库,可以将主机名转换成IP地址 RFC:TCP/IP协议的标准文档 端口号:一个逻辑号码,IP包所带有的标记 Socket:应用编程接口 数据链路层的工作特性: 为IP模块发送和接收IP数据报 为ARP模块发送ARP请求和接收ARP应答(ARP:

TCP/IP协议三次握手与四次握手流程解析

原文链接地址:http://www.2cto.com/net/201310/251896.html TCP/IP协议的详细信息参看<TCP/IP协议详解>三卷本.下面是TCP报文格式图 上图中有几个字段需要重点介绍下:   (1)序号:Seq序号,占32位,用来标识从TCP源端向目的端发送的字节流,发起方发送数据时对此进行标记.   (2)确认序号:Ack序号,占32位,只有ACK标志位为1时,确认序号字段才有效,Ack=Seq+1.   (3)标志位:共6个,即URG.ACK.PSH.RST

七、TCP/IP协议

1.定义: TCP/IP模型也被称作DoD模型(Department of Defense Model).TCP/IP字面上代表了两个协议:TCP(传输控制协议)和IP(网际协议). TCP/IP协议不是TCP和IP这两个协议的合称,而是指因特网整个TCP/IP协议族.从协议分层模型方面来讲,TCP/IP由四个层次组成:网络接口层.网络层.传输层.应用层. TCP/IP协议并不完全符合OSI的七层参考模型,OSI(Open System Interconnect)是传统的开放式系统互连参考模型,

TCP/IP协议详解内容总结(怒喷一口老血)

TCP/IP协议 TCP/IP不是一个协议,而是一个协议族的统称.里面包括IP协议.IMCP协议.TCP协议. TCP/IP分层: 这里有几个需要注意的知识点: 互联网地址:也就是IP地址,一般为网络号+子网号+主机号 域名系统:通俗的来说,就是一个数据库,可以将主机名转换成IP地址 RFC:TCP/IP协议的标准文档 端口号:一个逻辑号码,IP包所带有的标记 Socket:应用编程接口 数据链路层的工作特性: 为IP模块发送和接收IP数据报 为ARP模块发送ARP请求和接收ARP应答(ARP:

TCP/IP协议族(一) HTTP简介、请求方法与响应状态码

接下来想系统的回顾一下TCP/IP协议族的相关东西,当然这些东西大部分是在大学的时候学过的,但是那句话,基础的东西还是要不时的回顾回顾的.接下来的几篇博客都是关于TCP/IP协议族的,本篇博客就先简单的聊一下TCP/IP协议族,然后聊一下HTTP协议,然后再聊一下SSL上的HTTP(也就是HTTPS)了.当然TCP/IP协议族是个老生常谈的话题,网络上关于该内容的文章一抓一大把呢,但是鉴于其重要性,还是有必要系统的总结一下的. 一.TCP/IP协议组简述 在聊HTTP与HTTPS之前呢,我们先简

TCP/IP协议简介(三) 之 网络层

IP 网际协议 IP 协议位于网络层,它是 TCP/IP 协议族中最为核心的协议,所有的 TCP.UDP.ICMP 及 IGMP 数据都以 IP 数据报格式传输.IP 协议提供的是 不可靠 . 无连接 的数据报传送服务. 不可靠(unreliable):IP 协议不能保证数据报能成功地到达目的地,它仅提供传输服务.当发生某种错误时,IP 协议会丢弃该数据报.传输的可靠性全由上层协议来提供. 无连接(connectionless):IP 协议对每个数据报的处理是相互独立的.这也说明, IP 数据报

tcp/ip协议学习 第四章 ARP:地址解析协议

派猴子来的救兵 关于ARP的RFC文档在此! ARP干嘛的 曾经有段时间, 六七年前了吧. 本科的时候, 流行了一阵子ARP病毒攻击, 导致整个局域网都不能上网了. 当时只听说这个东西防不住, 只要有一个人中毒, 就导致所有人上不了网. 现在也终于知道这是怎么回事了, 也能手工让某个同学上不了网了, 咳咳. 大家应该也都知道ARP是干嘛的, 我再啰嗦一下.. 比如我访问了百度, 百度回了包给我, 百度只知道我的IP是什么,不知道我的MAC地址. 这个包到网关的时候, IP这一层再把数据交给下一层

TCP/IP协议 三次握手与四次挥手

一.TCP报文格式 TCP/IP协议的详细信息参看<TCP/IP协议详解>三卷本.下面是TCP报文格式图: 图1 TCP报文格式 上图中有几个字段需要重点介绍下:        (1)序号:Seq序号,占32位,用来标识从TCP源端向目的端发送的字节流,发起方发送数据时对此进行标记.        (2)确认序号:Ack序号,占32位,只有ACK标志位为1时,确认序号字段才有效,Ack=Seq+1.        (3)标志位:共6个,即URG.ACK.PSH.RST.SYN.FIN等,具体含