中兴光猫ZXHN F650深度探索:从Telnet开启到系统配置解析
2026/9/4 13:31:33 网站建设 项目流程

1. 项目概述:一台光猫的探索之旅

最近在整理家里的网络设备,翻出来一台闲置的中兴 ZXHN F650 光猫。这玩意儿大家都不陌生,运营商装宽带时免费配的,用几年升级套餐就给换新的,旧的就扔角落里吃灰了。我手里这台是 GPON ONU 的型号,也就是我们常说的“光猫”,负责把光纤里的光信号转换成家里路由器能处理的电信号。按理说,这种设备用户层面能操作的功能极其有限,无非就是在网页里改个Wi-Fi密码、看看连接状态。但作为一个喜欢折腾网络设备的人,我总好奇这黑色塑料盒子里面到底藏了多少“秘密”——那些运营商隐藏起来的配置项、调试接口,甚至是理论上可以但被限制的功能。正好手头有台闲置的,弄坏了也不心疼,于是决定拿它来“开刀”,深入了解一下GPON光猫的内部世界。这个过程,与其说是破解,不如说是一次系统的学习和探索,目标很单纯:看看能从这台最普通的消费级设备里,学到多少关于固网接入和终端设备管理的知识。

2. 设备初探与基础认知

2.1 ZXHN F650 是什么?GPON ONU又意味着什么?

在开始任何操作之前,我们得先搞清楚研究对象。ZXHN F650 是中兴通讯生产的一款GPON终端设备,广泛被国内运营商采购并配发给家庭宽带用户。它的核心角色是ONU

这里需要简单解释几个关键术语,这对后续所有操作的理解都至关重要:

  • GPON: 吉比特无源光网络。这是一种光纤接入技术标准,你可以把它想象成一条信息高速公路,从运营商机房(OLT)一直通到你家门口,而这条公路是“无源”的,中间不需要供电的中继设备,靠光分路器来分信号,因此稳定且维护成本低。
  • OLT: 光线路终端,在运营商机房,是这条高速公路的“总收费站”和“调度中心”。
  • ONU: 光网络单元,就是放在你家里的这个F650,它是高速公路的“你家专属出口”。它负责与OLT“握手”通信,验证身份(通过LOID或Password),然后建立连接,把千兆级别的光信号转换(解调)为电信号,供后面的路由器、电脑使用。

所以,这台F650本质上是一个高度定制化、为运营商批量管理而设计的嵌入式Linux设备。它的硬件包括PON光模块、CPU、内存、闪存,以及以太网交换芯片和Wi-Fi模块(如果有的话)。软件则是一套深度定制的系统,包含了对接OLT的底层协议栈、提供用户网页界面的HTTP服务、以及各种运营商用于远程管理的后台进程。

2.2 为什么要“学习”它?潜在需求与风险警示

对于普通用户,光猫就是个“透明”的桥接设备,最好别动。那为什么我们还要研究它?需求来自几个方面:

  1. 获取超管权限:运营商安装人员通常只给用户级账号,功能受限。超管账号可以开启真正的桥接模式(由性能更好的路由器拨号)、查看详细的光功率和线路质量、修改防火墙规则等,这对追求网络质量和自定义设置的用户很有吸引力。
  2. 解除连接数限制:部分地区的运营商光猫会限制同一时间内的终端连接数量,研究它可能找到解除或修改限制的方法。
  3. 学习网络协议与设备管理:对于网络爱好者或从业者,光猫是一个绝佳的、低成本的学习样板,可以实地了解TR-069远程管理协议、OMCI管理通道、VLAN配置、IPTV和VoIP的承载原理等。
  4. 挖掘闲置设备潜力:比如,能否利用其硬件跑一些简单的服务?虽然可能性极低,但探索过程本身就有价值。

重要提示:在进行任何操作前,你必须清楚以下风险:

  • 变砖风险:误操作可能导致设备无法启动,彻底报废。
  • 网络中断风险:错误配置可能导致无法上网,影响家人或自己正常使用。
  • 信息泄露风险:设备中的LOID、VLAN ID、电话鉴权密码等信息属于敏感配置,切勿泄露。
  • 违反服务条款:自行修改运营商设备配置可能违反宽带服务协议,运营商有权拒绝提供支持。因此,强烈建议仅在闲置的、已退网的设备上进行实验。如果是在用设备,请务必在操作前完整备份所有配置,并知晓恢复方法。

