当前位置: 首页 > article >正文

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


http://www.kler.cn/news/340463.html

相关文章:

  • 毕业设计项目 深度学习安全帽佩戴检测(源码+论文)
  • 冒泡排序、插入排序、选择排序、归并排序、快速排序算法(C++实现)
  • sqlserver-合理化CTFP(cost threshold for parallelism)
  • OS_过程调用与系统调用
  • 位运算 -- 力扣
  • Springboot 文件上传
  • 海洋鱼类图像分类分割系统源码&数据集分享
  • MySQL进阶 - 索引
  • SpringIoC容器的初识
  • 软件验证与确认实验二-单元测试
  • YOLO11改进 | 卷积模块 | 轻量化GSConv替换普通的conv
  • NLP: SBERT介绍及sentence-transformers库的使用
  • Spring Boot大学生就业招聘系统的开发策略
  • 基于SSM的家庭理财系统的设计与实现
  • 掌握 ASP.NET Web 开发:从基础到身份验证
  • 【Java 并发编程】解决多线程中数据错乱问题
  • 前端vue-安装pinia,它和vuex的区别
  • Vue中watch监听属性的一些应用总结
  • 微信小程序启动不起来,报错凡是以~/包名/*.js路径的文件,都找不到,试过网上一切方法,最终居然这么解决的,【避坑】命运的齿轮开始转动
  • 【Linux】man手册安装使用