0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

简析ARP欺骗

jf_vLt34KHi 来源:Tide安全团队 2023-05-20 10:36 次阅读

数据转发过程

在聊ARP之前,我们需要先了解一下我们在发送一个数据时在网络中发生了什么 ,它需要什么东西,又是怎么获得的?对方又是怎么接收到的?当前现网中我们都是使用TCP/IP协议栈进行网络通信的,假设当前你正在通过火狐浏览器访问tide官网(www.tidesec.com),当你输入完网址,敲下回车键后,计算机内部会发生如下事情:首先当前计算机只知道域名为www.tidesec.com,此时要先向DNS服务器发送数据去请求www.tidesec.com的IP地址,DNS服务器收到数据包后发现计算机请求获得www.tidesec.com的IP地址,将www.tidesec.com所绑定的IP地址打包发送给计算机。

37327466-f644-11ed-90ce-dac502259ad0.png

火狐浏览器调用HTTP协议,完成应用层数据封装,HTTP依靠传输层的TCP进行数据的可靠性传输,将封装好的数据传输到传输层,传输层将应用层传递下来的Data添加上相应的TCP头部信息(源端口、目的端口)后。传递给网络层,网络层收到传输层传递爱的数据段后添加上相应的IP头部信息(源IP、目的IP)后将数据包传递给数据链路层,数据线路层收到后,添加上相应的Ethernet头部信息(源MAC地址、目的MAC地址)和FCS帧尾后将数据帧传递给物理层,根据物理介质的不同,物理层负责将数字信号转换成电信号、光信号、电磁波信号等,转换完成的信号在网络中开始传递。

374e620c-f644-11ed-90ce-dac502259ad0.png

如刚刚上面数据发送方数据封装的流程,我们看到了在封装时,传输层需要源目端口,这里源端口随机分配,目的端口由服务器的应用指定,网络层需要源目IP,这里刚刚我们向DNS服务器请求www.tidesec.com时也获得了tide官网的IP地址,也能实现,那么现在数据链路层需要源目MAC地址,源MAC地址好说,自己的mac地址,那目的mac地址呢?该怎么获取呢?这时就需要用到我们的ARP协议了。

地址解析协议(ARP)

ARP(Address Resolution Protocol)是一种网络层协议,根据已知的目的IP地址解析获得其对应的MAC地址。在局域网中,每台设备都有唯一的MAC地址,就像我们的身份证号一样在全球独一无二的,而IP地址是可以重复分配的。因此,当一个设备需要发送数据包到另一个设备时,它需要知道另一个设备的MAC地址。

37688c4a-f644-11ed-90ce-dac502259ad0.png

那么ARP是怎么工作的呢?一般设备里都会有一个ARP缓存表,用来存放IP地址和MAC地址的关联信息,在发送数据前,设备会先查找ARP缓存表,如果缓存表中存在对方设备的MAC地址,则直接采用该MAC地址来封装帧,然后将帧发送出去。如果缓存表中不存在相应信息,则通过ARP来获取。

3789b5b4-f644-11ed-90ce-dac502259ad0.png

当ARP缓存表为空时,主机1通过发送ARP request报文来获取主机2的MAC地址,由于不知道目的地址,因此ARP Request报文内的目的MAC为广播地址FF-FF-FF-FF-FF-FF,因为ARP Request是广播数据帧,因此交换机收到后,会对该帧执行泛洪操作,也就是说该网络中所有主机包括网关都会接收到此ARP Request报文。

37a7b3b6-f644-11ed-90ce-dac502259ad0.png

所有的主机接收到该ARP Request报文后,都会检查它的目的IP地址字段与自身的IP地址是否匹配。主机2发现IP地址匹配,则会将ARP报文中的发送端MAC地址和发送端IP地址信息记录到自己的ARP缓存表中。

37c8b9bc-f644-11ed-90ce-dac502259ad0.png

这时主机2通过发送ARP Reply报文来响应主机1的请求,此时主机2已知主机1的MAC地址,因此ARP Reply是单播数据帧。

37e2eca6-f644-11ed-90ce-dac502259ad0.png

主机1收到ARP Reply以后,会检查ARP报文中目的端IP地址字段与自身的IP地址是否匹配。如果匹配,ARP报文中的发送端MAC地址和发送端IP地址会被记录到主机1的ARP缓存表中。

