Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >IoT安全测试指北

IoT安全测试指北

作者头像
FB客服
发布于 2020-09-14 08:59:16
发布于 2020-09-14 08:59:16
2.9K00
代码可运行
举报
文章被收录于专栏:FreeBufFreeBuf
运行总次数:0
代码可运行

物联网(The Internet of Things,简称IOT)是指通过 各种信息传感器、射频识别技术、全球定位系统、红外感应器、激光扫描器等各种装置与技术,实时采集任何需要监控、 连接、互动的物体或过程,采集其声、光、热、电、力学、化 学、生物、位置等各种需要的信息,通过各类可能的网络接入,实现物与物、物与人的泛在连接,实现对物品和过程的智能化感知、识别和管理。

关于IoT安全测试的方法,网上也有一些资料,但感觉有用的分享并不多,且杂。关于IoT要学的东西也还有很多,肯定不是本文这些内容就能说完的,本文就个人已知的知识部分结合经验简单总结一下IoT如何进行安全测试。

IoT体系结构

作为安全人员,需要对测试目标进行充分了解后才能去思考目标可能会存在的问题,也是本质上的从信息收集开始做起。

首先需要清楚当前测试的目标的体系结构,此处引用前人总结过的分类

执行器:通过物理过程控制事物,如空调机组,门锁,窗帘 网关:用于收集传感器信息和控制中心 传感器:用于检测环境,例如光,运动,温度,湿度,水/电量 云:Web界面或API托管用于收集数据的云端web应用和大型数据集分析。一般来说,就是用来做信息与其他方资源共享 移动(app):移动设备大多使用的,在设备上的应用程序,以实现手机端控制IoT环境来进行互动

IoT攻击面及测试思路

综合上文,笔者认为可以进行安全测试的攻击面有如下部分:

