先把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__': Api = 'http://192.168.1.1:8080' UserName = 'useradmin' PassWord = 'mrpzm' gm = GuanMao(Api, UserName, PassWord)
|