3801a740-f644-11ed-90ce-dac502259ad0.png

至此,ARP工作结束,获得目的IP对应的MAC地址后,即可封装完整的数据包进行数据包的发送(上述工作过程为局域网内的工作过程,如访问其他网段或外网中的IP地址时,所获得的MAC地址为网关的MAC地址,网关收到此ARP Request后会发送ARP Reply)

ARP欺骗

刚刚我们也看到了,ARP协议是通过广播来获取目标设备的MAC地址的,当一个设备需要发送数据到另一个设备时,他会发送一个ARP请求,询问局域网内的所有设备,是否具有指定IP地址对应的MAC地址,目标设备收到请求后会回复一个ARP应答,告诉请求主机它的MAC地址。ARP欺骗利用了这种工作原理,攻击者会发送伪造的ARP数据包,将自己伪装成网关或其他设备,目标设备收到伪造的ARP数据包后,会将攻击者的MAC地址和其目标IP地址相对应写入ARP缓存表中,并将后续数据包发送给攻击者。攻击者就可以截获目标设备发送的数据包,甚至可以修改、篡改数据包中的内容。同样的ARP欺骗也分为单向欺骗和双向欺骗。

单向欺骗

如下图所示,攻击者通过伪造ARP Request来将自己的MAC地址伪装成网关IP相对应的mac地址广播出去,主机A收到该ARP Request后会将发现该ARP Request目的IP地址为自己,将该ARP Request中的目的IP地址与MAC地址写入到ARP缓存表后,然后发送ARP Reply,将本该传输给网关的数据错误的传输给攻击机,使主机A得不到网关的响应数据,从而导致断网。

381a0272-f644-11ed-90ce-dac502259ad0.png

以上就是ARP单向欺骗的原理,那我们怎么来实现呢?往下看 首先我们先来查看一下主机A的mac地址缓存表,当前192.168.45.2就是当前系统的网关地址,所对应的也是真实的MAC地址

382975a4-f644-11ed-90ce-dac502259ad0.png

那么现在主机A也是可以正常上网的。

38350c0c-f644-11ed-90ce-dac502259ad0.png

根据我们上面的思路来看,我们如果想要让主机A找不到网关无法上网,我们只需要构造一个IP地址为192.168.45.2的虚假mac地址的ARP Reply数据包就可以了,这里我们使用科莱网络分析系统这个工具就可以实现这个功能。首先我们来先对当前网段的MAC地址进行一个扫描,获得主机A的MAC地址。

38574326-f644-11ed-90ce-dac502259ad0.png38658f80-f644-11ed-90ce-dac502259ad0.png

这里获得了主机A的MAC地址后,就可以点击上面的数据包生成器。

387e25cc-f644-11ed-90ce-dac502259ad0.png

添加ARP数据包

38a52ab4-f644-11ed-90ce-dac502259ad0.png

然后在目的MAC地址和目的IP中输入我们的目标主机的IP和MAC地址,源MAC地址任意输即可,源IP输入网关的IP地址。

38bc0ba8-f644-11ed-90ce-dac502259ad0.png

然后点击发送,选择网卡,这里选择循环发送,次数为0,让它一直发送伪造的ARP数据包后点击开始。

38e07fce-f644-11ed-90ce-dac502259ad0.png

这时我们抓包看一下当前的网络状况,可以看到,源mac为00-01-02-03-04-05,寻找目的IP地址为192.168.45.131的ARP Request已经发出。

38fa25dc-f644-11ed-90ce-dac502259ad0.png

这时我们再来看主机A的ARP地址表中是否有了变化

3915e1c8-f644-11ed-90ce-dac502259ad0.pngimage.png

可以看到主机A中对应192.168.45.2的MAC地址成功被我们修改为了00-01-02-03-04-05,那这时我们再访问一下百度来看看。

392513e6-f644-11ed-90ce-dac502259ad0.png

可以看到主机A目前已经无法正常返回百度。

双向欺骗

如下图所示,攻击机一直发送伪造的ARP Reply,欺骗网关自己是主机A,欺骗主机A自己是网关,同时开启路由转发功能,就可以让主机A在正常上网的情况下截获网络数据包,所有数据都会经过攻击机然后再转发给主机A。

393e4f32-f644-11ed-90ce-dac502259ad0.png