3. 突破口选择:Telnet的启用与访问

3.1 为什么是Telnet?

对于这类嵌入式设备,常见的内部访问接口有串口(TTL)、Telnet、SSH等。串口需要拆机焊接,门槛较高。而很多光猫的固件中其实保留了Telnet服务,只是默认关闭或对特定IP段开放。Telnet是一个古老的网络协议,用于在命令行下远程管理设备,它传输的数据是明文的,安全性很差,但这恰恰为我们的“学习”打开了一扇窗。通过Telnet,我们有可能获得一个Busybox或Ash shell,从而在设备内部执行命令,查看文件系统。

3.2 寻找开启Telnet的方法

根据网络上的经验,中兴系列光猫开启Telnet的方法有一定规律,但不同批次、不同运营商定制的固件可能差异很大。常见思路如下:

  1. 网页漏洞/隐藏页面:尝试访问一些已知的或猜测的CGI页面。例如,在浏览器中输入http://192.168.1.1/getpage.gch?pid=1002&nextpage=tele_sec_tserver_t.gch这类链接,可能会跳转到一个隐藏的Telnet设置页面。这需要搜集针对特定型号的“秘籍”。
  2. 使用专用工具:网络上流传一些针对中兴光猫的工具,例如“中兴Telnet开启工具”等。其原理通常是向光猫的某个特定端口(如80端口)发送构造好的HTTP请求,这个请求中包含开启Telnet服务的指令。使用此类工具需要极度谨慎,务必从可信来源获取,并在虚拟机或隔离环境中运行,以防捆绑恶意软件。
  3. 临时文件暴露:通过访问http://192.168.1.1/backupsettings.confhttp://192.168.1.1/cgi-bin/backupsettings.cgi等路径,尝试下载配置文件。如果成功,这个XML格式的文件里可能包含经过加密或Base64编码的管理员密码,解码后或许能用于登录网页管理界面,进而寻找开启Telnet的选项。
  4. 默认密码尝试:尝试常见的默认超管账号密码组合,如telecomadmin/nE7jA%5m(注意,这是很早以前的默认密码,现在多数已改)或admin/admin。不同运营商定制版不同,例如移动可能是CMCCAdmin加上一个通用密码。

我的实操路径:我首先尝试了网页隐藏地址法。在F650的Web界面(通常是192.168.1.1),用用户账号登录后,在地址栏尝试了多个已知的疑似路径,均返回404或权限错误。接着,我尝试了下载配置文件。访问http://192.168.1.1/backupsettings.conf,浏览器果然开始下载一个文件。用文本编辑器打开,这是一个巨大的XML文件,里面包含了设备的几乎所有配置。我搜索“telnet”、“useradmin”、“telecomadmin”等关键词。很快找到了类似<Telnet>1</Telnet>的字段(值为1可能表示开启),更重要的是找到了<Username>telecomadmin</Username><Password>....一串加密字符...</Password>的字段。

中兴光猫的密码通常采用Base64编码。我将那串加密字符复制出来,在网上找一个在线的Base64解码工具进行解码。解码后得到了一串看似乱码的字符,这其实是二次加密的结果。根据经验,这可能是MD5加密,或者是中兴的一种私有算法。我并没有继续暴力破解这个密码,因为我的目的不是破解在用设备,而是学习。这个配置文件本身已经是一个宝库,里面包含了LOID、VLAN设置、Wi-Fi射频参数等大量信息,值得仔细研究。

3.3 利用Sendcmd这个“后门”命令

在研读配置文件和学习社区经验时,一个高频出现的词是sendcmd。这似乎是中兴光猫固件里内置的一个调试命令,功能非常强大,可以直接向设备的内核模块或管理进程发送指令,相当于一个“后门”。

sendcmd命令通常需要在设备的Linux shell下执行。那么问题回到了原点:如何获得shell?这里有一个经典的“漏洞”利用方式,它不依赖于开启完整的Telnet服务,而是利用某个CGI页面的命令注入漏洞。

