APR缓存中毒(ARP cache poisoning)

实验原理

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

这样的后果即使要么使主机发送MAC帧到错误的MAC地址,导致数据被窃听;要么由于MAC地址不存在,导致数据发送不成功。

实验内容

当发送方B需要向接收方C发送一个数据时,B会从自己的ARP表中通过C的IP地址来查找相应的C的MAC地址。如果C的MAC地址不在B的ARP表中,B就向全网发广播包,要求C主机返回它的MAC地址。当B接收到C返回的MAC地址时,B就将更新它的ARP表。同时,C主机也将B主机和它对应的MAC地址记录到C的ARP表中。ARP表的更新采用牛奶原则,也就是说,ARP表将无条件接受最后一次收到的ARP包作为ARP更新的数据。鉴于此,攻击者A可以利用一些工具伪造一个ARP包,将C的IP对应的MAC地址修改为自己的MAC地址,并将这个数据包发送给B。B在更新了ARP表之后,新的发往C的数据包就会被发送到B。 

查询netwox说明后得知,33号工具用于伪造ARP包。使用命令查看该工具的详细使用方法。 

netwox 33 --help2

在进行攻击之前,先在三台主机上互相ping通

用虚拟机A进行虚假ARP信息广播:

sudo netwox 80 "00:0c:29:5f:1b:12" -i "192.168.232.130"    //告诉靶机B,靶机C192.168.232.130的MAC地址 00:0c:29:5f:1b:12

然后使用arp –a命令查看ARP表

  • 1---互相ping通
  • 2---攻击机发送报文之后,被欺骗主机与通信对方连通时出错
  • 3---arp -a 查看结果,192.168.232.130的MAC地址被改为攻击机的MAC地址

ICMP重定向攻击

实验原理

ICMP重定向攻击

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

实验内容

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

Machine 1 :(攻击者)

MAC:00: 0c:29:5f:1b:12

IP:192.168.232.139

默认网关:

IP:192.168.232.2

Machine 3:(受害者)

MAC:00:0c:29:7e:0f:57

IP:192.168.232.137

实施攻击

现在Machine 1以默认网关的名义向Machine 3发送IMCP重定位信息,通知Machine 3,默认路由的地址已经改为Machine 1(192.168.232.139)。

同时为了让Machine 1能够转发数据包,需要对Machine 1进行转发数据包的设置,可用下面的命令实现:

sudo sysctl net.ipv4.ip_forward=1

执行示意图如下:



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



此时 Machine 3再次访问192.168.232.2时,它会首先把数据包发送至新的路由 Machine 1,再由machine 1来转发数据包,从而达到Machine 3的路由表被更新的效果:

示意图如下:

参考资料

TCP/IP协议攻击实验1

TCP/IP协议攻击实验2

基于TCP/IP的攻击实验

