Terramaster TOS 存储 VPN 参数命令执行漏洞复现
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 配置的处理逻辑。该处理分支接收 status 与 oldName 两个参数: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. 技术分析资料(内部)

Wayyt 5小时前
最新评论