太长不看:默认PPPoE密码是手机号的后6位
一、背景
坐标广东,光猫型号是兆能ZN-M180G,其他型号可能有所不同。移动师傅上门安装时不在家,当时已经提前说要改桥接的,回到家才发现没改,那我就自己改吧。根据网上教程获取PPPoE只要把 input
的 text
从password改成text就可以显示明文密码了,不过这型号改了依旧是写死的*,只知道账号不行啊,就有了以下折腾过程(问就是生命在于折腾)~
二、开启Telnet
- 使用默认普通账户登录。
- 开启Telnet,保存
- Telnet账号为
CMCCAdmin
默认密码为aDm8H%MdA
三、拷贝配置文件
- 使用Telnet账号密码登录光猫Telnet
- 输入
su
切换到超级用户,密码依旧为aDm8H%MdA
输入命令复制
db_user_cfg.xml
文件cp /userconfig/cfg/db_user_cfg.xml /mnt/ cd /mnt/ chmod 777 db_user_cfg.xml
- 开启光猫自带FTP功能,匿名访问
- 下载
db_user_cfg.xml
文件到本地
四、解密配置文件
- 因为
db_user_cfg.xml
文件是加密的,不能通过编辑器正常打开 - 参考链接3里面写的是中兴方案,不过我看文件名都是一样的,所以打算试一试
将代码保存为
py
执行文件''' pip install pycrypto ''' 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_user_cfg.xml", "rb") dec_file = open("db_user_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
- 接下来的步骤我默认是已安装好Python3环境,具体安装请自行搜索
- 输入
pip install pycrypto
安装依赖包 - 把创建的
py
文件和db_user_cfg.xml
文件放在同一个目录中 - 输入
python3 文件名称.py
执行解密 - 解密完成后会生成
db_user_cfg.decode.xml
文件,该文件就是解密后的文件 - 搜索自己的PPPoE账号,下一行就是你的PPPoE密码了,然后开始进行改桥接吧,到此结束