计算机网络——ARP欺骗

本文转载于vaeloverforever的博客,地址为https://blog.csdn.net/vaeloverforever/article/details/84504876

一、实验环境(实验设备)

硬件:微型计算机

软件: kali linux下的arpspoof工具和driftnet工具

二、实验原理及内容以及实验小结

㈠ ARP欺骗

⑴利用arpspoof工具和driftnet工具的arp欺骗实验

①实验原理

ARP协议:ARP(Address Resolution Protocol,地址解析协议)是一个位于TCP/IP协议栈中的网络层,负责将某个IP地址解析成对应的MAC地址。

2.ARP协议的基本功能:通过目标设备的IP地址,查询目标设备的MAC地址,以保证通信的进行。

  1. ARP攻击的局限性:ARP攻击仅能在局域网进行,无法对外网进行攻击。

  2. ARP攻击的攻击原理:ARP攻击就是通过伪造IP地址和MAC地址实现ARP欺骗,能够在网络中产生大量的ARP通信量使网络阻塞,攻击者只要持续不断的发出伪造的ARP响应包就能更改目标主机ARP缓存中的IP-MAC条目,造成网络中断或中间人攻击。

5.常见的ARP欺骗手法:同时对局域网内的一台主机和网关进行ARP欺骗,更改这台主机和网关的ARP缓存表。如下图(PC2是攻击主机,PC1是被攻击主机)所示:

在这里插入图片描述
攻击主机PC2发送ARP应答包给被攻击主机PC1和网关,分别修改它们的ARP缓存表, 将它们的ip地址所对应的MAC地址,全修改为攻击主机PC2的MAC地址,这样它们之间数据都被攻击主机PC2截获。

②实验内容

实验内容分为两个部分:ARP断网攻击和ARP欺骗(截获图片)。这两个实验都是用了arpspoof这个工具,其中进行断网攻击时,不开启IP转发功能即可(在我们用的kali linux系统中,这个功能默认是关闭的);而进行ARP欺骗时,要打开IP转发功能。

1、利用arpspoof进行ARP断网攻击

A. 实验说明:

*被攻击主机:电脑的物理机,win10系统,其ip地址为192.168.43.64,MAC地址为e0:94:67:9c:24:e9

*攻击主机:电脑的虚拟机,kali linux系统,其ip地址为192.168.43.149,MAC地址为00:0c:29💿6c:36

*网关:ip地址为192.168.43.1,MAC地址为d4-61-2e-d6-bc-10

  • 攻击工具:kali linux系统下的arpspoof工具

B. 实验步骤:

Step 1. 在攻击主机打开终端,输入ifconfig,查看其网卡名称、ip地址、MAC地址。

在这里插入图片描述
图中,红色箭头为网卡名称,紫色箭头为ip地址,蓝色箭头为MAC地址。

Step 2. 在虚拟机中,通过fping命令,查看当前局域网还存在那些主机,以确定要攻击的主机的ip地址

在这里插入图片描述
上图中,第一个ip地址192.168.43.1即为当前局域网的网关,而第二个ip地址就是要攻击的物理机的ip地址:192.168.43.64

Step 3. 在物理机中,通过控制面板中的网络和共享中心,查看物理机的ip地址,验证步骤二是否正确。

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
从右图中可以看出,物理机的ip地址的确为192.168.43.64(蓝色箭头),其MAC地址为E0-94-67-9C-24-E9(红色箭头),而局域网的网关地址也确实为192.168.43.1

Step 4. 在虚拟机中,ping一下要攻击的物理机,同时在物理机中ping一下虚拟机。确保两台主机可以通信。

在这里插入图片描述
在这里插入图片描述
从图中可以看出,没有包丢失,两台主机可以通信。可以进行ARP攻击。

Step 5. 在进行ARP攻击之前,可以先查看一下被攻击主机的ARP缓存表。以便于被攻击后的ARP缓存表进行对照。在物理机中,打开cmd,输入arp -a

在这里插入图片描述
图中显示,物理机中的ARP缓存表记录了网关的MAC地址和攻击主机的MAC地址,可以看出它们的MAC地址是不一样的。

Step 6. 在攻击之前,检测一下被攻击主机的联网状态,用被攻击主机的cmd,ping一下百度。

在这里插入图片描述
图中显示,没有包丢失,说明此时被攻击主机可以上网。

Step 7. 在虚拟机中打开终端,利用arpspoof工具,对物理机发起ARP断网攻击。

