You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

求助:如何通过Telnet修改华为HS8145C5光猫的Telnet密码及Web管理密码

求助:如何通过Telnet修改华为HS8145C5光猫的Telnet密码及Web管理密码

我目前住在国内,平时靠各类VPN访问国际网络,但VPN经常被封,所以折腾起了路由器和光猫这些设备。

我用的是中国电信的HS8145C5光猫,每次用LOID注册后,运营商都会自动修改光猫的管理员密码,还会通过TR069 ACS远程阻断我的VPN连接,而且他们根本不给我LOID、PPPoE账号和密码!

不过我有光猫的物理权限,可以按重置键——每次重置后虽然断网,但能用默认账号telecomadmin和密码nE7jA%5m拿到管理员权限,这账号密码运营商当然不会主动给我。

后来我弄到了LOID,但每次注册光猫恢复上网后,管理员权限就没了,因为运营商会立刻把admin密码改成随机字符串。不过我找到了办法开启Telnet,还能导出配置文件获取加密后的Web管理密码,步骤是这样的:

telnet 192.168.1.1
root
adminHW
su
shell
cp /mnt/jffs2/hw_ctree.xml /mnt/jffs2/mycfg.xml.gz
cd /mnt/jffs2
aescrypt2 1 mycfg.xml.gz tem
gzip -d mycfg.xml.gz
grep WebUserInfoInstance mycfg.xml
rm mycfg.xml

Telnet的账号是root,密码是adminHW。最后grep会输出加密后的Web用户信息,比如:

<X_HW_WebUserInfoInstance InstanceID="1" ModifyPasswordFlag="0" UserName="useradmin" Password="$2!ZM$Idyl@J~}>8&apos;n6KWMF|-@Koy>C,;ofJBq_&apos;V5$" UserLevel="1" Enable="1" Alias="cpe-1"/>
<X_HW_WebUserInfoInstance InstanceID="2" ModifyPasswordFlag="1" UserName="telecomadmin" Password="$2:8jUNk0n|HenK~CB|&apos;^&Aopi&quot;<v~xJmC&<!TXx`3$" UserLevel="0" Enable="1" Alias="cpe-2" PassMode="0"/>

这些密码是加密的,我用找到的工具(把密码贴到文本解密框点$2)能解密出真实密码。另外PPPoE密码我通过F12把输入框类型从password改成text拿到了,但它是64位十六进制字符串,查了下是SHA256(MD5(pwd)),我写了个Python脚本暴力破解出了原密码:

from hashlib import md5, sha256

count = 0
reversemap = dict()

def guess(s):
    if s in reversemap:
        return reversemap[s]
    global count
    for n in range(count, 1000000000):
        i = str(n)
        digest = sha256(md5(i.encode()).hexdigest().encode()).hexdigest()
        reversemap[digest] = i
        if digest == s:
            count = n + 1
            break
    return i

但拿到PPPoE密码也没用,因为我怎么都删不掉TR069的WAN连接。不过我有SU级别的Telnet权限,用找到的脚本把ISP接口改成了工厂接口:

cp -f /mnt/jffs2/hw_ctree.xml /mnt/jffs2/hw_ctree_bak.xml
cp -f /mnt/jffs2/hw_boardinfo /mnt/jffs2/hw_boardinfo_bak
cp -f /etc/wap/hw_default_ctree.xml /mnt/jffs2/hw_ctree.xml
sed -i 's/^.*obj.id = "0x0000001a" ; obj.value =.*$/obj.id = "0x0000001a" ; obj.value = "COMMON";/' /mnt/jffs2/hw_boardinfo
sed -i 's/^.*obj.id = "0x0000001b" ; obj.value =.*$/obj.id = "0x0000001b" ; obj.value = "COMMON";/' /mnt/jffs2/hw_boardinfo
sed -i 's/^.*obj.id = "0x00000031" ; obj.value =.*$/obj.id = "0x00000031" ; obj.value = "NOCHOOSE";/' /mnt/jffs2/hw_boardinfo
reboot

之后我把光猫改成桥接模式,用路由器拨号,删掉了TR069 WAN连接,禁用了ACS和定期上报,也失效了自动上报的登录信息——终于能正常用VPN了!但好景不长,运营商居然还能改我的光猫设置,想想也合理,我没改Telnet和Web的密码啊。

我知道配置都存在/mnt/jffs2/hw_ctree.xml里,这个文件是先gzip压缩再AES加密的,要是能修改密码那行,再重新压缩加密替换原文件应该就行,我找到了重新加密替换的命令:

gzip /mnt/jffs2/mycfg.xml
aescrypt2 0 /mnt/jffs2/mycfg.xml.gz tem
cp -f /mnt/jffs2/mycfg.xml.gz /mnt/jffs2/hw_ctree.xml

但问题是我现在不知道怎么编辑加密前的配置文件,而且改完接口后,密码加密方式变成带盐的了:

<X_HW_WebUserInfoInstance InstanceID="1" ModifyPasswordFlag="0" UserName="useradmin" Password="$2*P#<Rm12MIRDkTTWT1NLn01YXTlMwFM]>d=_$|A$0&VND3OIl~fvHI$bbo8Su>jVP)^v]MiPG>.u9&apos;{N6n)]=cIhB0+>tG1IS|9R$" UserLevel="1" Enable="1" Alias="cpe-1" Salt="deeb9e44dc1b96caaa9c312d" PassMode="3"/>
<X_HW_WebUserInfoInstance InstanceID="2" ModifyPasswordFlag="0" UserName="telecomadmin" Password="$2ha17UJ3)&/*k,o-D8Y1PJF:(4b^vWVK}$5:+UQ_0BJLWCDy:AGaY:~!_dBc&apos;*E5DRc#De56S=r&apos;dUHwUMP=b/h3V3:Fd^XB_MQ`N$" UserLevel="0" Enable="1" Alias="cpe-2" Salt="180cf7332c754daddf2d42f2" PassMode="3"/>

现在原来的解密工具用不了了,但我确定这些是加密不是哈希,因为我知道第一个解密后是zvsmc,第二个是默认的nE7jA%5m,猜测用的是AES加密。

另外我也改不了Telnet密码,光猫用的是BusyBox v1.26.2(Dopra Linux),试了passwd命令根本不行:

Login:root
Password:
WAP>passwd
ERROR::Command is not existed
WAP>su
success!
SU_WAP>passwd
ERROR::Command is not existed
SU_WAP>shell
BusyBox v1.26.2 () built-in shell (ash)
Enter 'help' for a list of built-in commands.
profile close core dump

WAP(Dopra Linux) # passwd
passwd: no record of srv_ssmp in /etc/shadow, using /etc/passwd
Changing password for srv_ssmp
Old password:
Incorrect password
passwd: password for srv_ssmp is unchanged

WAP(Dopra Linux) # passwd root
passwd: srv_ssmp can't change password for root

我已经拿到了光猫的命令列表,也能备份和恢复配置文件(就是那个hw_ctree.xml),还查到华为用的是DES加密,找到了解密脚本正在逆向,但还是不知道怎么生成符合要求的加密密码来修改配置。

现在想请教大家:怎么才能修改这个HS8145C5光猫的Telnet密码和Web管理密码,让运营商不能再远程修改我的光猫设置?

备注:内容来源于stack exchange,提问作者Ξένη Γήινος

火山引擎 最新活动