Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >IE 浏览器 DOM 树结构概览(上)

IE 浏览器 DOM 树结构概览(上)

原创
作者头像
腾讯玄武实验室
修改于 2017-08-21 01:59:29
修改于 2017-08-21 01:59:29
1.7K00
代码可运行
举报
运行总次数:0
代码可运行

作者:HausenChen

1.1 引子

作为WiFi安全的一部分,近年来WiFi安全事件层出不穷,而其中的ARP攻击事件更加普遍,越来越成为移动互联网时代手机用户的一大痛点。请看以下一个WiFi安全事件。

A君从广州到上海出差,在星巴克买了一杯咖啡,坐在门口连上某个热点的WiFi正在浏览一个网站,发现这个网站需要邮箱注册,注册后发现需要登录邮箱激活。于是A君这打开了邮箱大师上的APP。

图1 用户登录邮箱使用场景

输入了账号和密码,点击登录,登录成功没有问题。可是过一会,重新登录这个邮箱,发现登录不上去了。很明显,用户A的账号和密码是他在喝咖啡的时候被盗取的并且被瞬间修改了。那密码究竟是怎么被盗取的呢?

其中一种可能的原因是用户A连接的WiFi遭受ARP攻击了。

如果我们产品要做一个功能,要求能够检测出这种ARP攻击,在用户连接WiFi的时候能第一时间给予提示,让用户免遭损失。针对这样的安全方面的测试需求,我们应该如何测试呢?

1.2 安全测试的难点

针对1.1中的产品需求,要想测试好,有以下测试难点:

● 安全攻击原理认知缺乏:

对ARP攻击的原理不清楚,对产品检测的逻辑也不清楚;

安全测试经验缺乏:

这类安全方面的功能点没有测试过,不好下手;

● 测试策略难以制定:

在理清攻击原理和测试目标的前提下,应该如何设计测试策略,能更高效地完成测试任务?

● 测试环境缺乏:

不知道怎么搭建测试环境?怎么评估搭建的测试环境是否满足测试需求?

1.3 难点突破

针对1.2章节提到的测试难点,下面咱们来一一对症下药,各个击破。

1.3.1 安全攻击原理认知缺乏——ARP攻击原理剖析

先了解一下ARP原理:某机器A要向网关发送报文,会查询本地的ARP缓存表(对于anroid系统就是/proc/net/arp),找到网关的IP地址对应的MAC地址后,就会进行数据传输。如果未找到,则A广播一个ARP请求报文,网关识别到是自己的IP地址,于是向A主机发回一个ARP Reply。其中就包含有网关的MAC地址,A接收到网关的应答后,就会更新本地的ARP缓存表。接着使用这个MAC地址发送数据。

ARP协议的原理存在一个可以被利用的漏洞:当A没有发起ARP Request时,其他人也可向A发送一个ARP Reply。当A收到一个ARP Reply时,不会质疑,而是直接对本地的ARP缓存表进行更新,将应答中的IP和MAC地址存储在ARP缓存表中。

因此,当局域网中的某台机器B向A发送一个自己伪造的ARP Reply,即IP地址为网关的IP,而MAC地址是B的,则当A收到后就会更新本地的ARP缓存表,这样A本来要发给网关的内容就会发给B了。同理,B也可以用同样的方式对网关进行ARP欺骗。在A和网关之间作为中间人,而A和B完全不知道。

假设一个只有三台电脑组成的局域网,该局域网由交换机连接。其中一个电脑名叫A,代表攻击方;一台电脑叫S,代表源主机,即发送数据的电脑;令一台电脑名叫D,代表目的主机,即接收数据的电脑(这里的电脑其实也可以换成智能手机,所以如下图4中用了电脑/手机表示这个网络节点)。这三台电脑的IP地址分别为192.168.0.2,192.168.0.3,192.168.0.4。MAC地址分别为MAC_A,MAC_S,MAC_D。其网络拓扑环境如图3。

图2: ARP欺骗网络拓补图

