购物车

您的购物车目前是空的

商品分类
  1. 嘶货 首页
  2. 企业动态

针对GPS追踪器设备的安全研究(part2)

0x01 背景描述

在上一篇中,我发布了对在GPS跟踪设备网络中发现的漏洞的深入分析。自从我向制造商深圳i365披露我的发现以来,已经过去了将近9个月。但是,到目前为止,我估计仍然有超过500万种设备仍在野外使用,这些设备会暴露儿童、老年人、物质财产的精确实时GPS坐标。

你可能想知道这样一个非常不安全的品牌如何被全球众多消费者所购买。我发现,这个问题比向单个设备供应商披露一个漏洞要大得多。取而代之的是,我在研究的第一部分中详细介绍了GPS跟踪器,实际上看到了供应链关系网,从而使安全问题从一个供应商到下一个呈指数增长。

在这篇后续文章中,我将通过详细介绍GPS追踪器的基础设施并解释制造商与供应商与消费者之间的关系,来解释这些廉价的仿制品牌的销售范围。

制造商才是真正生产跟踪器电子产品的一方,而卖方则是以软件,应用程序或云解决方案的形式出售具有附加值的设备的一方。

首先,让我回顾一下本研究的第一部分。

GPS跟踪器具有各种品牌和型号,并且具有多种用途。通常会打广告宣传它们,以追踪孩子在旅途中的位置,通常采用带有麦克风/扬声器或照相机的手表形状,以便与父母进行交流。我还分析了专为汽车设计的GPS跟踪器,有些型号甚至允许黑客连接到车辆的防盗装置,从而远程杀死引擎。我研究了衣领形状的宠物追踪器,具有内置紧急呼叫功能的老年人追踪器以及钥匙圈上的通用追踪器。所有这些跟踪器的共同点是基本的操作方案(如下图所示)以及云API中的一组漏洞,这些漏洞可能使攻击者能够完全控制设备。

img

典型的GPS追踪器系统示意图

为了完全掌握这个漏洞的链路,我需要解释供应链问题的实际含义。在当今的物联网领域,首先要把新产品推向市场,而不是花时间加强其安全性。特别是在竞争激烈且供应商不太可能投资内部构建所有产品的廉价设备领域,解决方案是使用从第三方购买的各种组件来构建产品。那就是供应链。这不是一个新概念,制造一直以来都是这样,但是如今安全研究人员担心的是,通常无法保证产品的这些组成部分是安全的,

纵观GPS追踪器市场,许多看起来很相似,但是由不同的供应商以不同的产品名称出售。事实是,那里有无数的追踪器,并且全部由中国的几家工厂生产。如今,在中国以外著名的跟踪器制造商包括:

image.png

供应商通常是那些将不同来源的这三个主要组成部分进行出售和组合的供应商。我们试图绘制所有制造商,解决方案提供商和供应商图,但这是一个如此广泛的网络,以至于无法封装所有这些信息。为了便于说明,典型的供应链如下所示:

img

供应链插图

上图非常简单并且可以理解,但这是一个理想的世界。在现实世界中,此架构中有许多例外。例如,云解决方案提供商也可能直接销售带有应用程序和硬件的最终解决方案,或者硬件工厂从另一位开发人员那里获取固件。

0x02 漏洞概述

我发现i365品牌的追踪器存在很多问题:

1.默认登录凭证

该特定供应商的所有跟踪器均已预先配置为默认密码123456,这是最不安全的密码之一。没有要求用户对其进行更改。

image-20220323111014334.png

2.登录未认证

通过网络未加密地登录Web服务以及移动应用程序,因此任何人都可以截获或更改。image-20220323111040074

image-20220323111040074.png

登录到Web门户的截图,允许用户控制和监视跟踪器

3.弱密码登录

跟踪器的用户名也已预先配置,没有给用户提供选择用户名的选项。实际上,分配的用户名实际上只是设备的国际移动设备识别码(IMEI)的一部分,可以很容易地进行迭代。此外,密码已重新设置为123456。

image-20220323111054130.png

4.跟踪器和云平台以纯文本传输

通过跟踪器的GPRS移动连接传输的数据未加密,并且缺少身份验证。此外,跟踪器仅通过发送带有预定义密码的SMS纯文本即可使攻击者更改数据发送目的地的端点(IP地址和端口)。这种缺乏加密的机制使任何人都可以截取和修改通信,从而允许发生各种情况,例如数据泄漏,欺骗用户的位置,发送恶意命令等等。

image-20220323111124255.png

GPS跟踪器和云服务器之间捕获的通信

5.云框架API不安全

遵循SOAP标准通信协议的API端点存在许多问题。大多数功能不需要事先验证,设备的唯一标识符是一个六位数的数字,可以快速浏览与设备相关的数据,例如GPS历史记录或云平台中存储的照片。任何人都可以调用API,缺少身份验证。

image-20220323111144021image-20220323111144021.png

