先森闲着没事就喜欢研究光猫、路由器那一套,对网速比较敏感。在折腾网速的时候经常遇到的方案就是光猫仅转换光信号,改成桥接让路由器直接拨号。
让路由器拨号就涉及到宽带的账号密码了,先森已经拿到了光猫的超管账号,由于宽带不是先森办的,也不好联系电信客服索要宽带账号密码,所以就想着自己来获取宽带账号密码。
先森坐标成都,运营商电信,光猫型号。
折腾记录
百度有方法说是将hw_ctree.xml解密,里面会有宽带密码,但是先森实测解密出来里面只有超管密码啥的,并没有宽带密码。
经过研究,实测可行方案如下。
1、获取“明文”
首先使用超管账号登录光猫后台,8080端口那个,不是80端口的。
在网络-网络设置中,连接名称选择带internet的那个,可以看到下面有用户名和密码,这个就是宽带账号和密码了。成都的宽带账号是CD开头的,CD是大写。
密码是密文,这个只是显示密文,通过F12大法,找到密码的input标签,将type的“password”改成“text”就能看到明文了。但是这个明文是64位的一场串,一看就不是什么正经密码。
光猫后台F12大法
2、破解密码
正经的密码不可能64位那么行,拿着这个密码去拨号也是没法成功的。经过搜索了解,这个密码是经过md5和哈希后的值,这个值想反解是很难的,但是宽带密码是纯数字的,且并不是很长的,所以我们可以生成0~几百万数字先md5再哈希的值去跟“明文”做对比,相等的数字就是宽带密码了。
python代码:
import hashlib # “明文”贴到这里: secret = '04f96727bb95e8cd75455822a7472e99a3fa14ce8098ffc5ce4a73ef07dde3fe' def sha256(todo): return hashlib.sha256(str(todo).encode()).hexdigest() def md5(todo): return hashlib.md5(str(todo).encode()).hexdigest() for value in range(0, 1000000000): # 可以将数字调大,获取更长的密码 s = sha256(md5(value)) print(value) # 打印可以看到当前计算的数字,可能会影响效率,不需要的可以删掉此行 if s == secret: print(f'find: {s} = {value}') break
“明文”字符串以“04f96727bb95e8cd75455822a7472e99a3fa14ce8098ffc5ce4a73ef07dde3fe”为例,这个密码很简单,解密出来是123123:
解密过程
当然,先森用的宽带密码没这么简单,不过也只是跑了几分钟就跑出来了,跑的速度具体要看机器的配置。
先森将光猫改成桥接后,路由器使用破解出来的宽带密码拨号成功,证明此方法是具有可行性的。
历史上的今天:
转载请注明出处来自https://www.capjsj.cn/adsl_password.html
编程的重要性
劳烦博主给我破解一下吧,谢谢!
f4c1a5f381295850f03ab21be45f01c6bd222393bbe5b528d4c9a3a345129b7d
@可口可乐: 你怕不是在搞我,我算到20亿都没算出来,你这个估计和四川电信的规则不一样,直接打10000号问吧。
同款光猫怎么获取超级管理员密码?
同款光猫怎么得到管理员密码?