美文网首页程序员
搭载Arp攻击实验分析

搭载Arp攻击实验分析

作者: 子潇有话要说 | 来源:发表于2019-01-26 23:13 被阅读27次

研究生课程-信安实验报告整理

前言

ARP是什么?

ARP(Address Resolution Protocol)是地址解析协议。作用是将32位IP地址解析为48位MAC(硬件地址)的协议。

ARP的工作流程

第一步

假设主机A想和主机B通信,主机A根据路由表的内容,找到主机B的IP,然后在自己的ARP高速缓冲中,查看有无主机B的MAC地址。如果没有,主机A会发送一个ARP请求广播包,本地网络上的每台主机都接收到主机A的ARP请求并且检查是否与自己的IP地址匹配。如果主机发现请求的IP地址与自己的IP地址不匹配,它将丢弃ARP请求。

第二步

主机B在ARP请求分组中看到自己的IP地址,就向主机A发送ARP响应分组,并写入自己的硬件地址。同时,主机B还把主机A的IP地址和MAC地址的映射关系也保存到自己的ARP高速缓存中。

第三步

主机A收到主机B的ARP响应分组后,就在其ARP高速缓存中写入主机B的IP地址到硬件地址的映射。这样,主机A、B都有了彼此的IP和硬件地址,双方可以通信了。

ARP的缺陷分析

无状态

ARP高速缓存根据所接收到的ARP协议包随时进行动态更新,它是无状态的协议,不会检查自己是否发过请求包,只要收到目标MAC发送的ARP响应数据包或ARP广播包,都会接受并缓存。

不认证

ARP协议没有认证机制,只要接收到的协议包是有效的,主机就无条件地根据协议包的内容刷新本机ARP缓存,并不检查该协议包的合法性。

实验探索

实验环境

WinXP:装有WinArpAttack与WireSharp

win7: 靶机

实验工具在文末给出

实验流程

打开WinArpAttacker工具,点击[扫描],就能获取整个局域网的信息

界面

其中:
红色方框就是靶机(Win7)的信息
蓝色方框是默认的网关
IP为192.168.248.132就是宿主机XP的信息
选中靶机,进行 [不断IP] 的攻击,打开WireSharp,由下面的图,可以观察到:

网络中涌现了大量Arp包,我们随意点一个进去看(下图)。

可以看到源地址的MAC地址(Sender MAC address )是伪造的(01:01:01:01:01:01),目的地址(Target MAC address)就是靶机的地址。

这样同一个IP地址就有两个不一样的MAC地址,我们知道IP地址是唯一的,并且对应的MAC地址也应该是唯一的。当网络中出现一个IP地址对应多个MAC地址时,就会产生IP冲突,严重还会导致宕机!

由分析的结果,我们可以了解到 [不断IP冲突] 这种攻击模式的原理就是:

保持靶机的IP地址不变,修改MAC地址,并在网络中发送大量这样的包。

另外,我们可以看到靶机的ARP相关请求数目不断增多。

我们再选择[禁止上网]的攻击模式,抓包分析得到如下结果:

可以看到,有两个可疑的包。

打开第一个包,发现伪装成IP地址与靶机相同的一个包,但是修改了mac地址,然后发送给网关(192.168.248.2),因为网关不会辨别是否是真的靶机传送来的,所以网关收到arp包以后,将IP地址与mac地址存储在自己的高速Arp缓存中。此时靶机在网关的ARP对应关系就被修改成错误的了。

同时在第二个包中,我们可以发现:这个Arp包伪装成网关的IP地址,将自己的mac地址改变,然后发送给靶机,靶机就会将其存储在缓存中。这样靶机的高速Arp缓冲中存储的网关对应关系就是错误的。

由此,我们可以知道该次攻击进行了一次双向欺骗,网关中存储的是错误的靶机信息,靶机中存储的是错误的网关信息。

为了更好地看到结果,在攻击之前,我们在靶机中输入' arp -a ' ,可以看到正确的映射关系。

攻击之后,我们在靶机下再次执行' arp -a ',此时,就会发现网关的mac地址变了。由此可见,[禁止上网]攻击的原理就是:

发包欺骗网关,告诉网关错误的靶机MAC地址,这样会导致靶机无法接受到网关发送的信息,进而不能上网。