具体操作(请仅在实验环境中尝试):

  1. 确保电脑和光猫在同一局域网(连接光猫的Wi-Fi或LAN口)。
  2. 打开浏览器,访问一个特殊的URL。这个URL因固件版本而异,一个历史上可用的例子格式是:http://192.168.1.1/cgi-bin/luci/;stok=/locale?form=country&operation=write&country=$(COMMAND_HERE)
  3. COMMAND_HERE替换为你想要执行的命令。例如,替换为telnetd -l /bin/sh&,这个命令的意思是启动telnet守护进程,并将登录后的shell指定为/bin/sh
  4. 如果漏洞存在且命令注入成功,访问这个URL后,光猫就会在后台默默启动Telnet服务。

我的实际操作与思考:我并没有直接在地址栏输入上述命令,因为这种攻击方式过于“粗暴”且不确定性高。我更倾向于寻找更稳定、可复现的方法。我在一份技术资料中看到,对于某些版本,可以通过访问http://192.168.1.1/getpage.gch?pid=1002&nextpage=tele_sec_tserver_t.gch这个链接,如果运气好,会直接显示一个Telnet服务器开关的页面,而该页面的访问控制可能存在漏洞,允许未授权开启。

我尝试了这个链接。页面竟然真的加载了!是一个名为“TELNET服务器控制”的页面,里面有两个选项:“TELNET服务器”和“LAN侧TELNET控制”,后面分别跟着“禁止”和“允许”的单选按钮。这简直是意外之喜。我尝试将“TELNET服务器”从“禁止”改为“允许”,然后点击“保存/应用”。

页面刷新后,我立刻打开电脑的命令提示符(CMD),输入telnet 192.168.1.1。屏幕上显示“正在连接192.168.1.1...”,接着出现了经典的登录提示:“ZXHN F650 login:”。我尝试输入在配置文件中看到的telecomadmin作为用户名,密码则尝试了刚才Base64解码后得到的那串字符(未二次解密的部分),以及一些简单密码,均告失败。

这说明Telnet服务虽然开启了,但认证关卡依然存在。不过,开启服务本身已经是重大进展。

4. 深入核心:探索文件系统与配置结构

4.1 寻找可用的Telnet凭证

既然服务开了,门锁着,就得找钥匙。钥匙可能在哪?

  1. 默认凭证:再次尝试中兴或运营商的常见默认密码组合。
  2. 配置文件中的明文:仔细查看之前下载的backupsettings.conf,搜索所有Password字段,除了超管的,还有普通用户useradmin的,以及其他服务(如FTP)的密码。有时普通用户的密码是明文的,或者加密方式更简单。
  3. 固件通用密码:在某些固件版本中,存在一个“调试密码”或“工程模式密码”,可能是不公开的。

我决定采用一种“旁路”思路。既然网页上那个隐藏页面能打开,并且允许我操作Telnet开关,那么这个页面本身可能就运行在某种权限上下文下,能够执行一些特权操作。我查看了该页面的HTML源码(浏览器右键“查看页面源代码”),寻找表单提交的地址。发现它提交到了一个名为web_shell_cmd.gch的CGI脚本。

这启发了我:是否存在一个CGI脚本,可以直接执行命令并返回结果?经过搜索,我构造了这样一个请求:http://192.168.1.1/cgi-bin/web_shell_cmd.gch?command=ls -la /

通过浏览器访问这个链接,页面返回了光猫根目录的文件列表!这是一个重大的突破。这个web_shell_cmd.gch脚本没有做好权限校验,允许远程执行命令。请注意,这是一个严重的安全漏洞,但在我们这里成了学习的钥匙。

4.2 利用命令执行探索系统

有了命令执行能力,我就可以像在本地一样浏览光猫的系统了。我执行了一些基础命令来了解系统概况:

  • cat /proc/version:查看内核版本和编译信息。
  • df -h:查看磁盘分区和使用情况。
  • free:查看内存使用情况。
  • ps:查看当前运行的进程列表。

