诺基亚贝尔 G-1425-MA 移动 GPON 光猫 get shell
以前的光猫直接拆机接 TTL 串口里面直接就是 /bin/sh ,新版光猫改成了一个受限的 shell,不知道密码几乎无法进行任何操作。
通过 TTL 串口获得 shell
拆开机器,找到并连接 TTL 串口。
设备在开机后,串口有 CFE 和 Linux 内核的输出。CFE 有密码,启动完成后得到一个受限的 shell (vtysh),只能运行 ifconfig, ip, route, ping, nslookup, ps, top
这几个命令。
输入 enable
不需要密码,里面的 user
指令不允许添加用户,shell
指令需要密码,并且连续输错 3 次会锁定登录 300s。这样就只能从允许使用的这几个命令里面下手。
输入 ip
回车之后,发现 ip 命令支持 netns,输入以下指令,就可以得到 shell 了。
1 | ip netns add 8964 |
由于 shell 使用了一个空的网络命名空间,因此无法用这个 shell 进行网络配置。但我们可以使用这个 shell 来进行其他所有操作并从中获取密码。
密码获取
输入 cfgcli -a
提取设置,寻找形如<Password ml="64" rw="RW" t="string" v="LZ8gkScDdQUp2k+it/ADtw==" ealgo="ab"></Password>
的项,v=
里面就是加密后的密码。使用 nokia-router-cfg-tool.py 进行解密得到明文密码。
由此可以得到密码如下:
串口 shell 密码 LA(ImvZx%8
Web CMCCAdmin 默认密码 aDm8H%MdA
CFE 用户名 telecomadmin 密码 nE7jA%5m (该密码无法从设置里面获取)
得到密码后,就可以在串口的 vtysh 里面依次输入
1 | enable |
得到一个可以正常进行网络配置的 shell。
附:得到密码之后可以进行的操作
设置优化
1 | # 设置 RMS 注册成功 |
开机启动脚本
光猫的 init 会在最后调用 /config/postapp.sh 脚本,可以创建这个文件并写入自定义的开机启动项。
开启 SSH
1 | cfgcli -s InternetGatewayDevice.DeviceInfo.X_CT-COM_ServiceManage.SSHEnable true |
在 /etc/passwd 里面添加名为 user,UID 为 0 的账户,并用 passwd user 设置密码
1 | user:x:0:0:Linux User,,,:/home/root:/bin/sh |
删除 iptables 里面 22 端口的 REJECT 项(放入开机启动脚本),然后就可以使用 user 账户进行 ssh 连接。
一些调试用 Web 页面
下列页面需要使用超级用户登录才能使用,user 用户访问会跳回登录页面
开启 Telnet
http://192.168.1.1/system.cgi?telnet
Dump 设置
http://192.168.1.1/dumpdatamodel.cgi
修改省份
http://192.168.1.1/opid_setting.cgi?set