Terramaster TOS 存储 VPN 参数命令执行漏洞复现

Wayyt  5小时前

Terramaster TOS 存储 VPN 参数命令执行漏洞复现

0x00 漏洞概述

Terramaster TOS 是深圳市图美电子技术(铁威马,Terramaster)旗下一款基于 Linux 平台的 NAS(网络附加存储)设备操作系统,面向个人与中小企业用户提供云存储服务。该系统的 Web 管理服务由 api.php 脚本统一承载,各类功能模块通过该脚本的类/方法形式路由参数进行分发调用。

TerraMaster TOS 存在一处无需身份验证的命令执行漏洞。漏洞根源在于 api.php 处理 VPN 模块请求时,对相关参数缺乏严格校验:攻击者提交的参数值会被直接拼入系统命令执行,且接口在调用前不要求登录会话。远程攻击者只需向目标设备发送一个特制的 HTTP 请求,即可在设备底层以服务进程权限执行任意系统命令,进而完全控制该 NAS 设备,读取、篡改或加密其中存储的全部数据。该漏洞利用门槛极低,单个请求即可完成命令执行,该漏洞综合评级为满分 10 分,公开披露时间为 2022 年 3 月 23 日。公开渠道未检索到该漏洞对应的 CVE、CNVD 或 CNNVD 编号,公开分析文章中同样仅以产品与接口路径对其进行标识。

0x01 影响范围

  • 影响产品:Terramaster TOS 存储服务系统。
  • 触发条件:设备 Web 管理服务可被访问,api.php 的 VPN 模块接口未做访问来源限制;利用过程无需任何账号凭据。
  • 受影响版本:截至资料整理时,公开渠道与厂商公告均未给出可核实的精确受影响版本区间,此处不作具体版本列举。建议使用方自行核对厂商官方通告确认所用版本状态。
  • 网络测绘检索特征(供暴露面排查参考):title="TOS Loading";另有公开分析采用 header="TOS" 与品牌关键词组合的检索方式。

0x02 漏洞分析

Terramaster TOS 的管理接口 api.php 采用「类名/方法名」形式的路由参数分发请求,例如本漏洞涉及的 VPN/_mportVpn 即指向 VPN 模块中导入、编辑 VPN 配置的处理逻辑。该处理分支接收 statusoldName 两个参数:status 取值 edit 时进入配置编辑动作,oldName 用于指定待编辑的原配置名。

问题在于,后端在处理 oldName 时未对参数值做字符白名单过滤或转义,而是将其直接拼接到操作系统命令字符串中执行。由于拼接发生在 shell 层面,攻击者可以在参数值中插入竖线管道符,把任意命令附加到原有命令之后一并执行。以判定特征中出现的 1|id|| 为例:数值 1 为原本预期的配置名位置,随后第一个竖线开启管道,id 作为注入的命令被 shell 执行,末尾的双竖线则用于截断后续拼接内容、保证命令整体语法闭合。

结合接口无需认证的特性,构成完整的未授权命令执行链条:未认证的远程攻击者 → 向 api.php 的 VPN 模块接口发送携带管道符的编辑请求 → 参数值拼入 shell 命令 → 任意命令在设备上执行。NAS 设备通常存有大量业务数据,命令执行成功后攻击者可直接落地 Webshell、创建持久化账号,或进一步对内网横向移动,危害为设备失陷级别。

0x03 利用链与请求包

利用过程仅需一个 HTTP 请求。请求方法为 POST,目标路径为 /module/api.php?VPN/_mportVpn,请求体为表单编码,oldName 参数中携带管道符注入的命令。完整请求包如下(目标地址以示意网段代替):

POST /module/api.php?VPN/_mportVpn HTTP/1.1
Host: 192.0.2.10
Content-Type: application/x-www-form-urlencoded

status=edit&oldName=1|id||

请求包中各部分与漏洞机制逐条对应:

  • POST /module/api.php?VPN/_mportVpn:路由至 VPN 模块的配置导入/编辑方法,该接口调用前无登录态校验。
  • Content-Type: application/x-www-form-urlencoded:声明表单编码请求体。
  • status=edit:触发配置编辑分支,使 oldName 参数进入命令拼接路径。
  • oldName=1|id||:注入载体。id 命令经管道符拼入系统命令执行;该命令位可替换为任意系统命令(利用代码中的命令参数默认值即为 id)。

成功利用时的响应判定特征为:HTTP 状态码返回 200,且响应正文中同时出现 uid=gid= 字样——这正是 id 命令输出的典型结构。替换注入命令后,响应正文将变为对应命令的执行结果。需要说明的是,以上响应部分系依据利用代码中的判定特征归纳的结构性描述,而非某一具体目标的实录报文。

0x04 检测与修复建议

检测层面:

1. 排查 Web 访问日志中针对 /module/api.php?VPN/_mportVpn 的 POST 请求,重点关注 oldName 参数值中包含竖线管道符的记录;命中即可判定为攻击尝试。

2. 核查公网、办公网边界及第三方托管环境中的 Terramaster TOS 部署,确认相关接口的暴露范围和版本。

3. 检查 Web、系统和进程日志,发现异常命令执行痕迹立即处置。

修复建议:

1. 核对厂商公告中的受影响范围,升级至官方修复版本或更高版本;升级前备份配置和数据。可关注厂商 TOS 更新页获取版本信息。

2. 暂不能升级时,限制相关接口与管理面的访问来源,例如通过防火墙等设备设置白名单,关闭调试或高风险功能,并拦截已知攻击特征;临时措施不能替代版本修复。

0x05 参考资料

1. TerraMaster TOS api.php 信息泄露和远程命令执行(公开分析):https://blog.csdn.net/qq_36334672/article/details/136450448

2. 铁威马 TOS 官方更新页:https://www.terra-master.com/jp/tos/

3. 技术分析资料(内部)

最新评论

昵称
邮箱
提交评论