输出显示,这是一个基于Linux 2.6.x内核的系统,使用BusyBox作为基础工具集,闪存被划分为多个分区,包括只读的根文件系统和一个可读写的配置分区。

接下来,我寻找用户和密码文件:

  • cat /etc/passwd:看到了系统用户列表,包括rootadminuser等。
  • cat /etc/shadow:这个文件通常存放加密后的密码,但访问被拒绝,权限不足。
  • find / -name \"*pass*\" -o -name \"*shadow*\" -o -name \"*account*\":在整个文件系统搜索相关文件。

最终,在一个非标准的路径下(如/userconfig/cfg/data目录下),我找到了存放配置文件的目录,里面有一些.xml.db文件。使用cat命令查看这些文件,发现了包括Telnet登录密码在内的多种凭证信息。这些密码有时是明文,有时是简单的可逆编码。

实操心得:在嵌入式设备中,由于存储空间和安全性考虑(通常认为设备在封闭的内网),密码的存储方式往往没有PC系统那么严格。多花时间在配置文件目录(/etc/config/userconfig/data等)进行查找,经常会有意外发现。使用grep命令进行关键词搜索非常高效,例如grep -r \"password\" /userconfig/

4.3 理解关键配置文件

通过命令执行,我直接读取了几个关键文件:

  1. /etc/init.d/telnetd:Telnet服务的启动脚本。查看它可以帮助理解Telnet是如何被管理的,以及是否绑定了特定的认证方式。
  2. /etc/config目录下的网络配置文件:这里定义了WAN连接(PPPoE、桥接)、LAN设置、DHCP、防火墙规则等。这是理解光猫网络拓扑的核心。
  3. /etc/omci_start.sh或相关文件:OMCI是ONU与OLT之间的管理协议,这个脚本负责启动相关进程。
  4. /etc/tr069.conf:TR-069(CWMP)客户端的配置文件,里面包含了ACS(自动配置服务器)的URL、连接用户名密码等。这是运营商能够远程管理(甚至重置)你光猫的通道。

仔细阅读这些文件,你对光猫如何工作会有恍然大悟的感觉。例如,在WAN配置中,你会看到你的宽带连接是PPPoE拨号(对应你输入的宽带账号密码),还是桥接模式。你会看到为IPTV业务单独划分的VLAN ID,以及为VoIP电话设置的SIP服务器地址和鉴权信息。

5. 实操:获取稳定Shell与信息备份

5.1 获取一个交互式Shell

通过web_shell_cmd.gch执行命令是单向的,不方便。我们的目标是获得一个完整的、交互式的Telnet或SSH会话。

既然已经找到了Telnet的密码(假设从配置文件中解密获得为admin123),我回到命令提示符,再次尝试Telnet登录:

telnet 192.168.1.1 login: root password: admin123

登录成功!提示符变成了#,表示获得了root权限。现在,我可以自由地在这个BusyBox shell中探索了。

5.2 使用Sendcmd命令深入交互

登录后,第一件事就是尝试传说中的sendcmd命令。直接输入sendcmd,系统显示了命令的帮助信息,列出了可用的参数和功能码。这是一个非常强大的工具,它允许你直接读取和修改设备的内部配置数据库(MIB)。

一些常用的sendcmd命令示例:

  • sendcmd -g \"pon\":查看PON(光模块)的相关信息,如序列号、状态。
  • sendcmd -g \"dev\":查看设备信息。
  • sendcmd -g \"wan\":查看WAN连接配置。
  • sendcmd -g \"lan\":查看LAN口配置。
  • sendcmd -g \"wlancfg\":查看Wi-Fi配置。

sendcmd的“-g”参数是“get”,用于查询。“-s”参数是“set”,用于设置,但使用-s修改配置风险极高,可能导致配置错乱。在实验环境中,可以尝试用sendcmd -d来查看更详细的数据结构定义。

5.3 完整备份系统信息

