这个月套餐到期了,去营业厅问了问,换新版套餐宽带是1000M,于是就升级了1000M。
营业厅没提设备的事,当时也没在意,回到家把光猫重启了一下,实测下行速度800多M。
哦!这才发现光猫的网口是千兆的!虽然我的路由器全都是2.5G的万兆口,但光猫的网口是千兆的!!!
打营业厅电话总是没人接,算了,去海鲜市场淘个万兆猫吧,营业厅肯定是要求加钱升级成FTTR设备的,现在运营商在推广他们的FTTR,应该是不提供FTTH光猫。
FTTB:光纤到楼宇,然后从楼宇变成电口的网线进各个用户。B应该是building的字头,我猜。
FTTH:光纤到住宅,然后入户之后光猫变成电口,进各个房间。H应该是House的字头,我猜。
FTTR:光纤到房间,家里弱电箱一个主光猫,客厅、卧室、餐厅、阁楼什么的可以设置1-2个从光猫,家里各房间之间也都是光纤连接。
营业厅在推广FTTR,但我不需要,我家里装修时布了很多很粗的中间带十字塑料骨架的六类网线,网线用料十足,8根芯都是很粗的无氧铜,跑万兆没任何问题。所以我家里不需要主从多光猫,只需要一个光猫也就是FTTH模式就行,而且我常年桥接不需要光猫带wifi。
爬了会儿网,找到一款新出的光猫,诺基亚贝尔的XG-040G,CPU是联发科旗下的达发AN7581DT(四核A53,8核NPU),内存是DDR4-3200 512M,交换芯片是联发科的EN8811,硬件很牛,2024年新推出的,关键是光猫小巧玲珑,功耗很低(无wifi嘛),电源是12V1A的,这个年代去哪里找极限电流就1A的光猫啊!电信版本的型号是XG-040G-TF,相对于联通版本阉割了电源按钮和USB接口。海鲜市场二手的50元,全新的80元,比起动辄150靠上的FTTR子母猫们便宜多了。
因为比较新款,所以有些省份没有入库,卖家说很可能只能手工建立连接,或者修改sn成旧光猫的,手工就手工吧,花80元买了个全新的。
拿到手后没有想象中的那么小,但也不大,生产日期是2024年9月份,确实比较新款。
既然说是全新的,那么直接用电信超密登录一下吧,失败了,不是说全新的吗,为啥默认密码不行呢!
用曲别针捅住复位按钮几秒,所有指示灯一起闪几下,复位之后用电信的telecomadmin账户和默认超密nE7jA%5m登录成功。
访问http://192.168.1.1/dumpdatamodel.cgi,得到日志,复制粘贴到记事本里,搜索SuPassword,得到密码的密文,一个24个字符长度的AES加密后的字符串。
爬了会儿网,知道了诺基亚家爱用的密钥是:3D A3 73 D7 DC 82 2E 2A 47 0D EC 37 89 6E 80 D7 2C 49 B3 16 29 DD C9 97 35 4B 84 03 91 77 9E A4
原始向量是:D0 E6 DC CD A7 4A 00 DF 76 0F C0 85 11 CB 05 EA
那么来解密吧,python需要有加密解密专用的一个库pycryptodome,这是一个功能强大的密码学工具,提供了各种加密、解密、哈希和认证算法。
pip install pycryptodome
安装了加密解密库之后,照葫芦画瓢地写一小段代码:
[Python] 纯文本查看 复制代码import base64
class RouterCrypto:
def __init__(self):
from Crypto.Cipher import AES
# key and IV for AES
key = '3D A3 73 D7 DC 82 2E 2A 47 0D EC 37 89 6E 80 D7 2C 49 B3 16 29 DD C9 97 35 4B 84 03 91 77 9E A4'
iv = 'D0 E6 DC CD A7 4A 00 DF 76 0F C0 85 11 CB 05 EA'
self.cipher = AES.new(bytes(bytearray.fromhex(key)), AES.MODE_CBC, bytes(bytearray.fromhex(iv)))
def decrypt(self, data):
output = self.cipher.decrypt(data)
return output[:-ord(output[-1:])]
encrypted = "这里是要解密的密文"
print(RouterCrypto().decrypt(base64.b64decode(encrypted)).decode('UTF-8'))
然后SuPassword的明文就被解密出来了,我的光猫是一个12字符的字符串。
访问http://192.168.1.1:8080/system.cgi?telnet可以在web界面点击启用按钮开启telnet服务。
然后用光猫背面贴纸上的useradmin账号和密码在telnet里登录
然后用su命令提权到root权限,密码就是刚才解密出的su密码。
用ls命令试了一下,貌似shell是残缺的,很多命令都没有,需要补全shell。
不过这个su密码是不随着点击运维按钮和下发配置而改变的,就算默认超密被下发改了之后,su密码还是不变的。