现在,S电脑要给D电脑发送数据了,在S电脑内部,上层的TCPUDP的数据包已经传送到了最底层的网络接口层,数据包即将要发送出去,但这时还不知道目的主机D电脑的MAC地址MAC-D。这时候,S电脑要先查询自身的ARP缓存表,查看里面是否有192.168.0.4这台电脑的MAC地址,如果有,那很好办,就将封装在数据包的外面。直接发送出去即可。如果没有,这时S电脑要向全网络发送一个ARP广播包,大声询问:我的IP是192.168.0.3,硬件地址是MAC-S,我想知道IP地址为192.168.0.4的主机的硬件地址是多少?

这时,全网络的电脑都收到该ARP广播包了,包括A电脑和D电脑。A电脑一看其要查询的IP地址不是自己的,就将该数据包丢弃不予理会。而D电脑一看IP 地址是自己的,则回答S电脑:―我的IP地址是192.168.0.4,我的硬件地址是MAC_D。

需要注意的是,这条信息是单独回答的,即D电脑单独向S电脑发送的,并非刚才的广播。现在S电脑已经知道目的电脑D的MAC地址了,它可以将要发送的数据包上贴上目的地址MAC-D,发送出去了。同时它还会动态更新自身的ARP缓存表,将192.168.0.4-MAC_D这一条记录添加进去,这样,等S电脑下次再给D电脑发送数据的时候,就不用大声询问发送ARP广播包了。这就是正常情况下的数据包发送过程。

总结来说,这个通信过程分为以下四步。

(1)主机S: 查询自己的ARP缓存表,确认是否IP-D/MAC-D的记录存在;

(2)主机S: 发一个ARP请求的广播包,询问跟IP-D关联的MAC地址是多少;

(3)主机D: 发一个ARP回复包,告知我的MAC地址是MAC-D,IP地址是IP-D;

(4)主机S: 更新自己的ARP缓存表,下次要发包给IP-D的时候直接发给MAC-D。

1.3.2 安全测试经验缺乏——ARP攻击测试建模

针对如上ARP攻击的原理,假如我们要测试一个能检测出以上ARP攻击的功能,怎么办呢?首先,基于ACC的模型,可以将ARP攻击检测功能的三要素定义如下,说白了是要明确测试目标。

(1)Attributes:

A,准确:在有和无ARP攻击时能准确检测出有和无ARP攻击;

B,通用: 不管有没有ROOT用户,都能满足A。

(2)Components:

——图3 ARP检测功能子模块——

(3)Compatibilities矩阵

——表1 ARP检测功能Compatibilities矩阵——

1.3.3 测试策略难以制定——ARP攻击测试策略

通过对1.3.2章节对测试目标的确定,借用Safety领域的安全分析方法,我们可以画出ARP攻击功能的软件失效故障树FTA(Fault Tree Analysis)如下:

故障定义:没有达到Attributes中的目标,我们用“ARP检测功能失效”来统称。

图4 ARP检测功能故障树

由上图可见,每个条件判断都是一个逻辑或,我们认为检测失效、或者检测展示失效,或者日志上报失效都可以导致ARP检测功能失效,所以对每个失效路径,我们可以快速得到核心用例路径如下:

表2 由故障树导出核心用例

1.3.4 测试环境缺乏——测试环境搭建

对于WiFi安全测试,和普通业务功能测试的最大的区别是WiFi安全测试对测试环境要求很高,所以往往测试环境的准备成为整个WiFi安全测试最难的也是最耗时的点。

那应该怎么准备测试环境呢?

1.3.4.1 攻击环境准备

设备环境:

PC:一台(装有TPLINK无线网卡)

手机1:作为热点手机(华为Mate8,Android 6.0)

手机2(被测手机):连接PC,用来查看ARP缓存表,确认ARP攻击成功(OPPO,Android 4.4.2),安装有腾讯手机管家。

手机3:用户手机,通过连上热点,然后登陆邮箱操作(三星S5,Android 4.4.4)

环境准备步骤:

Step1: PC上安装TPLINK无线网卡驱动,确保TPLINK网卡能用;

Step2:PC上安装CAIN攻击软件,见附录;

Step3:手机1开设一个热点,如热点名为Hausen01;

Step4: 手机2、3和PC都连上该热点。

1.3.4.2 网络拓补图

经过章节2中Step4后,可以通过ipconfig查看PC的IP,如本次实例为192.168.43.131。

可以通过ipconfig /all查看PC的MAC,如:EC:17:2F:CE:78:62。