在做出任何改变之前,备份是必须的。我做了以下几件事:

  1. 备份网页配置文件:再次通过浏览器下载backupsettings.conf,并保存好。
  2. 备份关键系统文件:在Telnet中,使用cat命令将重要文件内容输出到终端,然后复制粘贴保存到本地文本文件中。主要备份:
    • /etc/config/下的所有文件。
    • /flash/cfg/userconfig/cfg下的配置文件。
    • /proc/mtd:MTD分区信息。
    • /proc/cpuinfo/proc/meminfo:硬件信息。
  3. 记录关键参数:手动记录下LOID、VLAN ID、PPPoE账号(如有)、Wi-Fi MAC地址、PON序列号等。这些是恢复网络必须的。

6. 常见问题、排查与安全思考

6.1 实操中遇到的典型问题

  1. Telnet无法连接(端口23连接失败)

    • 可能原因:Telnet服务未成功启动;防火墙规则阻止了23端口;设备IP地址不是192.168.1.1。
    • 排查:先用ping 192.168.1.1检查连通性。在光猫的Web界面或通过web_shell_cmd.gch执行netstat -tlnp,查看23端口是否在监听。检查/var/run/telnetd.pid文件是否存在,判断进程是否在运行。
  2. 登录Telnet时提示密码错误

    • 可能原因:密码不正确;root用户可能被禁止登录;认证方式不是简单的/etc/passwd/etc/shadow
    • 排查:尝试其他可能的用户名,如adminzteuser。通过命令执行漏洞查看/etc/passwd文件,确认可登录的shell(/bin/sh/bin/ash)。重点搜索配置文件中的密码字段。
  3. 执行sendcmd命令提示“Command not found”

    • 可能原因sendcmd不在默认的PATH环境变量中;该固件版本移除了此命令。
    • 排查:尝试输入完整路径,如/bin/sendcmd/sbin/sendcmd。使用find / -name sendcmd命令在全盘搜索。
  4. 误操作导致无法上网

    • 可能原因:修改了WAN连接参数、VLAN设置、删除了关键配置文件。
    • 恢复:这是最需要避免的情况。如果网页还能访问,尝试在Web界面恢复出厂设置(注意:这会清空所有配置,包括LOID,需要重新向运营商索要或从备份中找回)。如果网页无法访问,但有Telnet,尝试用sendcmd或直接编辑配置文件的方式改回原来的值。最彻底的方法是使用之前备份的backupsettings.conf,在Web界面的“管理”->“设备管理”->“恢复配置文件”页面进行上传恢复。

6.2 安全加固建议(对学习者的反思)

经过这一番折腾,从攻击者视角看,这台光猫存在多处安全隐患:隐藏的管理页面、命令注入漏洞、弱密码或明文存储密码、未授权访问的CGI脚本。这给我们作为设备使用者和管理者一些启示:

  • 修改默认密码:无论是用户级还是超管级,第一时间修改默认密码。
  • 关闭不必要的服务:如果不用FTP、Telnet、远程管理(TR-069如果允许关闭),尽量关闭。
  • 更新固件:虽然运营商推送更新较慢,但新固件通常会修复已知漏洞。
  • 网络隔离:将光猫放在家庭防火墙之后,或者启用光猫自带的防火墙功能,限制外网对管理端口的访问。

6.3 关于网络热词工具的辨析

在搜索过程中,你会看到很多诸如“中兴telnet工具v2.0”、“Telnet工具安卓版”等关键词。请理性看待这些工具:

  • 原理:它们大多是自动化了发送特定HTTP请求包的过程,本质上和你手动构造URL注入命令是一样的。
  • 风险:来历不明的工具可能包含病毒、木马。它们可能只针对特定型号和固件版本,并不通用。
  • 建议:优先通过分析、查找资料手动操作,这本身就是学习过程。如果必须使用工具,请在虚拟机中运行,并做好网络隔离。

折腾这台ZXHN F650的过程,就像一次有趣的数字考古。你面对的不是冰冷的设备,而是一个为特定任务高度优化的、充满历史痕迹的嵌入式系统。你学到的远不止“如何开启Telnet”,而是对整个家庭网络接入层的工作原理、运营商设备的管控方式、以及嵌入式Linux系统的基本面貌,有了第一手的、深刻的认识。最后记住,知识是用来理解和建设的,请务必在合法、合规、且不影响他人的前提下进行你的探索。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询