局域网 ARP 欺骗原理详解

ARP 欺骗是一种以 ARP 地址解析协议为基础的一种网络攻击方式, 那么什么是 ARP 地址解析协议: 首先我们要知道, 一台电脑主机要把以太网数据帧发送到同一局域网的另外一台主机, 它的底层是通过 48bit 的 Mac 地址来确定目的接口的, 但是我们在应用层是使用 IP 地址来访问目标主机的, 所以 ARP 的作用就是当一台主机访问一个目标 IP 地址的时候, 它为该主机返回目标 IP 主机的 Mac 地址, 并且这个过程是自动完成的, 应用层的程序是不用关心这件事的.

在讲 ARP 欺骗之前我们先来了解一下正常情况下一台主机是如何通过路由器上网的:

如上图, 我们以 A 主机 ping 8.8.8.8 为例:

  1. 主机 A 上执行 ping 8.8.8.8
  2. 主机 A 准备根据默认路由将数据包发送给 192.168.0.1, 但是最开始的时候主机 A 不知道 192.168.0.1 的 Mac 地址, 所以主机 A 广播一条 ARP Request, 询问 192.168.0.1 的 Mac 地址是什么
  3. 路由器收到该 ARP 请求, 发现自己是 192.168.0.1 于是向主机 A 回复一条 ARP Reply, 告诉主机 A 192.168.0.1 的 Mac 地址是 xxxGW.
  4. 主机 A 收到该 ARP Reply, 并使用该 Reply 中的 MAC 地址封一个 ICMP Request 包, 然后将包发出去
  5. 路由器收到该 ICMP 包, 发现目标 IP 是公网 IP, 便将该包放送到公网, 公网返回 ICMP Reply 给路由器
  6. 路由器准备将 ICMP Reply 发送给 192.168.0.100, 但是同第2步, 路由器最开始的时候也不知道 192.168.0.100 的 Mac 地址是多少, 所以路由器会广播一条 ARP Request, 询问 192.168.0.100 的 Mac 地址是什么
  7. 主机 A 收到 ARP Request, 发现自己是 192.168.0.100, 于是向路由器回复 ARP Reply, 告诉路由器 192.168.0.100 的 Mac 地址是 xxxA.
  8. 路由器收到 ARP Reply, 并使用该 Reply 中的 MAC 地址将第5步收到 ICMP Reply 包重新封包, 并发送出去
  9. 主机 A 收到 ICMP Reply

至此, 正常的上网流程结束. 然后对照上面的流程回答下面两个问题:

  1. 如果主机 B 无脑的向主机 A 发送 ARP Reply, 告诉 A 192.168.0.1 的 MAC 是 xxxB, 会发生什么?
  2. 如果主机 B 无脑的向路由器 GW 发送 ARP Reply, 告诉 GW 192.168.0.100 的 MAC 是 xxxB, 会发生什么?

答案如下图:

如果主机 B 做了上面说的两件事的话, 那么主机 A 访问网络的所有数据都会先经过主机 B, 并且回来的数据也都会经过 B, 至此, 整个 ARP 欺骗完成.

至于实际操作, 在自己的机器上安装一个 arpspoof 工具便可以, Ubuntu 下可以直接使用如下命令安装:

apt install dsniff

安装好之后先打开 IP 转发:

echo 1 > /proc/sys/net/ipv4/ip_forward

然后使用 arpspoof 命令进行欺骗, 命令使用方法如下:

arpspoof -i <网卡名> -t <欺骗的目标> <我是谁>

比如上面我举得例子, 分别开两个终端:

终端1, 欺骗主机 A 我是网关

arpspoof -i eth0 -t 192.168.0.100 192.168.0.1

终端2, 欺骗网关我是主机 A

arpspoof -i eth0 -t 192.168.0.1 192.168.0.100

欺骗成功之后可以通过抓包工具查看主机 A 所有的流量, 这里不再多说.

