写点什么

ARP 欺骗攻击

作者:喀拉峻
  • 2022 年 3 月 10 日
  • 本文字数:1966 字

    阅读完需:约 6 分钟

什么是 ARP 欺骗攻击


ARP 协议:

  • 在以太网中,是用 MAC 地址来进行通讯的。所以要用 ARP 协议将 IP 地址解析成 MAC 地址。

  • ARP 协议就是通过目的 IP 询问设备的 MAC 地址。局域网中的每一台设备都有一个 ARP 缓存表,表中存放 IP 和 MAC 地址的对应情况。

  • 过程如下:在一个以太网交换网络内,主机 A 希望能与主机 B 进行交流,所以主机 A 对整个网络进行广播,然后使用地址解析协议找到目标主机 B 的 MAC 地址。尽管整个广播域下都能收到主机 A 发送的信息,但只有主机 B 才会回复 ARP 请求,将自己的 MAC 地址发给主机 A。

主机A向全网:源IP: A的IP源 MAC: A的MAC目的IP: B的IP目的MAC地址: 00:00:00:00:00:00 之后B主机回复ARP请求:源 IP: B的IP源 MAC: B的MAC目的 IP: A的IP目的 MAC地址: A的MAC
复制代码

ARP 欺骗:

  • ARP 是个早期的网络协议,RFC826 在 1980 就出版了。早期的互联网采取的是信任模式,在科研、大学内部使用,追求功能、速度,没考虑网络安全。

  • ARP 欺骗就是非法的宣称自己是某个 IP 的 MAC 地址,使询问者错误的更新 ARP 缓存表,这样被欺骗主机发送的数据就会发送到发起攻击的主机,而不是理想的目的 IP 主机。

  • 如果攻击者将目的主机也欺骗,就可以实现对两台主机之间数据传输的控制。

  • ARP 攻击仅能在以太网(局域网如机房、内网、公司网络等)进行。无法对外网(互联网、非本区域内的局域网)攻击。

利用虚拟机进行 ARP 攻击

准备:

Dsniff 工具集,包含的工具主要分为四类:

  1. 纯粹被动地进行网络活动监视的工具,包括:dsniff、filesnarf、mailsnarf 、msgsnarf、urlsnarf、webspy;

  2. 针对 SSH 和 SSL 的 MITM(Man-In-The-Middle)"攻击"工具,包括 sshmitm 和 webmitm;

  3. 发起主动欺骗的工具,包括:arpspoof、dnsspoof、macof;

  4. 其它工具,包括 tcpkill、tcpnice

工具:Dsniff 工具集中的 arpspoof

平台:VMware

虚拟机:XP 作为被攻击方;Ubuntu 作为攻击方

将虚拟机的网络连接模式设置为桥接模式,在试验过程中发现仅在虚拟机设置中将网络适配器设置为桥接模式不能使两个运行的虚拟机处于同一个局域网中。需要将网络适配器设置为自定义,选择特定虚拟网络中的桥接网络。具体有哪些虚拟网络可以在 编辑->虚拟机网络编辑器 中添加、配置、删除。



局域网的模式是所有主机在一个子网中,具有相同的 IP 前缀,主机想要和外网通信时需要向局域网的网关 IP 发送请求,从网关接收数据。所以进行 ARP 欺骗就是用局域网中的攻击主机(记为 Attacker)欺骗被攻击主机(记为 Target)自己就是网关,从而接收到 Target 发送的数据,再欺骗网关自己就是 Target 从而获取网关发送给 Target 的数据。

虚拟机的四种网络模式介绍:

NAT 模式:Vhost 访问网络的所有数据由主机提供,vhost 并不真实存在于网络中,主机与网络中的任何机器都不能查看和访问到 Vhost 的存在。

桥接模式:通过主机网卡直接连入到网络中了。因此,它使得虚拟机能被分配到一个网络中独立的 IP,所有网络功能完全和在网络中的真实机器一样。 IP 一般是 DHCP 分配的。

Internal 模式:内部网络模式,虚拟机与外网完全断开,只实现虚拟机与虚拟机之间的内部网络模式。IP:由 DHCP 服务器会分配。

主机模式:是一种比较复杂的模式,前面几种模式所实现的功能,在这种模式下,通过虚拟机及网卡的设置都可以被实现。

surprise! 500G 网络安全学习资料,👉戳此免费获取

步骤:

欺骗之前:

在 Ubuntu 中安装 Dsniff:要用到管理员权限

sudo apt-get install dsniff
复制代码

查看 XP 的 IP 地址:在 cmd 使用 ipconfig 命令,我的 XP 的 IP 地址是 192.168.43.181

查看 Ubuntu 的 IP 地址:在终端用 ifconfig 命令,我的 Ubuntu 的 IP 地址是 192.168.43.231

在 Ubuntu 中查看网关:终端运行命令:netstat -rn



欺骗之前先查看一下 XP 中的 ARP 缓存表,在 cmd 中用 arp -a 命令:可以看出分别为网关的 mac 地址和局域网中另一个主机 Ubuntu 的 MAC 地址



进行欺骗:

Ubuntu 中:分别在在两个终端运行命令:

arpspoof -i ens33 -t 192.168.43.1 192.168.43.181arpspoof -i ens33 -t 192.168.43.181 192.168.43.1
复制代码

arpspoof 命令解释:

Usage: arpspoof [-i interface] [-c own|host|both] [-t target] [-r] host
复制代码

其中的 interface 可以在 Ubuntu 中查看网关是看到,本机为 ens33,这条命令的意思即为:欺骗主机 host 自己就是主机 target

命令 1 的意思是告诉 XP 我 Ubuntu 就是网关,命令 2 的意思是告诉网关我 Ubuntu 就是 XP

运行之后的界面:



断网攻击:

在 Ubuntu 的另一个终端中运行:这条命令要在 root 下运行

echo 0 > /proc/sys/net/ipv4/ip_forward
复制代码

命令的中'0'含义是终止数据包转发,使 XP 断网

echo 1 > /proc/sys/net/ipv4/ip_forward
复制代码

命令的中'1'含义是允许数据包转发,即停止断网

在攻击前后可以在 XP 的 cmd 运行 ping www.baidu.com 看是否可以 ping 通

数据获取:

安装工具:

sudo apt-get install driftnet
复制代码

在终端以管理员身份运行:

sudo driftnet
复制代码

之后会弹出 driftnet 窗口

此时在 XP 中打开任意网页就可以在 Ubuntu 中的 driftnet 窗口中看到获取的图片

用户头像

喀拉峻

关注

左手Java右手Python,中间纹个C++ 2021.06.26 加入

还未添加个人简介

评论

发布
暂无评论
ARP欺骗攻击_网络安全_喀拉峻_InfoQ写作平台