AI摘要
背景
我家的移动宽带有一个公网IP,我只要把本地创建好的博客网站的80端口
映射上去,就可以全网访问了。
但是我家的路由器和光猫的管理中都没有端口转发或映射设置,于是想到了用超级管理员
角色登录光猫后台。
前言
运营商(如中国移动、电信、联通)提供的光猫或家庭网关,为了网络稳定和管理方便,通常会限制用户的权限。我们通过网页(如 192.168.1.1
)使用设备背面提供的普通账户登录后,会发现缺少端口映射(虚拟服务器)、桥接模式修改等核心功能。
这些功能实际上都存在,但被隐藏在“超级管理员”账户下。获取这个超级账户的权限是开启所有高级功能的前提。本文档旨在系统性地梳理和总结获取此类设备超级管理员密码的常用技术手段,其逻辑顺序由简至繁,由通用到特定。
方法一:尝试通用默认凭据
这是最直接也是第一步应该尝试的方法。不同地区、不同设备批次的超级管理员密码可能遵循一定的规律。
- 基本原理:设备固件中内置了一组或多组高权限的默认用户名和密码。
常见用户名:
telecomadmin
(中国电信)CMCCAdmin
(中国移动)
常见密码:
admintelecom
nE7jA%5m
aDm8H%MdA
操作步骤:
- 登出当前的普通用户账户。
- 尝试使用上述用户名和密码组合进行登录。
结果:如果成功,将直接进入功能完整的管理后台。如果失败,则说明设备使用了独特的或动态的密码,需要进入下一步。
方法二:漏洞利用 - 配置文件下载
部分老旧固件存在安全漏洞,允许用户在未授权的情况下直接下载设备的配置文件,密码信息通常以明文或简单加密的形式存储在其中。
- 基本原理:通过访问一个特定的 URL,触发设备的配置文件备份机制,从而下载到包含敏感信息的
.conf
或.xml
文件。 常见 URL:
http://192.168.1.1/backupsettings.conf http://192.168.1.1/dumpcfg.conf
操作步骤:
- 在浏览器地址栏直接输入上述 URL 并访问。
- 如果浏览器提示下载文件(如
backupsettings.conf
),则表示漏洞存在。 - 使用文本编辑器(如记事本、VS Code)打开下载的文件。
- 在文件中搜索关键词,如
Password
、telecomadmin
、CMCCAdmin
。 - 查找类似
<Password>xxxxxxxx</Password>
的字段,引号或标签内的内容即为密码。
结果:若成功下载并找到密码,则破解完成。若返回 404 Not Found
或无响应,则说明该漏洞已被修复。
方法三:漏洞利用 - 前端审查元素
在某些设备中,即使前端页面没有显示,但后台接口可能已经将超级管理员的密码信息作为隐藏字段的 value
值输出到了 HTML 源码中。
- 基本原理:利用现代浏览器的开发者工具(F12)审查网页的 DOM 结构,寻找被隐藏的、但含有密码信息的表单元素。
操作步骤:
- 使用普通账户登录设备管理后台。
- 在登录后的页面,按
F12
键打开开发者工具。 - 切换到
元素 (Elements)
标签页。 - 按
Ctrl + F
调出搜索框,在代码中搜索关键词password
、telecomadmin
等。 - 重点关注搜索到的
<input>
标签,检查其value
属性是否含有明文密码。
结果:此方法成功率相对较低,现代设备通常不会犯此类错误。如果未找到有效信息,则需转向更底层的攻击方式。
方法四:终极方案 - ADB 后门利用
这是针对许多基于 Linux 内核的嵌入式设备(包括光猫)的最高级、最有效的破解方法。
- 基本原理:许多设备在固件中保留了一个用于工厂调试的后门——ADB(Android Debug Bridge)服务。该服务默认关闭,但可以通过发送一个特定的网络请求来远程开启它。一旦开启,我们就可以通过 ADB 工具连接到设备的 Shell,获得系统底层访问权限,从而直接读取或修改配置文件中的密码。
操作步骤:
获取会话 ID (SessionID)
- 使用普通账户登录后台。
- 打开开发者工具(F12),切换到
网络 (Network)
标签。 - 刷新页面或点击任一菜单,在网络请求列表中找到对后台 CGI 文件(如
content.asp
)的请求。 - 在请求的
载荷 (Payload)
或标头 (Headers)
中找到并精确复制当前的sessionid
值。此 ID 是后续操作的凭证,具有时效性。
发送开启 ADB 的指令
- 切换到开发者工具的
控制台 (Console)
标签。 - 执行一段精心构造的 JavaScript
fetch
命令,向设备发送一个 POST 请求。此请求利用上一步获取的sessionid
模拟合法操作,请求开启 ADB 功能。 示例代码(注意:
body
中的参数,尤其是menu_id
和action_id
,对不同型号设备可能不同,需要情报或逆向分析来确定):fetch("http://192.168.1.1/cgi-bin/content.asp", { method: "POST", headers: { "Content-Type": "application/x-www-form-urlencoded; charset=UTF-8", }, body: "sessionid=【此处替换为你的SessionID】&request_id=1&menu_id=11305&action_id=0&mode=1&a_text=adbenable&a_val=1", });
- 切换到开发者工具的
使用 ADB 工具连接
- 在电脑上准备好
adb
环境(可从 Google 官方下载platform-tools
)。 在电脑的终端或命令行中执行连接命令,端口通常为
5555
:adb connect 192.168.1.1:5555
- 如果返回
connected to 192.168.1.1:5555
,则表示连接成功。若返回“连接被拒绝”,则说明第 2 步的指令无效或未成功执行。
- 在电脑上准备好
读取密码文件
连接成功后,进入设备的 Shell 环境:
adb shell
进入 Shell 后,使用
cat
或grep
命令在常见的配置文件路径中直接查找密码:# 常见路径一 grep Password /userconfig/cfg/db_user_cfg.xml # 常见路径二 cat /tmp/mdlcfg.sysconfig | grep PWD
- 终端将直接输出包含密码的配置行。
结论
如果上述所有方法均告失败,则极有可能表明该设备的固件版本已经修复了所有已知的远程漏洞。在这种情况下,获取超级管理员权限的仅存方法将涉及物理接触,例如拆机后使用 TTL 转 USB 工具连接设备的串口(Serial Port)进行操作,这已超出常规软件破解范畴。或者,最后的手段是直接联系运营商,要求其提供支持。
6 条评论
一般nas用的多会做这方面的映射,博客那还是算了,哈哈
为甚麽,性能不是更好吗
上次我家换光猫,发现电信都用上了动态密码。
不过在三根半夜联系客服,最终给我换上了。
里面有端口转发这种功能吗
我是光猫桥接,路由器拨号。端口转发用的路由器,因为我nas接在路由器上的。
我整不成,只能用frp了