输入arpspoof -i eth0 -t 192.168.43.64 192.168.43.1。其中,-i后面的参数是网卡名称,-t后面的参数是目的主机和网关,要截获目的主机发往网关的数据包。

在这里插入图片描述
从图中可以看出,此时虚拟机不断地向物理机发送ARP应答包,这个应答包将网关的ip地址192.168.43.1和虚拟机的MAC地址0:c:29💿6c:36绑定在一起,从而将物理机的ARP缓存表中的网关的MAC地址修改为虚拟机的MAC地址。

Step 8. 在物理机中再次使用cmd,向百度发送一个ping包,检查是否可以联网。

同时打开网页,进行检查。

在这里插入图片描述
图中的包全部丢失,没有接收到任何一个包。再打开百度网页进行查看。

在这里插入图片描述
从上面两张图,可以看出,此时物理机已经断网了。

Step 9.检查被攻击主机的ARP缓存表,验证其是否被ARP攻击了。

在这里插入图片描述
从图中,可以看出,此时被攻击主机的ARP缓存表中的网关和攻击主机的MAC地址是一样的,均为攻击主机的MAC地址。可以认定,物理机遭遇了ARP攻击。

Step 10. 关闭虚拟机的终端,再次检查物理机的联网状态,ping一下百度。

在这里插入图片描述
从图中可以看出,在一会的延迟之后,物理机又可以ping通百度了,又可以正常上网了。

2.利用arpspoof工具和driftnet工具进行ARP欺骗(截获图片)

A. 实验说明:

*被攻击主机:电脑的物理机,win10系统,其ip地址为192.168.43.64,MAC地址为e0:94:67:9c:24:e9

*攻击主机:电脑的虚拟机,kali linux系统,其ip地址为192.168.43.149,MAC地址为00:0c:29:cd6c:36

*网关:ip地址为192.168.43.1,MAC地址为d4-61-2e-d6-bc-10

  • 攻击工具:kali linux系统下的arpspoof工具

B. 实验步骤:

Step 1. 在攻击主机打开终端,输入ifconfig,查看其网卡名称、ip地址、MAC地址。

在这里插入图片描述
图中,红色箭头为网卡名称,紫色箭头为ip地址,蓝色箭头为MAC地址。

Step 2. 在虚拟机中,通过fping命令,查看当前局域网还存在那些主机,以确定要攻击的主机的ip地址

在这里插入图片描述
上图中,第一个ip地址192.168.43.1即为当前局域网的网关,而第二个ip地址就是要攻击的物理机的ip地址:192.168.43.64

Step 3. 在物理机中,通过控制面板中的网络和共享中心,查看物理机的ip地址,验证步骤二是否正确。

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
从右图中可以看出,物理机的ip地址的确为192.168.43.64(蓝色箭头),其MAC地址为E0-94-67-9C-24-E9(红色箭头),而局域网的网关地址也确实为192.168.43.1

Step 4. 在虚拟机中,ping一下要攻击的物理机,同时在物理机中ping一下虚拟机。确保两台主机可以通信。

在这里插入图片描述
在这里插入图片描述
从图中可以看出,没有包丢失,两台主机可以通信。可以进行ARP攻击。

Step 5. 在进行ARP攻击之前,可以先查看一下被攻击主机的ARP缓存表。以便于被攻击后的ARP缓存表进行对照。在物理机中,打开cmd,输入arp -a

在这里插入图片描述
图中显示,物理机中的ARP缓存表记录了网关的MAC地址和攻击主机的MAC地址,可以看出它们的MAC地址是不一样的。

Step 6. 在进行ARP欺骗前,得先打开攻击主机的IP转发功能,linux因为系统安全考虑,是不支持IP转发的,其配置文件写在/proc/sys/net/ipv4的ip_forward中。默认为0,接下来修改为1。

在这里插入图片描述
在这里插入图片描述
图中是直接找到ip_forward文件,将其值修改为1的。当然也可以通过命令行echo 1 > /proc/sys/net/ipv4/ip_forward实现。

在这里插入图片描述
Step 7.在进行ARP欺骗前,先检查物理机的联网状态,Ping一下百度。

在这里插入图片描述
没有包丢失,可以ping通,物理机可以正常上网。

Step 8.在kali linux中利用arpspoof工具,对物理机发起AR欺骗攻击。

输入arpspoof -i eth0 -t 192.168.43.64 192.168.43.1。其中,-i后面的参数是网卡名称,-t后面的参数是目的主机和网关,要截获目的主机发往网关的数据包。