由此我们可以得到整个攻击环境的网络拓扑图如下:

图中,攻击确认手机也就是被测对象,由于我们的测试目标是腾讯手机管家的APP检测ARP攻击的能力,所以这台手机要装上腾讯手机管家。

1.3.4.3 ARP攻击制造

Step1: 攻击前ARP表检查

攻击前先检测手机ARP表如下(可以看到HW address列没有出现两个同样的MAC地址,说明当前网络没有受到ARP攻击)。

Step2: 关闭防火墙

Step3: 嗅探器打开

打开CAIN,启动嗅探器

Step4: 设备扫描

扫描局域网的所有设备

直到扫描结果如下(可以看到设备IP和章节3中的网络拓补图是对应的,这里因为CAIN安装在PC上,而CAIN不会显示本机的IP,因此192.168.43.131在这里看不出来):

Step5: 攻击链路添加

切换到底部ARP的TAB,点击菜单栏+号。

在弹出的页面(如下),鼠标点击页面左侧一个host节点,比如192.168.43.152, 会在页面右侧出现跟该节点的同一局域网的其他节点,比如192.168.43.20(另一台手机),和192.168.43.1(网关)。

点击上图右侧的网关节点,即选择了192.168.43.152到网关的链路,点击OK后会跳转到以下界面,说明这条攻击链路被添加了。

Step6: 启动ARP攻击

点击以下图中的黄色图标即可。

Step7: 攻击成功确认

CANI上的表现:

Step8: 密码盗取

接下来我们重现下章节1.1的用户场景:

通过192.168.43.152这台手机(假如是一台用户手机)的邮箱客户端,登录一个qq邮箱看看。

一点击登录,回到攻击PC的CAIN软件界面,可以看到密码和账号直接明文显示了。是不是很震撼?

Step9: 安全探秘

通过Step8,我们都看到密码被PC捕获到了,但为什么会这样子呢。下面来解释下。

在192.168.43.20的手机,通过USB连接PC,adb shell进去打印ARP缓存表如下:

结合章节1.3.1讲到的ARP攻击原理,看第二条记录:攻击PC的IP是192.168.43.131,MAC是ec:17:2f:ce:78:62,说明我192.168.43.20要发包给攻击PC的话,可以正常找到攻击PC的MAC,这个没有问题。

但是看第三条记录:192.168.42.1——ec:17:2f:ce:78:62,这说明什么呢?我们都知道我们在局域网要想访问外网的话要通过网关,说明我192.168.43.20要访问外网的话,先发包给网关,也就是192.168.42.1,但是由于这个缓存表记录的网关的IP对应的是攻击PC的MAC,所以导致我发给网关的包都会跑到攻击PC去了。这就是为什么说登录客户端会造成密码泄露的根源。也就是章节1.1的安全事故的根源。

1.3.4.4 测试确认

在经过1.3.4.3的ARP攻击确认后,我们在被测手机,打开腾讯手机管家,连接被攻击热点,确认以下几点:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
1)确认检测出ARP攻击,并确认产品UI上能展示正确:

(2)确认攻击上报日志正确(和管家其他日志上报查询方法一样,具体不表)。

其他测试路径确认方法类似,此处从略。

1.4 WiFi安全测试小结

作为一个测试人员,在接到一个安全测试的测试需求时,应该如何下手?

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
本文抛砖引玉,基本可以遵循以下的思路来:

(1)把安全原理吃透;

(2)对测试目标进行测试建模;

(3)有效制定测试策略;

(4)搭建一个比较靠谱的测试环境。