局域网 ARP 欺骗原理详解相关推荐

  1. java编程实现arp欺骗_局域网 ARP 欺骗原理详解

    局域网 ARP 欺骗原理详解 ARP 欺骗是一种以 ARP 地址解析协议为基础的一种网络攻击方式, 那么什么是 ARP 地址解析协议: 首先我们要知道, 一台电脑主机要把以太网数据帧发送到同一局域网的 ...

  2. [网络安全自学篇] 四十一.中间人攻击和ARP欺骗原理详解及防御机理

    这是作者的网络安全自学教程系列,主要是关于安全工具和实践操作的在线笔记,特分享出来与博友们学习,希望您们喜欢,一起进步.前文分享了一个phpMyAdmin 4.8.1版本的文件包含漏洞,从配置到原理, ...

  3. 修改数据包欺骗服务器,Fiddler协议捕获编辑工具与Session欺骗原理详解

    今天Kitty主要与大家分享Fiddler抓包工具与协议捕获编辑工具来与大家讲解Session欺骗原理过程,咱们主要通过Fiddller协议捕获工具来对比HTTPWatch两款工具之间的差别,最主要的 ...

  4. ARP地址解析协议详解

    ARP地址解析协议详解 网络层的ARP协议完成IP地址与物理地址的映射.首先,每台主机都会在自己的ARP缓冲区中建立一个ARP缓存表,以表示IP地址和MAC地址的对应关系.当源主机需要将一个数据包发送 ...

  5. LVS原理详解(3种工作方式8种调度算法)--老男孩

    一.LVS原理详解(4种工作方式8种调度算法) 集群简介 集群就是一组独立的计算机,协同工作,对外提供服务.对客户端来说像是一台服务器提供服务. LVS在企业架构中的位置: 以上的架构只是众多企业里面 ...

  6. 交换机工作原理、MAC地址表、路由器工作原理详解

    一:MAC地址表详解 说到MAC地址表,就不得不说一下交换机的工作原理了,因为交换机是根据MAC地址表转发数据帧的.在交换机中有一张记录着局域网主机MAC地址与交换机接口的对应关系的表,交换机就是根据 ...

  7. LVS原理详解及部署之五:LVS+keepalived实现负载均衡高可用

    本文我们主要讲解的是LVS通过keepalived来实现负载均衡和高可用,而不是我们第三篇文章介绍的通过手动的方式来进行配置.通过脚本的方式来显示RS节点的健康检查和LVS的故障切换.此文会通过一个实 ...

  8. LVS原理详解及部署之四:keepalived介绍

    -------------------LVS专题------------------------ LVS原理详解及部署之一:ARP原理准备 LVS原理详解及部署之二:LVS原理详解(3种工作方式8种调 ...

  9. 虚拟路由器冗余协议VRRP原理详解!

    虚拟路由器冗余协议VRRP原理详解! https://virtual.51cto.com/art/201905/596666.htm?pc 我们知道,为了实现不同子网之间的设备通信,需要配置路由.目前 ...

最新文章

  1. QML Image Element
  2. 手动挡五个档位示意图_汽车档位越多越好?听听专业回答
  3. c语言选择题答案在哪查,C语言选择题及答案
  4. python像素处理_用python处理图片实现图像中的像素访问
  5. 雷凌linux车机升级_绿老师学堂:15万合资车谁更“聪明”?体验思域/福克斯/雷凌车机...
  6. 2021年5月9日,是第108个母亲节,祝福所有的母亲节日快乐
  7. cad填充密度怎么调整_CAD填充技巧之填充比例
  8. 教你在电脑中学会视频格式批量转换
  9. CSOL控制台与FPS优化命令大全
  10. 【远距离无线模块】WDS3及SI4338使用步骤及配置说明
  11. OpenCV里的常用Rect用法
  12. 操作系统面试基础知识点
  13. 我愿称之为最强归纳—浮点数的规格化与进制数之间的转换
  14. Glusterfs + heketi使用
  15. Java学习路程1—— 一篇合理的笔记
  16. 读稻盛先生的《活法和干法》的十点灵感
  17. 维峰电子深交所上市:市值64亿 李文化家族色彩浓厚
  18. 阿里P7架构师年薪50W,只因做到了这几点
  19. java读取ppt内容_Java添加、读取和删除 PPT 中的备注
  20. 一元二次方程求根(含根情况的判断)

热门文章

  1. 诚招基于B/S系统开发的.net程序员[上海徐汇区]
  2. 取得人生成功的40条定律
  3. python---之os.path.split()函数
  4. Modules Of YoloV5 Architecture
  5. C# Readonly和Const的区别
  6. 数据结构笔记(二十三)--哈夫曼树
  7. hive分析函数取最新_Hive的分析函数的学习
  8. eof函数怎么用matlab,EOF的源程序MATLAB.doc
  9. 怎么用python自动梳理表格_Python将多份excel表格整理成一份表格
  10. python 去除panda安装包_沉淀,再出发:python中的pandas包