如上图所示,进行ARP双向欺骗后,主机A所有的通信都需要经过攻击机,攻击者再对目标和网关之间的数据进行转发,则可作为一个"中间人",实现监听目标却又不影响目标正常上网的目的。可通过kali中自带的arpspoof工具进行攻击,首先在kali上开启数据转发

#终止
echo0>/proc/sys/net/ipv4/ip_forward
#允许
echo1>/proc/sys/net/ipv4/ip_forward
395f9e62-f644-11ed-90ce-dac502259ad0.png

首先来看我们攻击机的mac地址为0029AE:FB

3973ef84-f644-11ed-90ce-dac502259ad0.png

然后使用arpspoof进行双向毒化攻击

arpspoof-ieth0-t192.168.45.143-r192.168.45.2
39ad60a2-f644-11ed-90ce-dac502259ad0.png

开启后我们再来看当前网络情况

39c7548a-f644-11ed-90ce-dac502259ad0.png

可以看到当前网络中同时发出了两个ARP Reply,源IP分别为网关和主机A,源mac为攻击机的mac地址,这里我们再来看下主机A的MAC地址缓存表

39dafa12-f644-11ed-90ce-dac502259ad0.png

可以看到当前主机A的MAC地址缓存表中,192.168.45.2的mac地址与我们的攻击机一致,这里我们访问一下TideFinger 潮汐指纹识别网站,也是可以正常访问的。

39e56150-f644-11ed-90ce-dac502259ad0.png

然后再看我们攻击机有没有抓到主机A访问http://finger.tidesec.net/的流量

39f78f56-f644-11ed-90ce-dac502259ad0.png

以上就是ARP双向欺骗劫持流量的内容,那么,ARP双向欺骗除了能做流量劫持外,还可以做DNS劫持,假如主机A想要访问www.baidu.com,我们可以通过毒化DNS来达到让主机A跳转到我们的钓鱼站点来。这里需要用到我们在kali中自带的ettercap,在使用前先修改一下它DNS的配置文件。

vim/etc/ettercap/etter.dns
3a090ae2-f644-11ed-90ce-dac502259ad0.png

然后打开ettercap,点击开始按钮

ettercap-G
3a156e22-f644-11ed-90ce-dac502259ad0.png

扫描当前网络

3a27e412-f644-11ed-90ce-dac502259ad0.png

将目标主机和网关分别添加到Target1和Target2中

3a4ae336-f644-11ed-90ce-dac502259ad0.png

添加完毕之后,打开ARP poisoning,选择Sniff remote connections,点击OK

3a5893be-f644-11ed-90ce-dac502259ad0.png3a876f40-f644-11ed-90ce-dac502259ad0.png

然后选择Plugins-Manager Plugins,勾选DNS_Spoof。

3a97c4ee-f644-11ed-90ce-dac502259ad0.png3ab1b23c-f644-11ed-90ce-dac502259ad0.png

然后点击左上角的start按钮即可开始攻击。

3adc4498-f644-11ed-90ce-dac502259ad0.png

这时再去访问www.baidu.com时,即可跳转的我们刚刚所劫持的网站中,如下图所示。

3af1a78e-f644-11ed-90ce-dac502259ad0.png





审核编辑:刘清

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • DNS服务器
    +关注

    关注

    0

    文章

    21

    浏览量

    8393
  • 电磁波
    +关注

    关注

    21

    文章

    1357

    浏览量

    53194
  • FCS
    FCS
    +关注

    关注

    4

    文章

    32

    浏览量

    14357
  • TCP协议
    +关注

    关注

    1

    文章

    83

    浏览量

    12004

原文标题:简析ARP欺骗