要获取存储的照片,只需一个设备的ID(六位数字),密钥是固定的

即使在这里看到的 Key 字段,它也不是通过登录获得的会话密钥,实际上,该应用程序的内置密钥已被接受。事实证明,该密钥也由不同的供应商共享,指向一个公有云。

我提到这似乎不仅仅是一个中国供应商,这是一个更大的问题,但不幸的是,事实证明我是对的。

0x03 攻击云平台

现在,让我向你解释为什么我重新介绍了供应链。想象一下这种情况:有数十家GPS追踪器制造商生产了所有这些不同型号的追踪器,它们都带有自己的固件,这些固件都具有自己的协议,因此他们要么创建自己的解决方案和应用,要么购买现成的解决方案。你会走哪条路?

因为我非常怀疑这不是一个孤立的问题,所以我在考虑从另一家制造商那里购买汽车追踪器。

1.设备研究

随机搜索GPS跟踪器在互联网上找到了下面这个:

image-20220323111258600.png

TK100车载GPS追踪器

根据制造商的网页,该跟踪器能够切断汽车点火装置的电源,在点火装置打开时发送警报,以及所有标准功能,包括麦克风和扬声器。但是我需要为此攻击实验购买它吗?我决定进行虚拟分析,以证明对这些设备和配套应用程序中的任何一个进行正确的安全评估并不难。此外,为了证明我对此设备正在使用相同的后端服务的猜测。

第一步是获取设备的操作手册并下载配套应用程序。在制造商的网页上,下面引起了我的注意:

image-20220323111330816.png

有一个Web门户和Android app。首先看一下门户:

image-20220323111343875.png

由于不知道确切的IMEI或车牌号,因为我实际上没有购买,无法登录,但至少让我们看看这些登录数据是如何通过网络传输的。

img

通过网络以纯文本形式输入的密码和用户名

看一下Android应用程序

image-20220323111421962image-20220323111421962.png

Android App

没有发现什么信息,于是通过apklab .io进行分析:

image-20220323111512744img

通过apklab.io静态分析找到的URL字符串

通过对没有物理设备的Android应用程序进行静态分析,我发现了一个内置URL,该URL似乎正是我要寻找的URL,因此尝试一下。

img

APK文件中URL的API

似乎很熟悉:

image-20220323111536973上一篇博文对i365的分析得出的API的截图

好的,现在让我们从GetDeviceDetail开始测试它们是否存在相同的漏洞:

img

具有常规参数的GetDeviceDetail API

使用先前应用程序中的内置密钥并进行DeviceID猜测:

img

这证明所有这些跟踪器都有一个共同点:尽管这些跟踪器是由不同的制造商制造的,但似乎云基础架构是由同一家公司制造的。只是为了证明我的观点,我下载了该手册,尽管它看起来略有不同,但我得到了帮助:

img


你可以看到与之前的研究相同的模式,如何设置追踪器应该连接的服务器的IP地址和端口,以发送GPS数据和接收命令。

2.终极工具Google

我们知道有多家供应商使用一种公有云框架,但是我们如何找到更多云平台呢?有时候Google可以带来丰硕的成果。我在Google上搜索了OpenAPv3.asmx,而且看起来似乎令人难以置信,我发现许多页面的URL类似于我已经看到的格式。但是当我也发现这一点时,真是一个惊喜

image-20220323111558179.png

允许浏览服务器上的目录

任何人都可以自由浏览它的方式打开站点不是一个很好的标准,所幸此页面已被删除。但这为我提供了有关API的结构以及在那里可以找到的内容的线索。我在这里注意到三件事:

1.日志目录是可浏览的,这可以为我提供有关整个后端系统来自何处的更详细的提示

2.API有多种版本,事实证明它们都在访问相同的OpenAPIV1-V4数据。

3.ZKImages文件夹是不言自明的,包含大量GPS追踪器使用内置摄像头拍摄的图像

日志目录是引起我注意的第一件事。

image-20220323111613941.png

如你所见,日志是最新的

image-20220323111630210.png

尝试连接到数据库时,SQL客户端中的某些异常。但是,这里最有价值的信息是实现框架的二进制文件的名称。你知道信息安全领域中的所有灾难都来自错误的代码,糟糕的代码通常来自程序员。因此,我决定效法这一点。除了它可能是很老的.NET二进制文件外,从二进制文件本身的名称NewGPS2012.Logic中看不出什么。因为之前通过Google搜到了很多信息,所以我再次尝试了。

image-20220323111642620.png

我对结果感到非常惊讶,发现许多Google索引的日志目录为我提供了几乎免费使用相同框架的域名列表,但其中一个很特别:

img

是的,有人刚刚留下了框架二进制文件的更新。在分析这些二进制文件时,我学到了很多东西,但是我发现的基本要点之一是在SendCommandAPI.dll文件中,该文件有详尽的函数列表。

image-20220323111709616.png

