Blog Home
Updated: 2023 Oct 09

获取移动光猫超级密码

移动光猫通用用户及密码

CMCCAdmin
aDm8H%MdA

破解步骤

  1. 查看光猫背面用户名密码,登录到后台web管理页面。
  2. 开启telnet。在重启开关/恢复默认设置那个页面,F12打开审查元素,搜索TRTelnet,删除掉display: none,即可看到页面显示,勾选启用Telnet即可。
  3. 打开terminal工具,输入telnet 192.168.1.1回车,输入密码为上面通用账号密码。
  4. 进去系统之后,切换到root用户,查找dbbackupcfg.xml文件
~ $ su
Password:
/ # find / -name 'db_backup_cfg.xml'
/userconfig/cfg/db_backup_cfg.xml
  1. 在光猫上启动一个tftp服务。
udpsvd -vE 0 69 tftpd -c /
  1. 在terminal上下载文件。
➜ tftp -e connect 192.168.1.1 69
usage: tftp [-e] host-name [port]
tftp> connect 192.168.1.1 69
tftp> get /userconfig/cfg/db_backup_cfg.xml
Received 503436 bytes in 0.3 seconds
tftp>
  1. 接受完毕后,将如下脚本保存到和dbbackupcfg.xml目录相同的decode.py文件里
from Crypto.Cipher import AES
from binascii import a2b_hex
KEY = b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'
def decrypt(text):
    cryptor = AES.new(KEY, AES.MODE_ECB)
    plain_text = cryptor.decrypt(a2b_hex(text))
    return plain_text
cfg_file = open("db_backup_cfg.xml", "rb")
dec_file = open("db_backup_cfg.decode.xml", "w")
file_header = cfg_file.read(60)
while 1:
    trunk_info = cfg_file.read(12)
    trunk_data = cfg_file.read(65536)
    trunk_real_size = int.from_bytes(trunk_info[0:4], byteorder='big', signed=False)
    trunk_size = int.from_bytes(trunk_info[4:8], byteorder='big', signed=False)
    next_trunk = int.from_bytes(trunk_info[8:12], byteorder='big', signed=False)
    print(trunk_real_size, trunk_size, next_trunk)
    dec_file.write(decrypt(trunk_data.hex()).decode(encoding="utf-8"))
    if next_trunk==0:
        break
  1. 解密
➜ python decode.py

若模块没有安装,可以尝试如下安装

pip install binascii
pip install pycrypto

以上除光猫内操作之外,所有操作均为在macOS环境下操作。

参考链接:

Comments:

Email questions, comments, and corrections to hi@smartisan.dev.

Submissions may appear publicly on this website, unless requested otherwise in your email.