网际层——ARP欺骗之窃听秘密及实现

来源:互联网 发布:网上购物系统数据库 编辑:程序博客网 时间:2024/06/05 10:37

一、ARP攻击利用条件

1、ARP协议和TCP/IP的其他协议一样,ARP协议也是假设在一个可信任的环境中运行的协议。既没有检查ARP请求和应答报文的合法性,也没有对发出请求和应答报文的主机身份进行确认。

2、每台联网的主机和路由器中都维护着一份ARP缓存表,登记者本局域网内所有主机的IP地址和对应的Mac地址(别名物理地址或者硬件地址)。本机或者本路由器需要发送IP数据宝石,首先检索本地的ARP表,并根据检索结果决定发送方式。

3、ARP协议具有无状态特性,即不管有没有发送过ARP请求,只要有发往本地主机的ARP英达堡,计算机就会不加验证的接受并更新自己的ARP缓存。

二、ARP协议定义

地址解析协议(Address Resolution Protocol ,ARP)是IP协议最重要的配套协议之一,也是网际层协议,其目的是将IP地址转化为Mac地址,或者说是为了填写和维护ARP缓存表,使主机或者路由器方便向目的主机发送信息。

当有IP数据包要发送时,如果是同一个局域网内,主机和路由器可以利用ARP协议确定目的主机的Mac地址然后发送即可。如果是不同网络,若发送方是路由器,只要查找路由表或通过路由协议找到下一个路由器,然后找到边界路由器,剩下的工作由边界路由器完成,若发送方是主机,则找到本网络上的一个路由器的Mac地址,剩下的工作由这个路由器完成。

三、ARP协议工作原理

当主机A有信息向主机B发送时:

主机A查找本地ARP表,若表中有主机的IP地址,则按照对应的Mac地址,将要发送的IP包封装成以太帧(数据链路层),并向主机B发送。

若ARP表中没有主机B的数据项,则以广播方式发出ARP请求包,在网段内寻找有相应IP地址的主机,并接收相应主机的ARP应答包,获取对应Mac地址,再封装以太帧发送消息。

四、ARP协议报文格式

1、硬件类型:八个字节,发送方硬件接口类型,1为以太网。

2、协议类型:八个字节,发送方请求解析的协议地址类型,0x0800为IP协议地址。

3、硬件地址长度:四个字节,发送方硬件地址长度,以太网地址是48个位。

4、协议地址长度:四个字节,请求解析的协议地址长度,IP地址为32个位。

5、操作类型:八个字节,表示本报文的类型,1为ARP请求,2为ARP响应,3为RARP请求,4为RARP响应。

6、发送方硬件地址:六个字节。

7、发送方IP地址:四个字节。

8、接受方硬件地址:六个字节。

9、接收方IP地址:四个字节。

五、ARP报文分类

1、标准ARP:目标Mac地址为全“0”,用于寻找局域网内符合IP地址的对应主机,请求报文。

2、无偿ARP:目标Mac地址是广播地址,目标IP地址是本机地址,用于主机在局域网内宣称自身的存在并找到局域网内是否有主机有IP地址的冲突。

六、ARP攻击类型

按照攻击目的定类型:

1、干扰(中断)通信。

2、窃听秘密。

七、窃听秘密实现原理

攻击者通过ARP应答报文充当主机A和主机B的通信双方的中间人,从而达到窃听消息的目的。

具体实现原理:主机A和主机B是正常通信的主机,攻击者向主机A发送ARP回应报文,宣称自己是主机B,即ARP回应报文中的源IP地址是主机B,源Mac地址是攻击者的地址,使主机A认为攻击者是主机B,在之后的通信过程中,主机A发送给主机B的消息实际上是发给了攻击者。为了实现主机A和主机B的相互通信,攻击者需要同样让主机B以为攻击者自身是主机A。这样攻击者可以让主机A和主机B经过攻击者自身建立通信然后窃听消息。

八、ARP欺骗之窃听秘密实验

(一)实验环境

   操作系统类型       IP地址           Mac地址         攻防环境中身份

主机A win10 192.168.0.111 00-0C-29-96-40-AA 服务器

主机B win10 192.168.0.105 00-50-56-3A-6A-78 客户机

主机C kali linux 192.168.0.108 00:50:56:28:27:c7 攻击机

(二)实验步骤

1、查询三台主机Mac地址以及IP地址,win10用ipconfig /all指令查询,其中物理地址便是Mac地址,kali linux用ifconfig -a查询。然后查询两台非攻击机的ARP缓存表,用ARP–a查看。
这里写图片描述
这里写图片描述
这里写图片描述
2、在控制面板中关闭win10防火墙,检验三台主机能否互相ping通。
ping 主机A
这里写图片描述
ping 主机B
这里写图片描述
3、配置ftp服务器,在服务器中设置一个用户名及相应password并给予shared folders的一个权限,自己设定。具体方法:点击ftp服务器菜单栏中的edit,然后是users,然后add,权限不说了。
这里写图片描述
为了后面更好地体现客户端和服务端的通信,在shared folders对应的文件路径下加入几个文件,我新建了一个ceshi0192837465.txt。
这里写图片描述
由于客户机我用的是命令行登陆服务器,所以还需要在服务器中还有一个配置,点击菜单栏edit,然后settings,然后ftp over tls,然后将Enable FTPS的勾点掉。届时会有警告,就先不理它了。
这里写图片描述
4、调用kali linux攻击机中的工具netwox用于构造ARP报文,其中ARP op是ARP操作类型,因为是构造ARP响应报文,所以设置为2。调用netwox的方法是打开终端,输入netwox回车,具体操作详见xnj.txt。欺骗结束后通过ARP-a查看主机A和主机B的ARP缓存表,二者前后比较,详见xnj.txt结尾。
5、在攻击机的终端中,输入wireshark回车,调用wireshark监听工具,可设置显示过滤器,然后启动。
6、因为需要攻击机作为中间机,所以需要设置kali linux的自动转发模式,kali linux本身就开启了自动转发模式,查看方式是:gedit /etc/sysctl.conf,然后发现图中蓝色阴影处值为1,无需更改,已经是自动转发。
这里写图片描述
7、在客户机的命令提示符中登录服务机,指令是ftp 192.168.0.111,然后按照提示输入用户名和密码,它会提示logged on,然后输入dir,获取服务器设置的对应folder权限下的路径,再输入get ceshi0192837465.txt ceshi1.txt,下载权限路径下的文件。
这里写图片描述
这里写图片描述
8、输入quit,退出登录。然后查看wireshark捕获到的数据,通过显示过滤器显示符合条件的内容,我设置的显示过滤器如图,且从图中可以看到登录的用户名和密码已经下载的文件信息ceshi0192837465.txt。
这里写图片描述

九、ARP欺骗防范方式

原创粉丝点击