很快,事实证明这是可以与GPS追踪器的所有不同制造商的所有不同型号进行通讯的通用API,整个事情就讲得通了。如果你是硬件设备的制造商或供应商,则可能需要一个易于使用且兼容的云解决方案。为了安全起见,我们不公开解决方案供应商的名称,尽管并不难找到。

img

3.把所有东西都给我

使用Web门户登录时,会将这些请求发送到包含以下内容DeviceID的API :

image-20220323111901980.png

一个奇怪的信息:

img

我们实际上没有这些跟踪器的用户帐户。还记得唯一的用户标识是IMEI或跟踪器的ID吗?更令人担忧的是,我有同一家公司的更多跟踪器,并且它们在响应中都具有完全相同的UserID。

进入API并深入了解它提供的OpenAPIV3.asmx功能:

img

试一下用户名。所以我们只需输入我们已经使用过多次的用户ID和强制密钥,就得到如下响应:

img

考虑到整个系统的安全性,我只是尝试使用已经使用过很多次的密码,这次我选择通过“帐户”登录:

img

进入了供应商的控制面板,其中有所有已售出的跟踪器供我们使用。因此,用户ID实际上是销售商的用户ID,他们向你出售了特定的跟踪器。

img

从这里你可以完全控制追踪器。是的,你看对了,每页有1026页,10个跟踪器,让你可以轻松控制10260台设备。例如,有一个重置密码选项,你猜怎么着,它不会要求你输入新密码;按下时,会将其设置为123456。

4.漏洞修复

我们看到这些供应商没有关心设备安全性。在撰写本文时,供应商已发布了针对此bug的修复程序,但它更像是一个补丁程序。从现在开始,你将无法选择123456密码,并且如果已经拥有新的登录名,则必须更改密码123456。

img

好吧,事实证明这根本不是一个解决办法,因为这些API端点未正确进行身份验证。我们再看看OpenAPIv3.asmx  API :

image-20220323111922827.png

它可能看起来很复杂,但实际上并不复杂。这里更重要的是,在本例中,ID是用户的ID,并且它也只是0-999999,这很容易枚举。其余的必填字段是已知的。因此,通过运行一个简单的查询,我们可以很容易地得到以下响应:

image-20220323111934743.png

注意结果集的大小。通过一次查询,您将获得分配给特定帐户的所有设备。当你遍历所有可能的用户ID时,你会得到所有的用户和设备。从那里你可以得到你想要的任何信息,电话号码,位置,用户名,在这个端点下,还有来自你汽车OBD接口的数据,以及我在上一篇文章中向你展示的所有东西。最后但并非最不重要的一点是,你可以完全控制远程设备,打电话或从追踪器发送短信。想象一下攻击者能做什么。例如,招募一大群移动设备向特定号码发送短信,或在短信投票中操纵投票。

我已经研究这些不安全的GPS设备很长时间了,努力了解问题的严重性。到目前为止,我已经确定了30多个在互联网上运行的这个框架的不同实例,以及500多个使用这个服务的不同版本的跟踪器。很难估计问题的大小,但至少粗略估计一下,我对两个随机云目标进行了完整扫描,得到了以下数字:

788644+251886来自两个云目标的地理定位追踪器。前提是,根据我们目前所看到的情况,我们可以粗略估计,可以定位和控制的设备可能超过1500万台。

还值得一提的是,由于供应链的原因,并非所有这些设备都是我前面提到的少数几家中国工厂生产的廉价品牌。在我的研究中,我还发现了许多欧洲和美国品牌,其中一些甚至在亚马逊上销售。但在美国版本的跟踪器中,有趣的是,该网站使用HTTPS,看起来相当合法;它还使用了一款支持LTE的设备,你甚至要为这个计划支付月费。你必须激活你的设备并创建一个帐户,但下面是我们已经看到的没有安全性的云框架。

img

美国版的跟踪器似乎合法,可以通过HTTPS进行传输并提供LTE数据计划

img

前面提到的跟踪器没有使用OpenAPIV3.asmx命名约定,但它使用了在中国运行的相同API

为了说明不仅中国客户受到影响,以下是我们从两个完整扫描的公有云中按国家、地区划分的跟踪器图表:

img

扫描公有云上的跟踪器

正如我在一开始所说的,我找到了一家为所有硬件制造商和供应商提供云解决方案的公司,这是它们的服务范围:

image.png

0x04 研究总结  

img

云解决方案供应商的页面和范围

在这里,你可以找到所有内容,甚至包括有关OpenAPI协议的文档以及针对特定跟踪器的协议的信息:

img

在调查过程中,我偶然发现了许多受影响的应用程序和供应商,很多时候他们甚至都不知道自己有问题。我一直在思考如何进行负责任的披露,同时帮助受影响的用户。我决定不公开所有应用程序和云平台,因为在这种情况下,没有简单的方法可以同时完成负责任的披露和公共服务公告。

联系我们

010-62029792

在线咨询: 点击这里给我发消息

电子邮箱:info@4hou.com

工作时间:09:00 ~ 18:00