先把U盘插到光猫USB接口,然后登录普通账号,账号密码在光猫后面有写,网址:http://192.168.1.1:8080/login.html

登录成功以后按键盘的F12打开开发者工具,然后输入`http://192.168.1.1:8080/usbbackup.cmd?action=backupeble&sessionKey=${sessionKey}`

点击链接打开,不要管我的前后sessionKey不一样

如果 备份配置 按钮点击不了,把鼠标放在 备份配置 上右键检查

然后双击 disabled 点删除键就行(回车上面第二个键),打错字删除那个键,不是delete键

这时候可以点击 备份配置 了,点了以后直接会跳转到一个空白页面,url是这样的:http://192.168.1.1:8080/usbbackup.cmd?action=backup&subarea=usb1_1&set1_sessionKey=set1_sessionKey_214

这时候不要管,直接把U盘拔下来插上电脑,然后u盘里多了一个叫 e8_Config_Backup 的文件夹

此时的ctce8_TEWA-708G.cfg是加密文件,我们看不了,使用xor工具破解一下,命令看截图

xor下载地址:https://github.com/jonirrings/xor

最后用记事本打开生成的xml文件,搜索password就可以看到密码

使用telecomadmin和上面获取到的密码登录就可以看到更多设置,可以自己做拨号,关闭光猫拨号

宽带账号密码:

搜索2_INTERNET_R_VID_41,下面的Username和Password就是宽带密码

密码经过了base64编码,使用在线工具就可以解码,百度:base64解码

下面是Python一键脚本,输出超级管理员密码和宽带账号密码:

复制脚本保存成py文件,下载xor.exe工具和py文件放在一起,修改好账号密码运行脚本

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
import os
from glob import glob
import requests
import re
import base64


class GuanMao:

def __init__(self, api, user, password):
self.Api = api
self.UserName = user
self.PassWord = base64.b64encode(password.encode()).decode()
self.abc()
self.session = requests.session()
self.login()
print('登录成功,正在备份配置文件...')
self.usbbackup()

def abc(self):
try:
file_bak = glob('*.cfg')[0]
print(f'配置文件也存在{file_bak},开始破解')
os.system(f'xor.exe {file_bak}')
except:
pass
with open(file_bak + '.xml', 'rb') as fp:
text = str(fp.read())
exit('超级管理员密码为:' + re.findall('<Password>(.*?)</Password>', text)[0] + ' 如果不对,自己查看' + file_bak + '.xml文件')

def usbbackup(self):
url = self.Api + '/usbbackup.cmd?action=backupeble&sessionKey=' + self.sessionKey
res = self.session.get(url)
usb_name = ''
set1_sessionKey = ''
try:
usb_name = re.findall("usblist = '(.*?)\|';", res.text)[0]
set1_sessionKey = re.findall("(set1_sessionKey_.*?)';", res.text)[0]
except:
exit('请插入U盘后重新运行,如果已经插入,建议换一个U盘')

url = self.Api + f'/usbbackup.cmd?action=backup&subarea={usb_name}&set1_sessionKey=' + set1_sessionKey
res = self.session.get(url)
if res.text.find('Invalid Session Key, please try again') == -1:
print('备份成功!手动拔出U盘把文件复制到' + os.getcwd() + '目录下后重新执行脚本')

def login(self):
res = self.session.get(self.Api + '/login.html')
sessionKey = re.findall("\"sessionKey\" value=\"'\+'(.*?)'\+'", res.text)[0]
data = f'username={self.UserName}&password={self.PassWord}&save=%B5%C7%C2%BC&sessionKey={sessionKey}'
res = self.session.post(self.Api + '/login.cgi', data=data)
try:
self.sessionKey = re.findall("sessionKey='(.*?)';", res.text)[0]
except:
exit('登录失败,账号或密码错误!')


if __name__ == '__main__':
# 如果ip地址不一样,自己改一下
Api = 'http://192.168.1.1:8080'
# 自己改成路由器后面的账号密码
UserName = 'useradmin'
PassWord = 'mrpzm'
gm = GuanMao(Api, UserName, PassWord)