产品描述
Enel X JuiceBox (Waybox) Pro 和 Plus 3.0 22 KW Cellular 是一款电动汽车充电器,适用于私人和住宅环境。
该充电器包括一个可通过 Wi-Fi 或有线以太网访问的网络管理器界面。以太网端口位于充电器前面板下方。
JuiceBox Web 管理器应用程序
Enel X Way 官方网站上发布的安装手册文档中提供了用户级访问 JuiceBox Web 管理器的默认密码。
此外,充电器还配备了 LTE 调制解调器,用于与具有 RFID 身份验证功能的供应商后端进行通信。最后,它支持通过RFID卡识别用户,从而限制对充电功能的访问。
概括
PCAutomotive 发现了多个漏洞,这些漏洞可能允许潜在攻击者在 Enel X JuiceBox (Waybox) Pro 和 Plus 3.0 充电器操作系统中获取最高权限。在此级别的访问中,攻击者可以访问充电器上存储的敏感数据、绕过设备所有者设置的充电限制、导致充电器拒绝服务、修改固件。该漏洞适用于2.1.1.0_JB3VU096A之前的充电器固件版本。
CVE ID | 标题 | CVSS分数 |
---|---|---|
CVE-2023-29114 | 系统日志泄露 | 5.7(中) |
CVE-2023-29115 | 通过 Web 管理界面拒绝服务 | 6.5(高) |
CVE-2023-29116 | PHP信息泄露 | 4.3(中) |
CVE-2023-29117 | JuiceBox Web Manager 中的身份验证绕过 | 8.8(严重) |
CVE-2023-29118 | 未经授权的 SQLite 注入 #1 | 9.6(严重) |
CVE-2023-29119 | 未经授权的 SQLite 注入 #2 | 9.6(严重) |
CVE-2023-29120 | 未经授权的远程命令执行 | 9.6(严重) |
CVE-2023-29121 | 暴露TCF代理服务 | 9.6(严重) |
CVE-2023-29122 | 特权服务库的文件所有权不正确 | 6.7(中) |
CVE-2023-29125 | CM_main.exe 二进制文件中的堆溢出 | 9.0(严重) |
CVE-2023-29126 | 不安全的松散比较 | 4.2(中) |
披露时间表
日期 | 描述 |
---|---|
2023-03-16 | 咨询已发送至 [email protected] |
2023-04-01 | Enel X 通知 PCAutomotive,分析的固件 JB3VUEV02c 已过时。 Enel X 将充电器固件更新至版本 1.1.3.5_JB3VU093 |
2023-04 | PCAutomotive 对版本 1.1.3.5_JB3VU093 的调查结果进行验证 |
2023-04-28 | PCAutomotive 向 Enel X 报告重新测试结果。PCAutomotive 通知 Enel X 1.1.3.5_JB3VU093 中存在漏洞。 |
2023-12 | 根据 Enel X 的指示,修复程序已从版本 2.1.1.0_JB3VU096A 开始针对新安装发布 |
2024-06-17 | Enel X 向充电器所有者发布安全建议 |
技术细节
CVE-2023-29114:系统日志泄露
描述
由于缺乏访问控制,在 Web 管理应用程序中拥有常规用户权限的攻击者可以获取系统日志。这些日志暴露了可用于进一步攻击开发的敏感信息。
利用场景和影响
通过 Wi-Fi 网络连接到 EV 充电器后,可通过端口 80 访问 JuiceBox Web 管理面板。此 Web 应用程序的常规用户可以检索包含敏感信息的系统日志,例如纯文本凭据和配置属性。
要触发该漏洞,需要向路径/admin/log.php发送带有空参数download的 HTTP GET 请求:
从 log.php 检索敏感信息的示例
攻击者可以获得以下敏感信息:
-
电动汽车充电器可以连接的 Wi-Fi 接入点凭据。
-
APN 网址和凭据。
-
IPSEC 凭据。
-
用户和管理员帐户的 Web 界面访问凭据。
-
JuiceBox 系统组件(安装的软件、型号、固件版本等)。
-
C2G 配置详细信息。
-
内部 IP 地址。
-
OTA 固件更新配置(DNS 服务器)。
所有凭据均以未加密的明文格式存储在日志中。入侵者可能会利用对这些数据的未经授权的访问来获得对控制面板和其他端点的特权访问,从而促进后续攻击的发展。
CVE-2023-29115:通过 Web 管理界面拒绝服务
描述
Juicebox Enel X 很容易通过 Web 管理界面遭受拒绝服务攻击。这种类型的攻击允许具有充电器网络可见性的未经授权的攻击者通过直接 GET 请求造成拒绝服务(重新启动),而无需任何访问控制限制。
利用场景和影响
以下请求GET /admin/reboot.php执行 Juicebox 设备的重新启动操作:
强制设备重新启动的示例
每次重新启动周期后,系统需要两到三分钟才能可用。
CVE-2023-29116:PHP 信息泄露
描述
JuiceBox Web 管理器应用程序中的phpinfo.php脚本允许远程攻击者通过调用phpinfo()函数来获取敏感信息,例如完整的 Web 根路径、操作系统版本和服务器配置详细信息。
利用场景和影响
通过向admin/phpinfo.php场景发出 HTTP GET 请求即可进行利用,远程攻击者无需任何身份验证即可使用该请求。
调用 phpinfo() 函数的结果
攻击者可以获得敏感信息,例如:
-
确切的 PHP 版本。
-
确切的操作系统及其版本。
-
PHP 配置的详细信息。
-
PHP 编译选项。
-
PHP 扩展。
-
内部 IP 地址。
-
服务器环境变量。
-
加载的 PHP 扩展及其配置。
-
HTTP 标头。
此信息有助于潜在的犯罪分子进一步发展攻击。
CVE-2023-29117:JuiceBox Web Manager 中的身份验证绕过
描述
JuiceBox Web 管理器应用程序有一个 API,由于缺乏访问控制,可用于任意数据库修改。未经授权的攻击者可以利用此漏洞绕过身份验证并获得管理员权限来访问和控制 JuiceBox 系统或中断服务。
利用场景和影响
未经授权的攻击者可以通过向场景/api/command.php发送 GET 请求并将操作参数指定为set_param来利用此漏洞。该请求根据 GET 参数param和value修改应用程序数据库。要绕过身份验证,恶意因素可以将adminPasswordVisible属性设置为True 。
更改管理员密码的可见性设置
结果,admin用户密码的明文值将显示在索引页面的身份验证表单下方:
管理员密码的可公开访问值
通过利用此漏洞,攻击者可以:
-
保持对所有敏感信息的控制,包括 Wi-Fi、SIM、IPSEC、充电器系统、充电点和中央管理系统(在 OCPP 标准中定义为 CP 和 CM)、充电器到电网 (C2G) 的明文凭证和设置。
-
读取并修改系统中当前所有充电器寄存器。
-
上传恶意或过时的固件。
-
通过使充电器重新启动或停止充电过程来控制充电器操作。
-
获取对所有系统日志文件的访问权限。
-
将任意RFID卡添加到计费白名单中。
对控制面板的特权访问
CVE-2023-29118:未经授权的 SQLite 注入 #1
CVE-2023-29119:未经授权的 SQLite 注入 #2
描述
JuiceBox Web 管理器应用程序容易受到 SQL 注入漏洞的攻击。应用程序无法正确验证用户输入。它允许未经授权的攻击者通过SQL Injection的方式进行针对SQLite请求逻辑改变的攻击。易受攻击的 URI 是:
-
/admin/versions.php ,易受攻击的参数是 POST 参数name和value 。
-
/admin/dbstore.php ,易受攻击的参数是POST参数地址和值
利用场景和影响
以下请求可用于修改数据库的任意表:
通过值参数进行 SQL 注入利用的示例
通过地址参数进行 SQL 注入利用的示例
因此,攻击者可以向数据库运行任意请求、修改数据并对服务器发起攻击。
CVE-2023-29120:未经授权的远程命令执行
描述
JuiceBox Web 管理器应用程序容易受到 RCE 漏洞的影响。应用程序无法正确验证用户输入。它允许攻击者进行旨在注入任意操作系统命令的攻击。存在漏洞的 URI 是/api/command.php ,存在漏洞的参数是 POST 参数ssid和passkey 。
利用场景和影响
以下请求可用于在目标服务器上调用ping进程:
通过 ssid 参数执行操作系统命令的示例
因此,攻击者可以在守护程序帐户下执行任意操作系统命令,并在CVE-2023-29122中描述的权限升级后获得操作系统的root访问权限。
CVE-2023-29121:暴露的 TCF 代理服务
描述
JuiceBox Enel X 启用了目标通信框架 (TCF) 服务作为 Eclipse 调试接口。通过此服务,攻击者可以调试进程、修改文件系统,并通过简单地连接到充电器的 TCP 端口 1534来以root用户身份访问终端:
在电动汽车充电器主机上打开 TCP 端口
通过netcat实用程序访问TCF服务
利用场景和影响
通过利用 Eclipse TCF 插件,攻击者可以访问充电器上的 Linux 文件系统,从而允许从影子文件中检索内容等。
此攻击允许未经授权的攻击者获得受影响模型的根权限,从而导致执行任意操作系统命令并获得对目标系统的完全控制。
CVE-2023-29122:特权服务库的文件所有权不正确
描述
系统将/runtime/lib/目录树的用户/组所有权分配给 Web 服务用户帐户daemon ,这允许在目标目录中的文件由root拥有的进程执行时进行权限升级。
服务CM_main.exe具有root权限并使用存储在子文件夹 / runtime/lib/中的库。这些库由守护程序用户拥有:
守护程序用户对库的所有权
利用场景和影响
如果恶意用户拥有设备上守护程序用户的权限,他们就可以覆盖库文件。 CM_main.exe服务重新启动后,攻击者将能够以root用户的权限执行任意操作系统命令。
CVE-2023-29125:CM_main.exe 二进制文件中的堆溢出
描述
攻击者可以通过操纵输入值来触发CM_main.exe二进制文件中的堆缓冲区溢出,从而使请求正文大于预定义的固定长度缓冲区:
标题大小的定义
利用场景和影响
CM_main.exe二进制文件使用套接字服务处理 TCP 端口 7700 上的请求。每个请求由两部分组成:标头和正文。
header包含short int类型的字段,用作body的长度。代码中的任何位置都不会检查此长度。主体缓冲区的固定长度为 0x2000。因此,攻击者可以发送长度大于 0x2000 的正文并导致堆缓冲区溢出。
CVE-2023-29126:不安全的松散比较
描述
在 JuiceBox 的 Web 管理器应用程序中, index.php页面包含 PHP 类型的杂耍漏洞,该漏洞允许攻击者加速暴力破解过程,并在某些情况下绕过身份验证。
利用场景和影响
用户帐户的默认密码是 000000,在密码字段中仅提供 0 将允许攻击者登录,因为 0 和 000000 使用松散比较运算符进行比较,因此这些值将转换为相同的值数据类型。不正确的比较实现的另一个例子是 0 将等于 0e1234。因此,攻击者可以获得用户面板的访问权限并执行以下操作:
-
将连接类型调整为 SIM 或 Wi-Fi。
-
控制参数即插即充和最大充电电流值。
-
将不同的未经授权的 RFID 卡添加到白名单中。
-
维护C2G配置。
用户访问 JuiceBox Web 管理器
声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与技术交流之用,读者将其信息做其他用途,由用户承担全部法律及连带责任,文章作者不承担任何法律及连带责任。
本人长期从事车联网攻防一线,公众号中的相关工具和内容在星球会有进一步的扩展解读,同步了解国内外车联网一线信息,内容每日都会更新,微信识别二维码付费即可加入,如不满意,72 小时内可在 App 内无条件自助退款。
星球内容涵盖IOV和IOT各种前沿的理解,有问题能提问答疑
原文始发于微信公众号(车联网攻防日记):【车联网】撸穿车充站顺带喜提一堆CVE