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防火墙;

相关推荐
skywind26 分钟前
为什么 C 语言数组是从 0 开始计数的?
c语言·开发语言·网络·c++
千汇数据的老司机1 小时前
网络安全、数据监测、数据预警的可视化大屏
网络·安全·web安全
稳重的大王2 小时前
为什么QNAP威联通NAS的APP center无法安装APP?
网络
我只会Traceroute2 小时前
【渗透测试】01-信息收集-名词概念
网络·web安全·网络安全·渗透测试
爱就是恒久忍耐2 小时前
CANopen中错误帧的制造和观测
网络·python·制造
姓刘的哦3 小时前
Boost网络库API学习笔记
网络
葱白有滋味3 小时前
浏览器无法访问非80端口网页
运维·服务器·网络
如果'\'真能转义说3 小时前
从网络到缓存:在Android中高效管理图片加载
android·网络·缓存
长安初雪3 小时前
浅析HTTP协议
网络·网络协议·http