文章出处:【微信号:Tide安全团队,微信公众号:Tide安全团队】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    浅谈如何防治ARP病毒

    浅谈如何防治ARP病毒近期, 现一种新的“ARP欺骗”木马病毒在互联网上迅速扩散.主要表现为用户频繁断网、IE浏览器频繁出错以及一些常用软件出现故障等问题。Arp病毒在局域网中感染较多
    发表于 10-10 15:24

    ARP地址解析协议简介

    的网络流通不是根据IP地址进行,而是按照MAC地址进行传输。所以,那个伪造出来的MAC地址在A上被改变成一个不存在的MAC地址,这样就会造成网络不通,导致A不能Ping通C!这就是一个简单的ARP欺骗
    发表于 02-24 08:27

    Armv8.1-M PAC和BTI扩展

    1、Armv8.1-M PAC和 BTI 扩展Armv8-M通过Trustzone for Armv8-M, Memory Protection Unit (MPU) 和Privileged
    发表于 08-05 14:56

    RK3288 Android6.0系统RT5640播放时的Codec寄存器列表

    1、RT5640播放时的Codec寄存器列表Platform: RockchipOS: Android 6.0Kernel: 3.10.92Codec: RT5640此文给调试RT5640播放
    发表于 11-24 18:12

    基于ARP缓存超时的中间人攻击检测方法

    探讨ARP协议工作机理,通过对内部网络通信危害较大的ARP欺骗技术的分析,提出一种交换网络环境下基于ARP缓存超时机制的中间人攻击行为检测方法,研究Windows操作系统中
    发表于 04-18 09:41 17次下载

    ARP协议攻击及其解决方案

    由于ARP协议的设计缺陷,使得ARP协议在使用的过程中存在着盗用IP地址和ARP欺骗等严重的安全问题。本文分析ARP攻击的基本原理,并提出相
    发表于 06-11 10:17 16次下载

    基于ARP协议的攻击及其防御方法分析

    ARP 协议欺骗是网络欺骗的行为之一,它使得攻击者可以重定向一个以太网上的IP 数据报以取得目标主机的信任。文章在分析ARP 协议工作原理、安全缺陷、攻击原理和攻击方式的基
    发表于 09-01 16:11 10次下载

    ARP欺骗原理及抵御方案设计

    ARP(地址解析协议的英文缩写)欺骗是一种利用ARP 协议的漏洞对局域网内主机的通信实施攻击的欺骗行为,本文对ARP 协议的工作原理和安全漏
    发表于 09-14 14:08 11次下载

    大型局域网ARP攻击与防护

    本文针对目前大型局域网ARP 欺骗的严峻形势,分析现有的防治方法,提出了一个优化的解决方案。
    发表于 12-18 17:37 15次下载

    交换机环境下ARP欺骗检测的新方法

    本文集中讨论了一个关于在交换机构建的环境下降低ARP 欺骗威胁的新方法。首先,文章简要地介绍了ARP 协议,并指出了该协议的漏洞,在此基础之上叙述了ARP
    发表于 01-09 15:41 13次下载

    基于ARP欺骗的网络监听技术研究

    基于ARP欺骗的网络监听技术研究  引言   当前局域网大部分属于以太网,其主要连接方式主要是通过交换机进行连接。交换机在外型上类似于集线器,但在内
    发表于 01-20 11:13 1048次阅读
    基于<b class='flag-5'>ARP</b><b class='flag-5'>欺骗</b>的网络监听技术研究

    基于ARP欺骗的中间人攻击的检测与防范_刘衍斌

    基于ARP欺骗的中间人攻击的检测与防范_刘衍斌
    发表于 03-19 11:33 0次下载

    ARP是什么意思?ARP是什么协议?ARP协议用于什么地方

    ARP是什么意思?ARP是什么协议?ARP协议用于什么地方 ARP是什么意思?ARP是什么协议?ARP
    发表于 11-10 18:00 1.8w次阅读

    arp攻击原理_arp攻击怎么解决

    相信绝大数的用户对ARP病毒都不会陌生,如果本机遭受到ARP攻击,电脑数据就会向指定地址传送,一般最为明显的现象就是电脑无故出现断网的情况,并且网络时连时断,会成为扰乱局域网中其它电脑上网的罪魁祸首。那么ARP攻击怎么解决?下面
    的头像 发表于 01-11 16:12 2.9w次阅读
    <b class='flag-5'>arp</b>攻击原理_<b class='flag-5'>arp</b>攻击怎么解决

    Wireshark抓包原理及使用教程

    Wireshark使用的环境大致分为两种,一种是电脑直连网络的单机环境,另外一种就是应用比较多的网络环境,即连接交换机的情况。 「单机情况」下,Wireshark直接抓取本机网卡的网络流量; 「交换机情况」下,Wireshark通过端口镜像、ARP欺骗等方式获
    的头像 发表于 11-19 15:05 2046次阅读
    Wireshark抓包原理及使用教程