烽火HG5140A光猫获取管理员权限及TR069组内网

  实在受不了华数的宽带了,单连接限速1mbps的限制始终没有好办法绕过,搭建隧道连回学校实验室的体验太差了,遂办了电信的129融合套餐,给了300mbps/30mbps的带宽,最重要的是有了两条电信宽带,终于可以尝试利用TR069组内网。

  所谓TR069是光纤入户后的一个用于承载语音+管理的VLAN,而整个杭州甚至浙江地区的所有电信宽带用户这个VLAN内理应都是互通的,且可以达到一个极高的带宽。杭州地区光纤进来后有3个VLAN,VLAN-41用于PPPoE拨号上网,VLAN-43用于IPTV,VLAN-46则是这个管理VLAN。

获取管理员权限

  要利用TR069首先需要获得光猫的管理员权限,才能把TR069网段桥接出来后利用WireGuard搭建隧道,送的光猫配置还比较高,是烽火的HG5140A,AcWiFi有拆过,详细配置和拆机可以见这个帖子,经过简单的搜索顺利找到提取密码的办法。当然也走过弯路,看到拆机十分简单,以为拆机利用TTL线是最简单暴力的方法,万万没想到这个机器的u-boot还设置了密码,据说是hsan下次有机会试试。要获取管理员权限,需要两步:①通过某种方式登录系统,这里提供了TTL线/Telnet两种方法,②通过系统的漏洞或者预留的接口获取管理员密码。

TTL线法

  这里需要一根硬件TTL串口线,拆机两个螺丝很轻松,也没有保修贴之类的东西,正常开机启动在内核载入串口驱动后,TTL就不会输出了,进入u-boot还需要密码,研究了一下。

  1. 波特率115200,不行核对TX/RX是否接反或者换别的波特率
  2. 重启,按回车中断引导
  3. 输入密码hsan
  4. printenv命令,应该能看到console=off
  5. setenv console on
  6. saveenv
  7. menu然后选择reboot重启
  8. 用户名ctuser,密码ctuser登录

Telnet法

  1. 打开http://192.168.1.1:8080/cgi-bin/luci,利用机器背后的密码登录普通用户账号
  2. 开启telnet:http://192.168.1.1:8080/cgi-bin/telnetenable.cgi?telnetenable=1&key=AABBCCDDEEFF,这里要把AABBCCDDEEFF替换成机器背后的MAC地址,成功应该会提示"telnet开启"
  3. telnet登录光猫:用户名telecom,通用密码nE7jA%5m,不对的话试试用户名telnetadmin、密码FH-nE7jA%5mFH-nE7jA%5mDDEEFF,这里要把DDEEFF替换成机器背后的MAC地址后6位,这组用户名密码是通过这两个命令拿到的:cfg_cmd get InternetGatewayDevice.DeviceInfo.X_CT-COM_ServiceManage.TelnetUserNamecfg_cmd get InternetGatewayDevice.DeviceInfo.X_CT-COM_ServiceManage.TelnetPassword,当然这不是重点

获取管理员密码

  • 方法A:执行两个命令:load_cli factoryshow admin_pwd
  • 方法B:直接cat /var/InternetGatewayDevice/DeviceInfo/X_CT-COM_TeleComAccount/value.conf
  • 再放个root密码备用:Fh@DDEEFF,这里要把DDEEFF替换成机器背后的MAC地址后6位

网上买的光猫换省份

1
2
3
4
# 查看可用的省份
ls /fhrom/preconfimg/
load_cli factory
load preconfig Zhejiang

桥接TR069网段

  1. 利用管理员账号telecomadmin和上一步获取到的密码,登录http://192.168.1.1:8080/html/login.html
  2. 网络->宽带设置记录下TR069的VLAN和802.1P优先级
  3. 新增一个WAN连接,VLAN和802.1P用上一步记录下的,其他可以参考:
    • 封装类型:PPPoE
    • 连接模式:桥接
    • 业务类型:其它
    • LAN端口绑定,选一个没有使用的端口
  4. 如果你的路由器端口紧张,也可以尝试使用VLAN绑定功能,把上网和TR069用VLAN分开,然后用一根网线连到路由器,我在另一款旧的光猫上实验有bug,路由器的TR069会获取到光猫分配到IP地址,因此这个方法是否可行还有待证实
  5. 路由器上对应的端口配置成DHCP客户端,另外把网关权重设高一点,这样默认路由还是会从PPPoE走,杭州地区应该能获取到15.x.y.z开头的IP
  6. 两边TR069获取到的可能不是同个网段,我一边是15.75.0.0/19的网段,另一边是15.77.32.0/19的网段,因此还要手动做一下路由,每次光猫断电这个IP都会变,因此你可以把整个15.0.0.0/8的网段都从TR069接口走,但是考虑到15.0.0.0/8的网段在公网上是实际存在的,因此还是尽量缩小网段比较好,甚至直接做主机路由,只要不断电维护起来工作量应该没那么大

搭建WireGuard隧道

  其实没啥好说的了,OpenWrt 22.03.2已经带了非常强大的界面了,MTU可以设置成1400,这样速度会比默认的1320快1mbps左右,再高也没有试过了。目前遗憾的是,旧光猫用的是3.0网关,只有一个千兆口,且VLAN绑定功能有bug(试过几个3.0都这样),因此目前TR069只能跑百兆口,好处是可以完全跑满,重要的是非常稳定,下次有机会咸鱼找一个新光猫换上试试最快能跑多少。实测TR069杭州内部可以跑满千兆,但是不稳定,但已经比公网30M带宽强太多。

中兴F612光猫

  1. telnet 192.168.1.1,用户名root,密码Zte521
  2. 获取密码数据库:sendcmd 1 DB p UserInfosendcmd 1 DB p DevAuthInfo
  3. 备用:
  • 列出所有数据库:sendcmd 1 DB all

中兴ZXHN F7010C光猫

  1. 拔掉光纤
  2. 捅Reset按钮,直到自动重启,会自动进入工厂模式,密码会被重置为nE7jA%5m,杭州地区实测不会丢失配置,其他地区可以注意保存,宽带识别码
  3. 使用这个zteOnu工具,一键永久开启Telnet,./zteOnu -telnet
  4. 断电,插上光纤,重启
  5. 网络应恢复正常,同时可以telnet进入光猫,使用Telnet默认用户名密码信息(user: root, pass: Zte521)登录
  6. 不要再尝试解密配置文件了,中兴修改了加密协议,目前全网找不到解密方案
  7. 换个思路,直接修改管理员密码:sidbg 1 DB set DevAuthInfo 0 Pass 123456

参考文献