值得一提的是,当我们在靶机上再次输入' arp -a ',此时会发现网关的mac地址又自动回复成原来的,这是因为每隔一段时间会发送广播包,重新建立映射关系,这样又能回到正确的映射关系了。

编程部分

接下来,我们基于Winpcap编写程序,对指定的目标IP地址进行ARP欺骗攻击。

在我们使用Wincap来手动构造Arp包时,可以从网上找来Arp的包信息,也可以去WireSharp中抓取一个Arp包,来获取Arp包的信息,这样对我们在使用代码构造Arp包时有很大的帮助。

打开WireSharp,可以看到发送的很多包,任意选取一个Arp包,然后双击打开。

可以看到目的地址是ff:ff:ff:ff:ff:ff,源地址是 00:50:56:C0:0C:08,当我们点击某个条目是,下面自动对应到数字,非常直观。

在构造Arp包之前,首先获取设备名称,在ifirst下直接运行即可,红色方框里面就是项目名,记住要全部复制,同时\要改为\,这是为了防止转义字符做。

在使用vc++较低版本的时候,在项目[右键],点击 Set as Start Up Project然后可以看是运行了。

当我们清楚arp包的结构之后,就能够实现Arp攻击,我们先进行 [IP冲突] 攻击,假设我们要攻击的目标IP 为192.168.227.135,我们就能伪造一个假的mac地址来,我们设为1.1.1.1.1.1,然后设立目的mac: 00:50:56:C0:0C:08, 依次,再设立硬件协议等等,设置完毕以后开始设置ip地址。根据上述IP的冲突原理,源ip地址和目的ip地址都设置成靶机的192.168.227.135,源mac地址设置成为1.1.1.1.1.1,目的mac地址设置为00:50:56:C0:0C:08。

单单一个包肯定是不够的,在这里我们设置flood的数,表示发送包的数量。可以看到如下结果,我们设定的flood的数目为10,那么发送了10次冲突。

可以看到如下结果,我们设定的flood的数目为10,那么发送了10次冲突

再点进包里面,可以包的信息(目的mac地址,目的ip地址等)与我们设置的是一摸一样的。由此就造成了IP冲突,我们还可以模拟禁止上网,照葫芦画瓢即可。

修改代码,主要是修改sendpack.c
代码地址

工具

关注[微信公众号] 文无第一,回复 arp 就能获取云盘连接。
工具仅作学习交流之用,请勿滥用。

参考文章:

捣鼓软件之:网络抓包利器-wireshark

Wireshark-ARP数据包

网络攻击神器:WinArpAttacker使用说明

相关文章

  • 搭载Arp攻击实验分析

    研究生课程-信安实验报告整理 前言 ARP是什么? ARP(Address Resolution Protocol...

  • 2019-10-25

    今天做了ARP攻击的实验

  • ARP攻击

    一、ARP攻击概述 ARP攻击原理是什么?通过ARP攻击可以做什么,账号是否可以被窃取?有哪些常见的ARP渗透(攻...

  • 网站攻击分类及解决方法

    网站攻击一般分为3类,分别为ARP欺骗攻击、CC攻击、DDOS流量攻击。 一、先说ARP欺骗攻击 如果要发起ARP...

  • 网络层

    请简单解释一下,arp协议和arp攻击。 考察点:ARP协议参考回答: 地址解析协议。ARP攻击的第一步就是ARP...

  • 论如何在室友干羞羞的事的时候获取室友信息

    这里我们就是简单的ARP攻击 首先百度了一波ARP攻击的定义 ARP(Address Resolution Pro...

  • python arp 攻击

    借助scapy arp 攻击

  • 局域网的ARP攻击

    好久没有更新了,今天刚学习的arp攻击来和大家分享一下 arp攻击也叫arp投毒 首先先了解一下什么是arp协议 ...

  • CSRF攻击实验 ——合天网安实验室学习笔记

    实验链接 本实验以PHP和Mysql为环境,展示了CSRF攻击的原理和攻击过程。通过实验结果结合对攻击代码的分析,...

  • 59.局域网内arp攻击(Linux)

    一、arp断网攻击arp攻击是针对同一局域网内的靶机发起攻击,使被攻击的靶机断网,需要知道被攻击目标的地址,网关,...

网友评论

    本文标题:搭载Arp攻击实验分析

    本文链接:https://www.haomeiwen.com/subject/xospjqtx.html