(没写的就是不会,会我就写了 ( ̄□ ̄||)

1、协议

IoT目前所用到的协议有很多种,本文列举本人遇到的过的较为常见的几种,包括HTTP、TLS/SSL、S7Comm-plus、websocket、MQTT

HTTP

HTTP协议大概是安全人员最熟悉的协议之一了,在IoT情景中,简单分为两种情况,有web应用和没有web应用的。

先对有web应用的情景进行分析,常见的IoT设备有路由设备(TP-Link、D-Link等)、视频监控(海康威视、各种DVR等)、门禁考勤系统(Linear eMerge E3-Series)、智能网关(GPON Home Gateway)等。

这种其实不需要多作赘述,基本都是常规的web渗透一把梭,常见的问题有默认密码、弱口令、越权、RCE等。

对没有web应用的情景进行分析,这类设备就太多了,离生活较近的有打印机、智能烤箱和电饭煲、智能咖啡机、智能语音助手等。这一类设备大部分功能其实还是使用其他协议完成,但是总要一部分功能会需要用到HTTP协议,举个栗子,笔者家里有个智能电烤箱,能绑定后通过某语音助手来进行命令下发(开关机和设定烤箱温度时间等),需要扫描产品上方的二维码进行绑定,类似下图

而二维码其实解析出来是一段URLhttp://target.com/xx/?sid=xxx

经过测试sid为烤箱编号,能够进行遍历修改,也可以对烤箱进行解绑操作,不过自己家用的那款利用起来比较麻烦,绑定过程需要输入附近的WIFI密码使烤箱联网,因此并未达到直接绑定操作任意其他烤箱,但可以引为思路。

以上其实还是偏向于web安全测试,但是也有部分IoT设备能提供特别的环境,局域网。比如某智能音箱,通过wireshark等软件的抓包可以发现音乐点歌的功能是使用了HTTP请求的,那么这一点就存在三个可测试方案,一个是中间人攻击,在非安全的网络环境中,通过中间人的方式替换请求就能使音箱播放指定歌曲,比如无论用户点什么歌,最后播放的都是《今天是个好日子》,可能会对用户造成精神污染最后导致退货和投诉,对厂商还是有一定危害和影响的;再一个就是如果某些特定操作是通过HTTP请求来进行实现,例如智能咖啡机的咖啡制作功能(当然,大部分咖啡机都没有使用HTTP,此处只是举例)是通过一条HTTP请求完成,那么通过抓取数据包后进行重放攻击,就能不断获取新的咖啡,一杯给领导,一杯给女神,还有一杯自己喝;最后再举一个栗子,智能门禁系统,如果使用HTTP协议,将用户刷卡信息上传到服务器中,我们在内网可以通过嗅探等方式捕获这些数据,导致敏感信息泄露的问题。

简单总结下这一段,对没有web应用的设备进行安全测试,需要尽量找到设备的HTTP请求,在该请求的基础上,尝试中间人攻击、重放攻击、敏感数据获取。(除此之外其实也可以按照web渗透的方法进行测试,权限绕过、SQL注入等,毕竟各种IoT环境实在太多,本段只是举了三个个人认为比较通用一点的面。)

TLS/SSL

加密后的流量虽然可以被抓包工具捕获,但是一般都无法获取有效信息,因此针对使用了TLS协议的设备,首先需要将流量解密,关于解密方法,一种是通过该协议本身的漏洞进行解密,但这一块本人没有太多的研究,不进行深入,另一种是通过对设备固件进行分析,获取解密方法,这一块涉及逆向和二进制等方面,也无法进行过多深入。当然流量解密后,测试方法就参考上文所写HTTP协议部分即可。

S7Comm-plus

了解的不多,但是貌似用的不少,可以参考另一篇文章

西门子S7comm-plus通信过程及重放攻击分析

Websocket

websocket用的最多的地方还是即时通信,通常在工业互联网中用的毕竟多,比如需要实时监控某些信息的设备。

一般通过抓包可以看到

测试方法并不局限,就本人测试过的而言,主要问题是没有鉴权,很多时候直接请求接口就完事了,服 务器正常接收并执行,这一点还是很危险的,不过使用websocket大部分还是用于实时数据传输,但是通过未鉴权的接口,我们除了能越权进行某些操作之外,其实还容易导致大量的敏感信息泄露。因此,对于websocket,测试接口鉴权和是否存在信息泄露。

MQTT

MQTT是一种机器对机器(M2M)的协议,它被广泛地用于IoT 。其在1999年由IBM发明,当时是为了创建一个协议,用于通过卫星连接连接石油管道的最小电池损耗和最小带宽。因为它的耗能非常低,所以被IoT生态系统广泛采用。目前几乎所有的IoT 云平台都支持通过MQTT 与几种不同实现的IoT 智能设备发送接收数据。

对此协议的测试其实还是感谢上一段在某车企的工作经历,因为车机中会使用较多的MQTT协议,而其实MQTT在物联网设备的应用场景十分之广

智能家居 温度湿度传感器 健身器材 血压测量仪 位置服务 医疗设备 …

先了解一下该协议,MQTT基于TCP协议默认端口为1883,主要功能就两个,发布(Publish)和订阅(Subscribe)。

关于MQTT的攻击面,个人觉得较为好用的是MITM、口令问题、权限问题。

1.MIMT

MQTT和HTTP一样都非常容易受到中间人攻击,具体思路参考上文。

2.口令问题

此部分也分为空口令、弱口令和暴力破解。

网上很多开放MQTT的设备均为空口令,使用mqtt连接工具可以直接连上

同样,对于安全方面的忽视,也存在不少弱口令,并且对于暴力破解没有很好的防御方式,因此口令问题是MQTT协议非常需要注意的方面。附暴力破解脚本https://github.com/zombiesam/joffrey

3.权限问题

MQTT 主题(Topic) 支持’+’, ‘#’的通配符,’+’通配一个层级,’#’通配多个层级(必须在末尾)。 也就是说如果我们的有两个个Topic分别为CMD/123/456 CMD/789/666那么我们可以订阅CMD/#来获取其CMD下的全部消息。在攻击中我们首先就可以利用其来监听所有不以开头的Topic。对于以开头的Topic我们可以使用

如下为没有权限控制的MQTT消息服务器,直接查看所有Topics

2、固件

设备固件分析的前提是需要获取到固件,提取固件的方法可以参考看雪大佬的文章https://bbs.pediy.com/thread-230095.htm

对于web出身的安全人员(也就是本人),较为实在的方法就是从官网寻找,或者联系产品售后获取,也可以通过软件升级抓包得到固件下载地址。

如下图,从官网直接搜索下载到指定版本固件。

在提取固件后需要对固件进行分析,但是在此之前需要先判断固件是否被加密,通常使用binwalk先进行分析查看,此时如果出现如下图,那么该固件可能为加密固件

参考如何分析和解密已加密的路由器固件进行解密

未加密的固件通常如下图

可以通过命令

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
binwalk -e 固件名

来进行提取

提取后可以看到squashfs文件系统,然后在对其源码进行分析即可

3、云端

云对于IoT也是非常重要的一个环境,毕竟只有things能连接到Internet才算是IoT。

在实际测试中,获取云端地址是尤为重要的一个环节,通常来说使用wireshark等抓包工具就能直接看到设备云端地址,在简略的获取云端地址后,首先一定是对该云服务器进行一次常规完整的渗透,这部分主要是信息收集居多;然后根据实际情况进行测试,我遇到过的场景有,在针对一次车机系统的测试中,后端web管理端可以直接通过一条HTTP请求对车机下发命令,如软件升级更新、消息推送等,此时可以进行更改对应车机VIN码或未授权漏洞的尝试等;最后可以尝试对固件进行分析,筛选提取一些隐藏的接口,看是否存在可利用的点。

4、APP&C/S

APP和C/S客户端也是经常容易受到攻击的点,不考虑上文已经提过的攻击面,对于APP我们可以进行脱壳分析,除了常规的APP本身的问题如重打包、组件安全问题之外,最需要关注的点应该是信息泄露部分,如一些敏感的接口地址(测试越权和有无更深一层的信息泄露)以及某些功能服务的账号密钥(如oss服务器的secretkey、telnet或ftp服务的账号密码)等。

对于C/S客户端架构的安全测试,首先肯定是分析所用协议,常规抓包工具就能搞定,然后按照上文的根据协议的攻击面去进行测试,除此之外,客户端还可以测试逆向信息收集、DLL劫持等,这个测试的并不多,奉上大佬们的文章

CS-checklist

某云pc客户端命令执行挖掘过程

实战介绍Windows下的PC客户端常见漏洞挖掘

5、RFID

生活中用到RFID的地方其实还是很多的,最常见的有门禁刷卡、地铁公交刷卡、智能打印机刷卡打印等。

比较常见的利用场景有复制小区的门禁卡,修改学校水卡余额,以及修改电梯卡可刷楼层等。

这一类利用方式也比较简单,淘宝买个NFC设备基本都附送操作教程,复制操作就是一个解密然后重新写入的操作,不多赘述。修改余额和电梯楼层的操作可以参考文章

https://blog.csdn.net/TymonPaul/article/details/80425617

比对hex后推测出规律和需要修改的点,使用winhex等工具进行修改即可

那么除此之外,由于一次偶然的机会,我又有了一些新的思路。比如我司的智能打印机,需要先刷卡进行身份认证,然后才能打印你上传的文档。首先看一下正常第一次使用工卡刷卡,打印机给的反馈如下

然后我又拿我的小区门禁卡刷了一下,想不到也可以,反馈如下

那么测试思路就很明显了,通过比对分析,得到该打印机读取的数据段,然后进行修改,反向推断出其他同事的工号(当然其实可以直接借一个过来刷),然后修改成心仪女神的工号,这样就能看到女神天天在打印啥东西..了?(所以其实并没有太大的用处吗)

当然能做的也不止于此,假设读取的数据会进入数据库,是不是也可能存在SQL注入的问题,毕竟参数可控,假如能知道管理员的序号,是不是能直接刷卡成为打印机管理员,诸如此类。

思路说了这些,你问我为什么没有实践一下的话,因为笔者就买了个PN532再玩,买不起PM3和更高级的读卡器,而PN532能读取的卡类实在太少,所以总结没实践的原因,穷。

另外,蓝牙其实也算是RFID的一类,用到蓝牙的地方生活中其实也有很多,耳机、音箱、共享单车等。蓝牙协议是真的挺难研究学习的,但是也不妨碍提出一点小小的想法,一种是中间人攻击,通过中间人的方式修改或截取信息,参考文章[翻译]蓝牙中间人攻击代理工具,还有一种就是重放攻击,可以尝试用到共享单车的开锁,参考文章蓝牙抓包重放实例

6、硬件

硬件层面的东西,毕竟不在专门研究IoT的部门,没有经费研究,自己花钱肯定要被亲爱的老婆大人询问花呗的用途,只能截取一些网上的文章分享一下。

自助终端机的常见入侵方式

基于CAN 总线操作汽车仪表盘模拟器实用指南

独角兽暑期训练营| 某网红打印机安全分析(上)

关于硬件的东西还有很多,也并不局限于此,如有其它好文希望师傅们多多推荐。

小结

IoT涉及面实在太过广泛,也不是一篇文章能陈述完的,真正的实战中肯定需要更多更全面的能力,本文只是提出个人的见解看法,以及总结思考后的一些经验,有不足之处还请指正,希望能帮助到各位。

参考

http://rui0.cn/archives/975

https://blog.csdn.net/guangyinglanshan/article/details/78583926

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-09-05,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 FreeBuf 微信公众号,前往查看

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

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
一张图告诉你,如何渗入企业内网
渗入企业内网,成功获得起始攻击点,这就是一个很有意思的话题,因为有各种有趣的攻击方式。
Bypass
2020/07/14
8060
一张图告诉你,如何渗入企业内网
腾讯Blade Team胡珀:IoT时代,“白帽子”以网为剑捍卫安全
10月10日至10月11日,第三届腾讯安全国际技术峰会(TenSec2018)在深圳顺利举办。由腾讯安全发起、腾讯安全科恩实验室与腾讯安全平台部联合主办,腾讯安全学院协办的TenSec 2018,邀请了来国内外业界技术大咖,共同探讨物联网、云计算、区块链等多领域的安全问题。 作为前沿技术安全研究团队代表,腾讯安全平台部总监、Tencent Blade Team负责人胡珀在会上进行了分享。TencentBlade Team近年来在智能设备安全研究方面积累了大量成果,包括发现首个谷歌TensorFlow
腾讯技术工程官方号
2018/10/12
8310
腾讯Blade Team胡珀:IoT时代,“白帽子”以网为剑捍卫安全
我所了解的物联网设备测试方法(硬件篇)
本科所学专业就是IoT,面试安全岗位时大部分面试官都会问我写IoT安全相关的东西,花了半天的时间整理了下本科期间做过的有关IoT安全的技术、demo等。
FB客服
2019/03/08
4.4K0
我所了解的物联网设备测试方法(硬件篇)
安全基线指南:一本修炼IoT安全设备的“武功秘籍”
“嗨,我是你最好的朋友,我是圣诞老人。”这是一则发生在一个8岁小女孩身上的新闻,房间摄像头主动“打招呼”,常常存在于电影中的桥段在现实生活中却发生了。本着“安全”之名,却给黑客行了“窥探”之便。
FB客服
2021/02/08
1.1K0
一文读懂设备OTA升级
在迅速变化和发展的物联网市场,新的产品需求不断涌现,因此对于智能硬件设备的更新需求就变得空前高涨,设备不再像传统设备一样一经出售就不再变更。为了快速响应市场需求,一个技术变得极为重要,即OTA空中下载技术。
编程识堂
2023/05/24
3.9K0
一文读懂设备OTA升级
物联网设备六种攻击面及其应对
Gartner的最新报告指出,近20%的企业机构在过去三年内至少观察到一次基于物联网的攻击。为了应对这些威胁,Gartner预测全球物联网安全支出将在2018年达到15亿美元,相比2017年的12亿美元增加了28%。
安智客
2018/07/30
1.9K0
物联网设备六种攻击面及其应对
智能摄像头安全分析及案例参考
通过对智能摄像头的网络结构和设备特性进行分析,总结了智能摄像头常见的几类攻击方式,并结合实际案例进行全面的安全分析。由于自己也是刚开始接触这方面知识,所以涉及的内容都比较浅显,大佬无视即可。
FB客服
2019/05/22
2.9K0
智能摄像头安全分析及案例参考
Peniot:一款针对物联网设备的专业全自动化渗透测试工具
Peniot Peniot是一款针对物联网设备的专业渗透测试工具,它可以帮助我们通过各种不同类型的网络安全攻击来测试目标物联网设备的安全性。也就是说,我们可以将需要测试的物联网设备暴露在主动/被动安全攻击场景下,在确定了目标设备的相关信息和参数之后,就可以利用Peniot来对其执行攻击测试了,比如说更改或消耗系统资源,重放有效通信单元等等。除此之外,我们还可以利用Peniot来执行被动安全攻击,比如说违反重要数据的机密性或流量分析(MitM)等等。值得一提的是,所有的攻击和分析操作都是以完全自动化的方式实现
FB客服
2023/04/26
4430
Peniot:一款针对物联网设备的专业全自动化渗透测试工具
解构IoT安全隐患,探寻安全防护部署新思路
随着IoT的发展,催生了大量新产品、新服务、新模式,并逐步改变了传统产业模式,引发了产业、经济和社会发展新浪潮。但与此同时,数以亿计设备的接入带来安全攻击也在不断增多。作为基于互联网的新兴信息技术模式,IoT领域除了面临所有与互联网同类型网络攻击威胁的同时,还因其多源异构性、开放性、泛在性等特性而面临更多更复杂的攻击威胁,IoT安全问题也已成为发展的关键之一。
几维安全
2019/04/22
7640
解构IoT安全隐患,探寻安全防护部署新思路
贴身守护还是隐私威胁?可穿戴设备的安全隐忧
在智能科技的推动下,手环、智能手表、健康追踪器等可穿戴设备逐渐成为现代人生活中的标配。从监控心率到记录步数,这些设备无缝融入我们的日常生活,为健康管理和便利性带来了革命性的提升。然而,当我们享受着这些“智能助手”带来的便利时,是否意识到它们也可能成为隐私泄露和安全问题的潜在威胁?今天,我们将深入剖析可穿戴设备的安全性问题,并提供防护思路。
Echo_Wish
2025/04/03
1820
贴身守护还是隐私威胁?可穿戴设备的安全隐忧
这面试题我遇到过,两次。
印象比较深的是第一次遇到这个面试题的时候,也是第一次听到“重放攻击”这个词的时候,一脸蒙蔽,于是我就连蒙带猜的,朝着接口幂等性的方向去答了。
why技术
2021/06/10
5090
这面试题我遇到过,两次。
安全测试 —— 你了解WEB安全测试吗?
  之前在知乎上回答了一个朋友的提问,是关于安全测试相关面试题的,在回答之余让我也不禁想起了自己还在做软测执行的日子。趁着兴起,和团队里的安全测试小伙伴交流了一下,写下了这篇文章,也希望能帮助到更多正在安全测试道路上前行的小伙伴。
Austin_zhai
2023/10/18
8210
安全测试 —— 你了解WEB安全测试吗?
Android安全测试
(2)防二次打包-验证APP签名-获取二次打包后APP的签名与正确的AP签名进行对比
wangmcn
2022/07/26
1.1K0
Android安全测试
物联网安全研究之二:IoT系统攻击面定义分析
在前文中,我们了解了IoT技术的基本架构,本文我将来说说IoT安全,在此过程中,我们会尝试定义一种新方法来理解IoT安全,同时也会创建一个结构化流程来方便认知IoT相关的攻击研究和渗透测试。 依据前文我们定义的IoT体系结构,现在我们可以非常清晰地分离出物联网系统的各种组件,并尝试为每种组件定义攻击面,各种组件的攻击面组合将形成一个整体的物联网生态系统攻击面。 我之所以把它称为物联网生态系统而不是物联网产品,是因为它确实是一个由不同组件组成的生态系统,它们相互通信并解决特定的现实问题。 我们先来详细讨论
FB客服
2018/02/26
2.2K0
物联网安全研究之二:IoT系统攻击面定义分析
提升物联网安全:应对未来挑战的实战解决方案
随着物联网(IoT)的迅速普及,其安全问题日益凸显。本文将探讨物联网设备的安全漏洞、攻击手段及其防御策略,并分析物联网安全标准的制定和实施对行业的影响。我们将通过实际的Demo代码模块演示如何提升物联网设备的安全性,辅以相关章节配图来增强理解。
Swift社区
2024/07/19
4580
提升物联网安全:应对未来挑战的实战解决方案
利用PRET控制远程打印机测试
Pret是用来对打印机安全进行测试的工具。它通过网络或者USB连接到设备,并利用给定打印机的语言进行渗透。目前绝大多数的打印机都是使用PostScript,pjl和pcl。这使得该工具可以通过这些打印机语言进行捕获或者操作打印作业,访问打印机文件系统和内存甚至造成物理层面上的破坏。
FB客服
2018/07/30
2.7K0
利用PRET控制远程打印机测试
软件测试之安全怎么做?
扫描?在很多人的眼中,做安全的就是整天拿个工具在哪里做扫描操作,使用各种不同的工具做扫描。是的,扫描是安全测试的很重要的一部分,扫描可以快速有效的发现问题。扫描工具的易用性、方便性决定了重要地位。但是扫描工具的局限性、程序的不够灵活等缺点也是显而易见的。不管是扫描报告的分析、漏洞的深度挖掘、测试的组织等等的工作都离不开安全测试人员,所以只能说扫描工具减轻了测试人员的工作量,是安全测试的一种手段。
小黑同学
2020/08/17
2.3K0
IoT威胁建模
威胁建模是利用软件、系统或威胁模型在开发软件或者系统的早期及时发现安全问题以及理解安全需求,并根据这些安全问题制定缓解、清除措施。
OvO我是肉排菌呀
2021/03/12
2.6K0
IoT威胁建模
「首席架构师推荐」测试工具
渗透测试是对计算机系统及其物理基础设施发起授权的、模拟的攻击,以暴露潜在的安全弱点和漏洞的实践。
架构师研究会
2019/09/25
2.8K0
从原理到实战,全面总结 Android HTTPS 抓包
要说清楚 HTTPS 抓包的原理,首先需要先说清楚 HTTPS 实现数据安全传输的工作原理,主要分为三要素和三阶段。
用户9995743
2022/09/26
2.6K0
从原理到实战,全面总结 Android HTTPS 抓包
相关推荐
一张图告诉你,如何渗入企业内网
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档