Arp欺骗原理及Android环境下的检测方法


发布人:admin分类:网络安全浏览量:24发布时间:2017-12-12

测试环境说明

网关:
IP:172.20.150.1  mac:24050FCE53
靶机(手机):
IP:172.20.150.20  mac:000822D806D2
攻击主机(虚拟机):
IP:172.20.150.2   mac:6C40089A1F16
Wifi接入点(360免费wifi):
BSSID: 24050FCE53(就是网关的mac),SSID:private(wifi名称)
攻击场景:
攻击主机利用Cain对网关和靶机进行双向Arp欺骗。

Arp工作原理及欺骗原理

局域网的网络流通不是根据IP地址进行,而是根据MAC地址进行传输。

当主机A要和主机B通信时,这时候假定A,B刚开机,或者ARP缓存表是空的。既然谈到通信,那么一般来说,它们应该对数据完成一个封装和解封装的过程。其他的层次我们先不谈,只看数据链路层和网络层。在A这边,做为一个数据的源,它在发送数据时,数据被封装到网络层,需要添加一个IP报头,里面有源和目标IP地址字段,源的IP和目标的IP都知道,那么是可以顺利的封装的,但是封装好的包交给数据链路层,进行再一次封装时,问题发生了,因为在数据链路层,需要封装成帧,那么在帧的头部有源MAC和目标MAC字段,源MAC是它自己,当然知道,但是目标的MAC呢?没有!也就是说,没有实际的地址。那封装还能继续下去吗?那么通信难道要终止吗?

其实在封装之前,主机A将会查看自己的ARP缓存表(我们可以通过手工查看start—run—cmd—arp-a)。如果缓存表中存在目标主机(主机B)的MAC和IP信息,那么就可以顺利的成帧。如果没有的话,那么它将经历一次ARP的解析过程。它发出一个broadcast request(一个广播请求,请求对方的MAC地址。)用sniffer可以看到。

这个ARP请求数据里面有一个问题:“喂,我是192.168.12.1,我的MAC地址是A。192.168.12.2,你的MAC地址是多少?”这个时候,该网段中所有的主机都能收到该广播,只有IP地址是192.168.12.2的主机会响应(response)。同时接收主机会把A的IP地址和MAC地址的对应关系记录下来,放入ARP缓存中。通过了这个过程,A和B都有了对方的IP和MAC的对应关系了,那么第二层,第三层的封装就可以顺利的完成。

大家可以想像一下,如果在A发出广播后,收到了来自B的回应请求,同时,又有一个第三者C通过某种方式监听到了A—B的对话,并截获了B回应给A的arp response。他可以把这个回应中的MAC地址字段该成另一个MAC地址,再把修改过的帧交给A。这个时候A是不是拿到了两种回应呢?它会以谁为准呢?它会以后来的为准。通过截获修改,A将缓存被修改后的MAC。A用错误的MAC封装数据帧,数据就被发送的C可以控制的主机上了。

下图展示arp欺骗发生后,靶机的arp表情况:

正常arp表      

攻击后arp表 

路由表

计算机网络中,路由表(routing table)或称路由择域信息库(RIB, Routing Information Base),路由表存储着指向特定网络地址的路径(在有些情况下,还记录有路径的路由度量值)。路由表中含有网络周边的拓扑信息。简单来说,路由表是完全工作在网络层的,根据路由表信息,主机将想要发送的ip数据从指定的网卡上发出。

下图展示靶机的路由表情况:


注:

Destination,Gateway,Mask均采用逆向十六进制表示法,比如:019614AC,其实表示的是AC:14:96:01,转换为十进制就是:172.20.150.1

Destination,路由的目标网段,会和Mask进行运算求得网段,运算结果是00000000表示所有网段,上图的第一条记录表示:所有网段的数据的网关是172.20.150.1,由wlan0网卡发出。

WifiBSSIDSSID

SSID: ServiceSet Identifier(服务集标识),SSID技术可以将一个无线局域网分为几个需要不同身份验证的子网络,每一个子网络都需要独立的身份验证,只有通过身份验证的用户才可以进入相应的子网络,防止未被授权的用户进入本网络。SSID就是WIFI名称

BSSID: Basic Service SetIdentifier(基本服务单元标识符),BSSID就是Wifi接入点的Mac地址。

下图展示靶机的BSSID和SSID情况:

图中可以看出,BSSID为24:05:0f:0f:ce:53,SSID为:private

Android环境下Arp欺骗检测原理

用户在使用手机连接wifi时,通常是搜索wifi名称,输入密码,然后连接上网,很少有情况会需要自己再去配置网关,流量也仅仅是和网关在交换。因此,用户默认的网关就是wifi接入点,于是wifi的BSSID和用户的网关mac将是同一个,基于此有了如下arp检测原理:

1.    获取BSSID,也就是网关的Mac(mac1)
2.    通过route表信息获取全网段路由对应的网关IP
3.    通过arp表,查询此网关IP对应Mac(mac2)

如果mac1和mac2相同,则表示没有arp攻击,如果不相同(mac2是arp欺骗引入的),则arp攻击正在发生。

衍生:如果用户配置了网关,也就是route记录的IP和BSSID将没有任何关系,根据arp发生并不会修改网关ip,可以不断监听arp缓存表中网关IP对应的mac是否在变化,变化则表示arp正在发生或者arp攻击结束,可以结合别的手段,比如长时间统计来确定正确的网关IP和Mac,当arp表中IP发生变化,则检测arp攻击发生。

其他

本文通过逆向wifi保护令的原理分析得出,wifi保护令能准确检测arp发生,wifi保护令一些技术细节如下:

1.    5s循环监听路由表和arp的变化,通过上述的原理来检测arp欺骗
2.    Arp发生后,给予用户如下提示:

a)    震动
b)    响铃
c)    断开当前连接wifi
d)    状态栏提示
e)    开启Activity,显示攻击发生

apk截图:

 


apk下载:http://pan.baidu.com/s/1qWmceLm

参考文档

arp原理介绍:http://www.huawei.com.cn/ecommunity/bbs/10151665.html?p=1

AC地址表、ARP缓存表以及路由表:http://dengqi.blog.51cto.com/5685776/1223132

arp命令:http://www.unix.com/man-page/linux/8/arp/

[作者/difcareer,本文属FreeBuf黑客与极客(FreeBuf.COM)原创文章奖励计划,]


被黑站点统计 - 文章版权1、本主题所有言论和图片纯属会员个人意见,与本文章立场无关
2、本站所有主题由该文章作者发表,该文章作者与被黑站点统计享有文章相关版权
3、其他单位或个人使用、转载或引用本文时必须同时征得该文章作者和被黑站点统计的同意
4、文章作者须承担一切因本文发表而直接或间接导致的民事或刑事法律责任
5、本帖部分内容转载自其它媒体,但并不代表本站赞同其观点和对其真实性负责
6、如本帖侵犯到任何版权问题,请立即告知本站,本站将及时予与删除并致以最深的歉意
7、被黑站点统计管理员有权不事先通知发贴者而删除本文

免责声明

本站主要通过网络搜集国内被黑网站信息,统计分析数据,为部署安全型网络提供强有力的依据.本站所有工作人员均不参与黑站,挂马或赢利性行为,所有数据均为网民提供,提交者不一定是黑站人,所有提交采取不记名,先提交先审核的方式,如有任何疑问请及时与我们联系.

admin  的文章


微信公众号

微信公众号


Copyright © 2012-2022被黑网站统计系统All Rights Reserved
页面总访问量:21231325(PV) 页面执行时间:105.291(MS)
  • xml
  • 网站地图