20169202 2016-2017-2《TCP/IP协议攻击》实验总结--十一周的更多相关文章

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

    原文链接地址:http://www.2cto.com/net/201310/251896.html TCP/IP协议三次握手与四次握手流程解析 TCP/IP协议的详细信息参看<TCP/IP协议详 ...

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

    一.TCP报文格式 TCP/IP协议的详细信息参看<TCP/IP协议详解>三卷本.下面是TCP报文格式图: 图1 TCP报文格式 上图中有几个字段需要重点介绍下:        (1)序号 ...

  3. TCP/IP协议学习笔记

    计算机网络基础知识复习汇总:计算机网络基础知识复习 HTTP协议的解析:剖析 HTTP 协议 一个系列的解析文章: TCP/IP详解学习笔记(1)-- 概述 TCP/IP详解学习笔记(2)-- 数据链 ...

  4. TCP/IP协议基础(转)

    转自 http://www.chinaunix.net 作者:Bernardus160  发表于:2003-12-03 17:33:15 TCP/IP协议基础 -------------------- ...

  5. 七、TCP/IP协议

    1.定义: TCP/IP模型也被称作DoD模型(Department of Defense Model).TCP/IP字面上代表了两个协议:TCP(传输控制协议)和IP(网际协议). TCP/IP协议 ...

  6. TCP/IP协议 三次握手与四次挥手【转】

    一.TCP报文格式 TCP/IP协议的详细信息参看<TCP/IP协议详解>三卷本.下面是TCP报文格式图: 图1 TCP报文格式 上图中有几个字段需要重点介绍下:        (1)序号 ...

  7. TCP/IP协议详解内容总结

    TCP/IP协议 TCP/IP不是一个协议,而是一个协议族的统称.里面包括IP协议.IMCP协议.TCP协议. TCP/IP分层:   这里有几个需要注意的知识点: 互联网地址:也就是IP地址,一般为 ...

  8. TCP/IP协议三次握手与四次握手流程解析(转载及总结)

    原文地址:http://www.2cto.com/net/201310/251896.html,转载请注明出处: TCP/IP协议三次握手与四次握手流程解析 一.TCP报文格式  TCP/IP协议的详 ...

  9. TCP/IP协议原理与应用笔记10:TCP/IP协议族

    1. 协议族视图如下:(这里我们列举重要的,并不是所有的) (1)网络接入层(数据链路层 和 物理层): 通过接入的物理网络的 功能 和 覆盖范围 进行分析划分为: •LANs :局域网(Local ...

随机推荐

  1. 【BZOJ】1001: [BeiJing2006]狼抓兔子(最小割 / 对偶图)

    题目 传送门:QWQ 分析 显然答案是最小割. 然后dinic卡一卡过去了. 其实是懒得写转对偶图:正解 (dinic原来写的是vector,后来改的比较鬼畜 代码 #include <bits ...

  2. Nim游戏变种——取纽扣谁先取完

    (2017腾讯实习生校招笔试题)Calvin和David正在玩取纽扣游戏,桌上一共有16个纽扣,两人轮流来取纽扣,每人每次可以选择取1个或3个或6个(不允许不取),谁取完最后的纽扣谁赢.Cavin和D ...

  3. django第一课大概了解

    项目目录介绍: -------- manage.py : Django项目里面的工具,通过它可以调用django shell和数据库等. mysite/ 主要是项目配置的信息,通常一次生成后不需要其他 ...

  4. 太白老师day6 1.代码块 2.is==id 3.小数据池

    1.代码块: 一个模块一个函数一个类,一个文件都是代码块 在交互模式下, 每一行都是一个代码块 2. is == 内存地址 就是id门牌号 在内存中id是唯一,如果两个变量指向的id相同,那么他们在内 ...

  5. fork和vfork,exec

    一.fork:子进程是父进程的一个拷贝,子进程获得同父进程相同的数据,但是同父进程使用不同的数据段和堆栈段. 特点:调用一次,返回两次.成功则在父进程中返回子进程ID,在子进程中返回0.失败则返回-1 ...

  6. Hadoop HA 机制学习

    一.Hadoop 系统架构 1.1 Hadoop1.x和Hadoop2.x 架构 在介绍HA之前,我们先来看下Hadoop的系统架构,这对于理解HA是至关重要的.Hadoop 1.x之前,其官方架构如 ...

  7. (转)libvirt API的基本概念

    本文摘自:http://blog.sina.com.cn/s/blog_da4487c40102v31i.html libvirt对象 libvirt的对象向外展现了虚拟化环境的所有资源.libvir ...

  8. 这几天搞UNITY遇到的坑

    都是在IPHONE设备上遇到的,UNITY版本是5.4.4f1 1.EASY AR出现扫描蓝线绿块的,是因为不是EASY AR的CameraDeviceBehavior默认参数1280X720 2.自 ...

  9. UNITY调用安桌方法出现 JNI: Init'd AndroidJavaClass with null ptr!

    UNITY调用安桌方法出现 JNI: Init'd AndroidJavaClass with null ptr! 原因是····· 得运行在一个真正的Android设备上! 得运行在一个真正的And ...

  10. 16进制颜色转普通RGB

    做开发的会遇到很多时候UI给到的是16进制的颜色  然而很多时候我们需要把它转换成适合我们方法的RGB参数  当然通过网页转换也可以达到目的 但是我现在选择写一个分类来解决  一劳永逸~ 1.首先说下 ...