0x00 前言

上海移动的光猫默认打开了IPv6防火墙,所以没办法入站,光猫又有固话,所以没办法重置光猫自己配置,所以就写一篇博客记录一下。
光猫是华为的HS8546X6N-20,软件版本R024,教程应该适用R023、R024所有光猫。

需要准备的工具有:

  • ONT_V100R002C00SPC253.exe 使能工具
  • R23补全Shell固件
  • Telnet客户端
  • HW Dollar 2.exe 配置文件解密工具,用来加解密hw_boardinfo
  • 华为配置加解密工具1.0 配置文件解密工具,用来加解密hw_ctree.xml(需要具有$1解密的那个版本,否则无法解密新版本配置文件)
  • 一个U盘,用来传递配置文件

0x01 使能光猫Telnet

使用网传的R23使能工具,也就是ONT_V100R002C00SPC253.exe使能工具(这里不提供,各大论坛、小黄鱼都有)。

选择“维修使能”,使用使能包3—适用于部分新设备,拔掉光猫光纤,重启光猫启动使能。等待一分钟左右,下方列表会显示光猫信息。继续等待到结束错误码出现,显示0xf720404e,表示使能成功,此时断电重启光猫。(按照其他说法,应该是0x0并且光猫灯停止闪烁,但是我是0xf720404e,而且光猫一直在闪烁)

使能后,光猫会进入维修模式,Web管理会停用,但需要补全Shell才能正常使用。

0x02 补全Shell

!!!注意,这一步会自动执行restorehwmode.sh,所有配置和运营商信息会清空,需要重新配置。为了防止意外,请确保你至少知道怎么配置上网业务。

在使能工具选择“升级”,固件包选择R23补全Shell的bin固件,重启光猫启动升级,这一步结束错误码应该是0x0,光猫所有灯停止闪烁,表示补全Shell成功,此时断电重启光猫。

0x03 修改定制信息,恢复运营商地区信息

电脑配置192.168.100.0/24的地址,通过telnet 192.168.100.1连接到光猫。默认密码是root/admin。使用命令su切换到root用户,shell进入busybox。

配置文件都在/mnt/jffs2/目录下,新版本光猫里去掉了cp、mv、tftp之类的命令,所以不能用之前的办法获得文件了。这里用cat把文件重定向到U盘里。

插上U盘,会自动挂载到/mnt/usbX,运行以下命令,把原始配置文件复制出来,复制后要等一会儿写入完成,否则在电脑上显示不出来文件。

cat /mnt/jffs2/hw_boardinfo > /mnt/usbX/hw_boardinfo

使用HW Dollar 2解密hw_boardinfo,按照自己省份修改如下行,

obj.id = “0x0000001a” ; obj.value =””CMCC”;
obj.id = “0x0000001b” ; obj.value = “SHCMCC_RMS”;
obj.id = “0x00000031” ; obj.value = “CHOOSE_CMCC_RMS”;

把保存后的加密文件放回U盘,插入光猫,运行以下命令,把修改后的文件放回去。

cat /mnt/usbX/hw_boardinfo > /mnt/jffs2/hw_boardinfo
使用EquipMode.sh off关闭维修模式,重启光猫,界面就恢复成运营商的界面了,但IP还是192.168.100.1,打开后可以输入Password下发配置。

0x04 修改配置文件,配置超级用户

关闭维修模式后,Telnet就会自动关闭,此时可以再使用使能工具使能维修模式,也可以用SSH连接光猫,用户名和密码依然是root/admin。进入su、shell后,使用EquipMode.sh on使能维修模式,重启光猫后生效。但是SSH的shell是没有补全命令的,所以只能进入Telnet的shell。

进入Telnet后,使用以下命令,把配置文件复制出来。

cat /mnt/jffs2/hw_ctree.xml > /mnt/usbX/hw_ctree.xml

使用华为配置加解密工具1.0解密hw_ctree.xml,获得一个gz文件,解压后得到最终的hw_ctree.gz,搜索CMCCAdmin,或user,在Password设置自己的明文密码,把PassMode改为0。如果担心CMCCAdmin被远程修改,可以把user的UserLevel改为0,这样user用户也会变成最高权限。保存后,需要重新压缩hw_ctree.xml文件,然后加密压缩文件,获得新的hw_ctree.xml,把压缩后的加密文件放回U盘,插入光猫,运行以下命令,把修改后的文件放回去。确保放回的文件和复制出来的文件差不多大。

cat /mnt/usbX/hw_ctree.xml > /mnt/jffs2/hw_ctree.xml

关闭维修模式EquipMode.sh off,重启光猫,就可以用自己的密码登录了。
同样,各业务的密码都在ctree文件里,可以搜索相关账号获得,密码都是$1、$2之类的密文,可以用HW Dollar2解密。