在这里插入图片描述
从图中可以看出,此时虚拟机不断地向物理机发送ARP应答包,这个应答包将网关的ip地址192.168.43.1和虚拟机的MAC地址0:c:29💿6c:36绑定在一起,从而将物理机的ARP缓存表中的网关的MAC地址修改为虚拟机的MAC地址。虚拟机截获了物理机和网关之间的数据包。

Step 9.检查物理机的联网状态,Ping一下百度。

在这里插入图片描述
没有包丢失,可以ping通,物理机依旧可以正常上网。

Step 10.检查物理机的ARP缓存表,检查其是否遭遇了ARP欺骗。

在这里插入图片描述
从图中,可以看出,此时被攻击主机的ARP缓存表中的网关和攻击主机的MAC地址是一样的,均为攻击主机的MAC地址。可以认定,物理机遭遇了ARP欺骗。

Step 11. 此时,物理机和网关通信的数据包都会流经虚拟机,那么可以在虚拟机中利用driftnet工具,可以捕获物理机正在浏览的图片。在虚拟机中打开driftnet。

在这里插入图片描述
从图中可以看出,虚拟机正在不断地捕获物理机和网卡之间的数据包。

Step 12.在物理机中,打开一个网页,浏览几张图片。并在虚拟机中driftnet窗口中监看。

在这里插入图片描述
这是物理机正在查看一张风景图。

在这里插入图片描述
而虚拟机中driftnet窗口右下角可以看到这张图片,另外窗口中的其他图片是物理机登陆的QQ中的图片,第一行的前三个是群头像,其他的是QQ聊天的气泡图片,可以判断,此时这三个群有消息发送到物理机,而且这些消息使用了窗口显示的气泡。

在这里插入图片描述
此时,物理机换了一张图片进行查看。
在这里插入图片描述
在虚拟机中的driftnet窗口中,依旧可以看到这张图片。

③实验小结

(一)实验中遇到的主要问题及解决方法

1.问题:一开始查看虚拟机的ip地址时,发现虚拟机的ip地址和物理机的ip地址不在同一个网段中。如图:

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
虚拟机的ip地址为192.168.233.128,而物理机的ip地址为192.168.43.64。两者不在同一个局域网中。根据ARP攻击的局限性,不在同一个局域网的两台主机是无法进行攻击的。

解决方法:通过查阅资料,发现虚拟机的网络连接有三种模式:桥接模式、NAT模式、仅主机模式。一开始我们的虚拟机采用了默认的NAT模式,这种模式下虚拟机共享主机的IP地址,Vmware会在主机上创建专用的虚拟网络,用于主机和虚拟机之间进行通信。而在桥接模式下,虚拟机被当做一个完全独立的主机,占用局域网的一个IP地址,将虚拟机的网卡交接到主机的物理网卡上,通过主机的网卡访问外部的Internet。所以我们应该选择桥接模式。

问题:物理机可以ping通虚拟机,虚拟机却ping不通物理机。

在这里插入图片描述
在这里插入图片描述
解决方式:组员积极讨论,回想老师在课上提到的“现在系统将不经常用的端口设置为默认关闭”,大胆猜测:linux系统比较开放,默认开启ping功能,而win10系统可能会默认关闭ping功能。查看win10系统上的与Ping相关服务的开启状态。

在这里插入图片描述
果然,win10默认关闭的ICMP的回显请求,启用该规则之后,两台主机就可以成功ping通了。

(二)实验心得

