说说NX54 新Telnet(无具体方案)

前言

距上一篇折腾 NX54 的文章差不多过去一年了。

去年有同用 NX54 的朋友跟我倒苦水,说路由器升级到官方新版(R013)之后,原本用得好好的 Telnet 彻底打不开了。他之所以需要这个权限,其实和我一样,主要是因为官方固件自带的 IPv6 防火墙太死板,只能全开或者全关,没法给内网某台 NAS 或服务器单独放行端口,必须得靠脚本写自定义 ip6tables 规则。

我立刻把自己的 NX54 固定在 R012,日常跑得挺稳,所以一直没升。但也好奇:官方发个大版本把调试口封死,甚至还加了防降级限制,底层到底改了些什么?

新版固件到底改了哪儿?

先说结论:底层的 Telnet 一点没变,官方只是在门外加了把锁。

1. telnetd 基本没变

telnetd是telnet服务端程序,启动方式几乎没变。

只不过入口处的 debug.asp 页面改了。以前进调试页面点个开关就能启动,新版本里点开启需要输一个动态密码。这个密码是根据机器的硬件信息、用户信息算出来的,也就是“一机一密”。普通用户没密码,自然就打不开了。

2. 之前写的开机固化为什么失效了?

之前在H3C NX54路由器如何永久开telnet中提过,大家可以通过修改配置把 telnetenable=enable 固化下来,实现重启也能自动开 Telnet。

新固件加了一道检测:开机读取配置时,系统会检查设备的一个出厂标识。只要这台路由器是正常出厂的量产机,不管你的配置表里有没有开 Telnet,telnetd的脚本都会强制跳过,直接不予启动。

3. 防降级限制

新固件在 Web 升级逻辑里写死了最低版本号。一旦升到了 R013 或 R014,想在 Web 页面直接刷回 R012 固件就会提示版本过低拒绝刷入,把降级的路给堵了。


telnet依然是老味道

从R012上梳理一下调用的链路,R013其实一样。

1
2
3
4
5
6
7
8
9
10
Web 触发


telnetd 守护进程
│ (-l /bin/login.sh)

/bin/login.sh ──(直接跳过标准 Linux 登录)──► /bin/mwcli (Comware 命令行)

└─► 敲 debugshell ──► execvp("/bin/sh")
[拿到 Root Shell]

新老版本的 telnetmwcli 在这块逻辑上一模一样,官方根本没碰这部分内容。


是怎么回事?

官方突然花心思把 telnet 入口封死,现在看,猜核心原因就是因为被报了漏洞——2025 年 6 月收录的 CNVD-2025-13489

漏洞描述写得挺吓人:NX54 存在远程命令执行漏洞,而且评级是 “无需口令 / 未授权”。但因为没有公布具体方式,也没办法验证。我不明白这个漏洞怎么产生的,我自己还是R012,尝试从开telnet请求到mwcli,除非之前登录过,一直没绕过鉴权,可能还是没找到对点,或者需要恢复出厂设置。漏洞是个高危,一但入库,厂家必须修改。但从固件的行为来看,怎么改,堵上telnet就行了。。


总结

  1. 客服一律不提供telnet密码,之前刚封死 telnet 的时候,我也跟着朋友骂厂家。现在看来,多少有点错怪他们。
  2. CNVD-2025-13489在我眼里,感觉更像是一个KPI漏洞,但因为它是个高危评级,厂家只能修复,所以才有了堵死telnet的操作。
  3. 既然厂家做了这套规则,尊重规则。口令的具体算法,为了避嫌,不能在这里公开,但如果有朋友特别需要telnet,可以找我协助,一机一密只能自用。
  4. 也希望厂家高抬贵手,好用的路由器不好碰,别再加堵了,给点DIY活路。