|
|
最近换了一个四口全千兆的光猫ZXHN F657GV9(大家都用xGPON了,那么GPON的线路就是我独享了^^),管理页面显示硬件版本号V9.0,软件版本号V9.2.0P1T1,区域:023。
这个光猫只有千兆网口,电话口USB口都省了,交流待机啥都不插耗电2.3瓦特,插光纤功率基本不变,每增加一个千兆增加0.4W,比较省电,免了一个千兆交换机。用了一段时间感觉还可以,就是超级密码被联通改了,也没法按照大家说的USB备份配置来获取超级密码,电驴bt啥的都是内网。
于是就想办法1、重置后可用cqunicom的管理员密码登录,设置upnp,然而好像没用,应该是IGP协议被精简了;
2、固化telnet,然而这个版本怎么都固化不了,应该也是被精简了
3、提升user权限后无法登录,联通版本的只能用user或者管理员两个账号登录,开telnet也不是用的管理员账号
4、删除TR069手动配置光猫,担心会出什么问题
5、购买超密,这好像不是论坛的风格
6、直接读取spi nand,个人没有热风枪,直接焊线也没找到合适的线
7、通过ttl进控制台,但是发现显示Starting kernel ...后就没有内容了也无法输入
8、通过ttl进入u-boot读取出usercfg分区
9、重置后新建一个拨号链接,把端口映射或者DMZ设置好再删除链接,未验证
重点说一下通过ttl读取出usercfg分区获取超级密码的过程:
1、焊接ttl线,通过USB-TTL连接电脑,我用的山寨PL2303,win7系统下基本正常。注意不要接到预留的USB信号上。
2、打开ttl终端,我用的putty,设定com号,波特率115200,滚动scroll设定足够大比如1000000行以免前面的输出被覆盖。上电后出现
“Hit 1 to upgrade software version
Hit any key to stop autoboot: 0”
的时候会有1秒的时间按任意键进入U-boot。如果显示不正常检查接线及设置
3、这个型号u-boot命令有限,没有tftpput,tftp只能读到内存不能输出,只能通过md读取内存显示到终端
nand read 0x42000000 0x800000 0x800000 读取usercfg分区起始位置0x800000大小0x800000到内存0x42000000位置
mw.b 0x43000000 ff 0x800000 按字节写入0x800000大小的FF数据到内存0x43000000位置,和下面的命令结合用于比较usercfg分区的内容具体从哪开始
cmp.b 0x42X00000 0x43000000 0x100000 大写X表示0-7的数字,按字节分成1MB的大小来比较jffs2分区的具体位置,如完全相同表示空白不用读取节约时间
md.b 0x42YZ0000 0x100000 YZ等于上面的开始不一致的位置,按照1MB大小显示二进制到终端字符
4、复制终端比如putty显示的内容到新建的文本文件.txt。putty在菜单中选择复制所有内容,粘贴到新建的txt文件
格式类似如下,
42040000: 85 19 02 e0 8e 0b 00 00 9e 1a 52 8d 41 00 00 00 ..........R.A...
42040010: bc 05 00 00 80 81 00 00 00 00 00 00 4a 6b 00 00 ............Jk..
42040020: 15 01 00 00 15 01 00 00 15 01 00 00 00 60 00 00 .............`..
前面不相关的内容删除。然后保存文件。
5、使用https://gitee.com/YJHmath/hex2bin-py程序或者写个脚本把上面的txt文件转换成bin
如果提示错误请检查txt文件内容格式或者第3步md.b显示过程中出错需要重新显示到终端保存
6、使用binwalk解压上面的bin文件,注意加上-e参数。实际usercfg分区中的文件不到100k,大部分情况只要读取8MB其中有数据的1MB即可找到需要的文件
7、在解开的文件夹jffs2-root目录的cfg目录中找到db_user_cfg.xml,用routepassview打开就可以看到内容。查找“DevAuthInfo”快速定位。cqadmin密码改成了Cq后面8个数字。
一些注意点:
接收ttl传输的ASCII字符的时候一行约80个字符,传输16个字节,每秒约传输115200/8*16/80=2.88KBps,1MB需要6分多种,如果使用md.b 0x42000000 0x800000直接读取8MB需要快1小时了,中间很容易出现错误。国产PL2303在win10下很容易蓝屏,需要win7或者linux。可以多试几次或者用更小的分段然后合并txt文件或者bin文件。实际发现jffs2文件系统读取有内容的一部分即可解压出文件,没有内容的那些部分不需要读出。
重置光猫的时候应该把光纤拔掉,我发现没拔光纤没注册的情况下有概率通过TR069修改管理员密码
重置后开telnet用的用户名密码是"factorymode", "nE%jA@5b",不是cqadmin,不一致。光猫注册后开telnet用cqadmin+读取的超密,这时候和登录管理页面一致了
这个版本的光猫没法固定telnet,输入其他光猫的11条指令以及sendcmd 1 DB set TelnetCfg 0 TS_Enable 1,sendcmd 1 DB set PortControl 3 PortEnable 1都没有用。查看/etc/init.d/rc.S等下面没有telnetd的配置是不是精简了,有没有大佬解释一下
一些TTL输出,
U-Boot 2013.04 (Sep 11 2021 - 00:00:57)
CPU : ZX279127S@A9,1000MHZ
Board: ZXIC zx279127sevb
127s product_vid = 158
DRAM: 256 MiB
cpuid=27912710
Manu ID: 0x2c, Chip ID: 0x24 (Micron SPI NAND MT29F2G01ABAGDWB 256MiB 3,3V)
通过mtddump发现这个光猫没有开SPI nand的ECC?
分区表
/ # cat /proc/mtd
dev: size erasesize name
mtd0: 10000000 00020000 "whole flash"
mtd1: 00200000 00020000 "u-boot"
mtd2: 00200000 00020000 "others"
mtd3: 00200000 00020000 "parameter tags"
mtd4: 00200000 00020000 "wlan"
mtd5: 00800000 00020000 "usercfg"
mtd6: 00200000 00020000 "middleware"
mtd7: 03000000 00020000 "kernel1"
mtd8: 03000000 00020000 "kernel2"
mtd9: 01000000 00020000 "framework1"
mtd10: 01000000 00020000 "framework2"
mtd11: 01800000 00020000 "preplugin_data"
mtd12: 05600000 00020000 "plugin_data"
mtd13: 02fe0000 00020000 "rootfs"
|
|