通过上面的两个小实验,我们对ARP攻击有了一个更加直观、更加深刻的了解。另外,通过自己动手实践,发现书上讲的知识还是要动手做一做才行,因为书上的机器环境可能和你自己的不一样,要通过自己的积极实践、不断查阅资料,才能不断解决问题,加深对知识的理解。最后,对于老师课上讲的东西,不仅仅要认真记录,更要去理解,只有在理解的基础上,才能达到举一反三、触类旁通的效果。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
计算机网络安全》实验报告 实验名称: arp欺骗 提交报告时间: 年 月 日 1. 实验目的 程序实现ARP欺骗,对ARP欺骗进行进一步的认识并提出防范措施。 2. 系统环境 主机1 windows系统 主机2 windows系统 主机3 linux操作系统 3. 网络环境 同一网段下的网络 四、实验步骤与实验结果 将主机A、C、E为一组,B、D、F为一组。实验角色说明如下: "实验主机 "实验角色 " "主机A、B "目标主机一/Windows " "主机C、D "黑客主机/Linux " "主机E、F "目标主机二/Windows " 首先使用"快照X"恢复Windows/Linux系统环境。 一.ARP欺骗攻击 实验需求: (1)本实验使用交换网络结构(参见附录B),组一、二和三间通过交换模块连接(主 机A、C、E通过交换模块连接,主机B、D、F也通过交换模块连接)。因此,正常情况下 ,主机C无法以嗅探方式监听到主机A与主机E间通信数据,同样主机D也无法监听到主机 B与主机F间的通信数据。 (2)主机C要监听主机A和主机E间的通信数据;主机D要监听主机B与主机F间的通信数据 。 分析: 黑客主机通过对目标主机进行ARP欺骗攻击,获取目标主机间的通信数据。 1.正常通信 图6-1-1 目标主机正常通信示意图 (1)目标主机二单击工具栏"UDP工具"按钮,启动UDP连接工具,创建2513/udp服务端。 主机1发送数据 (2)目标主机一启动UDP连接工具,将"目标机器"IP地址指定为目标主机二的地址,目 标端口与服务器一致。在"数据"文本框中输入任意内容,单击"发送"按钮,向服务端发 数据。服务端确定接收到数据。 主机2接收到数据 (3)黑客主机单击工具栏"控制台"按钮,切换至/opt/ExpNIC/NetAD- Lab/Tools/ids目录(Snort目录),命令如下: 主机3 通过上述命令snort仅会监听源IP地址为目标主机一的、传输协议类型为UDP的网络 数据(详细的snort使用命令见实验10|练习一)。 (4)目标主机一再次向目标主机二发送消息,黑客主机停止snort监听(Ctrl+C),观 察snort监听结果,是否监听到目标主机间的通信数据。为什么? 主机1向主机2发送消息 主机3不能监听到主机1发送到的数据 因为命令snort只会监听源IP地址为目标主机一的、传输协议类型为UDP的网络数据,并 不能截获数据 (5)目标主机一查看ARP缓存表,确定与目标主机二的IP相映射的MAC地址是否正常。 此时主机1arp缓存正常 2.ARP攻击 图6-1-2 ARP攻击示意图 (1)黑客主机单击平台工具栏"控制台"按钮,进入实验目录,运行ARPattack程序攻击 目标主机一,将其ARP缓存表中与目标主机二相映射的MAC地址更改为黑客主机的MAC地址 ,命令如下: 其中第一个参数为被攻击主机IP地址,第二个参数为被攻击主机MAC地址,第三个 参数为与被攻击主机进行正常通信的主机IP地址。 通过上述命令在目标主机一的ARP缓存表中,与目标主机二IP相绑定的MAC被更改为黑客 主机MAC。 (2)黑客主机启动snort,同样监听源IP地址为目标主机一的、传输协议类型为UDP的网 络数据。 (3)目标主机一继续向目标主机二发送数据,目标主机二是否接收到数据?目标主机间 的通信是否正常?黑客主机停止snort监听,观察snort监听结果,是否监听到目标主机 间的通信数据。为什么?主机2不能接收到数据,通信不正常 主机1发送数据"ee" 主机三监听到发送的数据"ee" 因为运行ARPattack程序攻击目标主机一,将其ARP缓存表中与目标主机二相映射的M AC地址更改为黑客主机的MAC地址,主机3已经截获了主机1发给主机2的数据;命令snor t会监听源IP地址为目标主机一的、传输协议类型为UDP的网络数据。 (4)目标主机一查看ARP缓存表,确定与目标主机二的IP相映射的MAC地址是否正常。 Ip为主机2ip,但MAC已经改成黑客主机的MAC地址了 3.单向欺骗 正如步骤2中所示的实验现象,在黑客实施了简单的ARP攻击后,目标主机二会接收不到 目标主机一的消息,在接下来的时间里目标主机一、二很容易会对网络状况产生怀疑。 他们会去查看并修改ARP缓存表。所以应尽量减少目标主机由于受到ARP攻击而表现出的 异常,将黑客主机做为"中间人",将目标主机一发送的数据转发给目标主机二,是一种 很可行的方法。 图6-1-3 ARP单向欺骗示意图 (1)黑客主机开启路由功能,具体操作如下: 在控制台中输入命令:echo 1 >/proc/sys/net/ipv4/ip_forward 主机3 (2)黑客主机捕获来自目标主机一的数据包,并将

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值