ARP欺骗

MAC地址

一般我们称为物理地址,它是以太网或网络适配器的唯一标识符,MAC地址能够区分不同的网络接口,并使用多种网络技术,

MAC地址长48bit,在使用网卡(NIC)的情况下,MAC地址一般都会输入到ROM中,所以任何一个网卡的MAC地址都是唯一的。

ARP协议

又叫做地址解析协议 ,用来实现ip地址到物理地址的映射,即询问目标ip对应的MAC地址的一种协议。

一般使用于IPV4中,而IPV6中使用的是Neighbor。

简单来讲就是利用ip地址定位下一个应该接收数据分包的主机MAC地址,如果目标主机不在同一个链路上,那么查找下一个路由器的MAC地址。

ARP的工作机制

上图中的主机A与主机B位于同一个链路,不需要经过路由器的转换。

主机A向主机B发送一个ip分组,A的地址为192.168.1.2,B的地址为192.168.1.3,互相不知道对方的MAC地址,C和D是同一链路的其它主机。

如果A想获取B的MAC地址,A会通过广播的方式向以太网的所有主机发送一个ARP请求包,

而A发送的ARP请求包会被同一链路上的所有主机或路由器接收并解析。就是每个主机/路由器都会检查ARP请求包中的信息,如果ARP请求包中的目标ip地址和自己的相同,就会将自己主机的MAC地址写入响应包返回主机A。

通过ARp从ip地址获取MAC地址,实现同一链路内的通信

如果是不同链路的话该怎么办?

这就需要代理ARP,通常ARP会被路由器隔离,但是采用代理ARP的路由器的路由器可以将ARP的请求转发给临时的网段,使网段中的节点像是在同一个网段内通信。

ARP缓存

发送ip分组前通过发送一次ARP请求就能确定MAC地址,而ARP高效运行的关键就是维护每个主机和路由器上的ARP缓存,通过每一次ARP获取的MAC地址作为ip对MAC的映射关系到一个ARP缓存表中,下一次在向这个地址发送数据包时就不再需要发送新的ARP请求,直接利用这个缓存表的MAC地址进行数据包的发送,每发送一次ARP请求,缓存表中对应的映射关系都会被清除。MAC地址的缓存有一定的期限,超过该期限,缓存的内容会被清除

在Windows中对arp缓存的查询:

在Windows中使用"-"进行分隔,在Linux中用":"分隔

ARP结构

发送的ARP请求,一般包含着以下的信息,

(在以太网中转换IPV4的地址常用的ARP请求或响应的报文格式)

前面的14个字节构成标准以太网的首部,前面两个字HE段DST

和SRC分别表示以太网的目的地址和以太网的原地址,后面紧跟着ARP请求的长度或类型,ARP请求和ARP应答的值为:0x0806

ARP欺骗

顾名思义,ARP欺骗是针对以太网地址解析协议的一种攻击技术,通过欺骗局域网

内访问者PC的网关MAC地址,使访问者PC误以为攻击更改后的MAC地址是网关的MAC,导致网络不通。

攻击主机kali与被攻击主机CentOS

根据以上可以知道都在同一个链路

192.168.161.130和192.168.161.133

测试一下能否互通

网关ip(看CentOS):192.168.161.2

看CentOS能否上网,ping www.baidu.com观察后发现可以上网

在kali中开启Apache,并观察它的状态

扫描局域网内存在哪些主机,确定攻击的ip地址,如果不知道CentOS的ip地址时,

进行攻击需要再攻击机上使用arpspoof工具进行伪装网关

而arpspoof是dsniff的一个附属工具,所以需要下载一下

安装异常时,更换镜像并进行实时更新

进入/etc/apt路径,输入:

复制代码
cat sources.list <<EOF

输入新的镜像地址之后

进行镜像更新:apt-get update

进行断网攻击:

一般来说在实战中,我们要进行ARP欺骗前要打开ip转发,否则断网之后对方会被察觉

但是我们这里为了确认是否成功欺骗,没有开启

打开ip转发:

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

而kali中为了安全是没有ip转发功能的,配置文件写在了:

/proc/sys/net/ipv4的ip_forward,它的默认为0,修改为1

命令:

arpspoof -i 你的网卡名称 -t 攻击目标的ip地址 攻击目标的网关地址

现在看看CentOS中是否能够上网,不能上网,还有观察网关的mac和kali的mac此时相同,就能成功了

按Ctrl+c 停止,攻击机不在伪装,返回自己的MAC地址,CentOS又可以上网了。

但是arp欺骗存在局限性,仅能在局域网中进行,无法对外网进行攻击。

现在打开ip转发

使用相同的方法进行攻击,

ping一下百度,发现还可以上网,但是网速很慢,

如果正在浏览图片,也可以获取,但是要使用driftnet工具,监测网络流和获取TCP中的图片

drifnet工具可以获取http协议下传输的图片,因为http是明文传输,可以获取http流量中的图片数据,并将它解码为jpg格式的图片,储存在终端上,但是https就不可以了,尝试其他攻击SSLspli

一般命令:

复制代码
drifnet -i 自己的网卡名 -a 需要储存的目录 -d指定目录 -s 抓取声音

,这个在kali里面自带了。

打开方式: sudo ettercap -G

主要有两种方式

UNIFIED :以中间人方式嗅探,比较常用

BRIDGED :在双网卡的情况下,嗅探两块网卡之间的数据包

查看嗅探主机:

发起断网攻击并窃取数据包

加载插件:remote_broser插件

就可以进行远程攻击了,其实可以利用它来进行arp欺骗,但一般被攻击机时win系统

还可以利用它来进行http账户密码的获取,

复制代码
ettercap -Tq -i eth0

利用:sudo ip neigh flush all 在kali里面清除arp缓存

如何防范ARP欺骗?

主要通过:

主机绑定MAC地址和ip地址为静态,arp -s 网关ip 网关MAC;

网关绑定Mac地址和ip地址;

使用arp防火墙;

相关推荐
大面积秃头14 分钟前
Http基础协议和解析
网络·网络协议·http
我也要当昏君2 小时前
6.3 文件传输协议 (答案见原书 P277)
网络
Greedy Alg2 小时前
Socket编程学习记录
网络·websocket·学习
刘逸潇20053 小时前
FastAPI(二)——请求与响应
网络·python·fastapi
Mongnewer4 小时前
通过虚拟串口和网络UDP进行数据收发的Delphi7, Lazarus, VB6和VisualFreeBasic实践
网络
我也要当昏君4 小时前
6.5 万维网(答案见原书P294)
网络
嶔某5 小时前
网络:传输层协议UDP和TCP
网络·tcp/ip·udp
文火冰糖的硅基工坊5 小时前
[嵌入式系统-154]:各种工业现场总线比较
网络·自动驾驶·硬件架构
以己之5 小时前
详解TCP(详细版)
java·网络·tcp/ip
Ronin3055 小时前
【Linux网络】封装Socket
linux·网络·socket·网络通信