这样基本就能应对安全测试的一些入门问题了。至于深度安全测试,比如出现问题时候如何定位,产品数据有问题时如何和从测试人员的角度主导或者配合开发、产品童鞋跟进解决,诸如此类的问题本文先不讲,留到后续再讨论。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
一文读懂:交换机、路由器、网关、MAC地址——从入门到实战
你是否好奇,当你在手机上点击一个网页链接时,数据是如何从你的设备“飞”到千里之外的服务器并返回的?背后离不开交换机、路由器、网关和MAC地址的默契配合。本文用通俗语言+实战场景,带你彻底搞懂这些网络核心组件,从此不再被专业术语吓倒!
ICT系统集成阿祥
2025/02/28
2680
一文读懂:交换机、路由器、网关、MAC地址——从入门到实战
遇到ARP攻击,怎么做好主机安全,受到ARP攻击有哪些解决方案
在数字化日益深入的今天,网络安全问题愈发凸显其重要性。其中,ARP攻击作为一种常见的网络攻击方式之一,往往给企业和个人用户带来不小的困扰。ARP协议是TCP/IP协议族中的一个重要协议,负责把网络层(IP层)的IP地址解析为数据链路层(MAC层)的MAC地址,用于实现IP地址到MAC地址的映射。
德迅杨德俊
2024/05/15
2110
arpspoof怎么用_技术分析实战工具
根据arp的工作原理,我们知道,PC或手机端需要通过arp缓存中IP和Mac地址的对应关系,来确定谁是网关?然后将数据包发送给网关,然后由网关将请求的数据转发到互联网。而确定IP和Mac对应关系的arp请求包是在整个局域网内进行广播的,所以,kali就有可以通过响应arp包来把自己变成成网关。
全栈程序员站长
2022/11/10
1.3K0
arpspoof怎么用_技术分析实战工具
当你在浏览器中输入Google.com并且按下回车之后发生了什么?
回车键按下 为了从头开始,我们选择键盘上的回车键被按到最低处作为起点。在这个时刻,一个专用于回车键的电流回路被直接或者通过电容器闭合了,使得少量的电流进入了键盘的逻辑电路系统。这个系统会扫描每个键的状态,对于按键开关的电位弹跳变化进行噪音消除(debounce),并将其转化为键盘码值。在这里,回车的码值是13。键盘控制器在得到码值之后,将其编码,用于之后的传输。现在这个传输过程几乎都是通过通用串行总线(USB)或者蓝牙(Bluetooth)来进行的,以前是通过PS/2或者ADB连接进行。 USB键盘: ●键
前朝楚水
2018/04/03
1.3K0
网站源文件被注入了iframe代码—ARP欺骗的木马病毒攻击
我就很纳闷,运行了4年的网站一直都好好的最近怎么出现病毒提示呢。职业习惯原因打开了网站的源代码查看,原来在网页源代码的头部被加入了iframe嵌套框架网页,该网页执行木马程序…… 按照常理我心中一寒:估计是服务器被人攻陷了,所有文件代码被加了此行代码,于是FTP上去,下载文件下来查看却没有该代码。 于是询问服务器管理员含笑,他一听就说:“是中ARP欺骗的病毒攻击了”。 那么什么是“ARP欺骗”呢? 首先,ARP的意思是Address Resolution Protocol(地址解析协议),它是一个位于TCP
用户1172164
2018/01/16
1.8K0
计算机网络:地址解析协议ARP和逆向地址解析协议RARP介绍
本文开始之前,分享一篇近期阅读过的好文,文章详情可点击AI杀疯!介绍一下有趣的AI算法。
小明互联网技术分享社区
2024/12/04
1931
计算机网络:地址解析协议ARP和逆向地址解析协议RARP介绍
【腾讯 TMQ 】WIFI 安全测试,其实不难
腾讯移动品质中心TMQ
2017/03/06
2.4K0
ARP-基础-扫描-攻击-防范
ARP(Address Resolution Protocol)地址解析协议,将已知IP地址转换为MAC地址,由RFC820定义 ARP协议在OSI模型中处于数据链路层,在TCP/IP模型中处于网络层 ARP协议与数据链路层关联网络层
糖果
2019/11/20
2.4K0
Arp欺骗原理及Android环境下的检测方法
测试环境说明 网关: 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工作原理及欺骗原理 局域网的网络
FB客服
2018/02/05
2.8K0
Arp欺骗原理及Android环境下的检测方法
成为中间人的几种方式
前面几篇文章已经介绍了常见的中间人攻击方式,即窃听、修改和重定向(钓鱼)。当然这都是建立在我们完全掌握了局域网的所有流量的前提下的。在ARP欺骗与中间人攻击中就已经介绍了一种最简单的一种控制流量的方法,即ARP欺骗。但是ARP的方式往往对网络的负载造成较大压力,从而对别人的网速造成影响不说,如果目标稍微有点意识,也能很容易发现和防御ARP攻击。因此我们需要其他更多的选择来成为中间人,本文就来介绍一下各种不同的中间人方式。
evilpan
2023/02/12
6120
成为中间人的几种方式
局域网中ARP攻击的查找与防范(Linux环境)
Address Resolution Protocol是指当知道一个宿主的网络层地址(IP)去寻找对应的链路层地址(hardware address)的一个方法。这个协议在RFC826中有明确的规定。
大江小浪
2018/07/24
2.2K0
软件安全性测试(连载23)
ARP(Address Resolution Protocol)即地址解析协议,是根据IP地址获取物理地址的一个TCP/IP协议。如图4-54所示。
顾翔
2020/02/19
7600
软件安全性测试(连载23)
6000字加图文 | 抓包带你深入了解网关到底起什么样的作用?不同网段通信的过程详解
不同网段就分两种了,同一个局域网下面,不同网段之间的通信,或者是从局域网去往互联网的通信,那么这个过程又是怎么样的呢?
网络之路一天
2024/01/08
4460
6000字加图文 | 抓包带你深入了解网关到底起什么样的作用?不同网段通信的过程详解
渗透测试常用工具使用
1.ping发送ICMP请求包,用来测试主机与目标主机之间的连通性。如果未连通:有可能是物理上的问题,有可能是软件上的问题。
菜菜有点菜
2022/03/17
1.1K0
第七章 TCP/IP-ARP网络攻击与欺骗
是根据IP地址获取物理地址的一个tcp/ip协议。主机发送信息时将包含目标IP地址的ARP请求广播到局域网络上的所有主机,并接收返回消息,以此确定目标的物理地址;收到返回消息后将该IP地址和物理地址存入本机ARP缓存中并保留一定时间,下次请求时直接查询ARP缓存以节约资源。
网络豆
2022/11/20
4780
第七章 TCP/IP-ARP网络攻击与欺骗
TCP/IP协议常见安全风险及防范办法
1.MAC欺骗 攻击原理:MAC地址欺骗(或MAC地址盗用)通常用于突破基于MAC地址的局域网访问控制,例如在交换机上限定只转发源MAC地址修改为某个存在于访问列表中的MAC地址即可突破该访问限制,而且这种修改是动态的并且容易恢复。还有的访问控制方法将IP地址和MAC进行绑定,目的是使得一个交换机端口只能提供给一位用户的一台主机使用,此时攻击者需要同时修改自己的IP地址和MAC地址去突破这种限制。
德迅云安全--陈琦琦
2024/03/25
1K0
ARP欺骗常见姿势及多机ARP欺骗
ARP欺骗是一个老生常谈的话题,翻看各位师傅的文章,大多数都是在使用arpspoof(当然,同样看到过使用Python写一款类似的工具的文章)进行单机欺骗。本文的目的在于总结ARP欺骗原理、常见姿势以及实现多机ARP欺骗。
FB客服
2019/08/30
2.9K0
ARP欺骗常见姿势及多机ARP欺骗
华为datacom-HCIA学习笔记汇总
Datacom,即Datacom Communication的缩写,中文为“数据通信”,属于ICT技术架构认证类别(华为认证包含ICT技术架构认证、平台与服务认证和行业ICT认证三类认证)。作为Routing & Switching认证的升级版,Datacom认证已于2020年4月18日正式发布,后续将替代Routing & Switching认证成为华为构建数通人才能力的标准。
青灯古酒
2023/10/16
7040
华为datacom-HCIA学习笔记汇总
ARP–利用arpspoof和driftnet工具进行arp欺骗
图中,eth0为网卡名称,192.168.27.131为ip地址,192.168.27.131为kali机的MAC地址。 Step 2. 在虚拟机中,通过fping命令,查看当前局域网还存在那些主机,以确定要攻击的主机的ip地址
全栈程序员站长
2022/09/27
4.2K0
ARP–利用arpspoof和driftnet工具进行arp欺骗
华为datacom-HCIA学习第二弹
青灯古酒
2023/10/16
2150
华为datacom-HCIA学习第二弹
推荐阅读
相关推荐
一文读懂:交换机、路由器、网关、MAC地址——从入门到实战
更多 >
LV.0
这个人很懒,什么都没有留下~
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验