加载中...
不想等待可以点我关掉
本文是该文章的一部分: 优化实验室网络 - Thun888

引导模式下去掉配置

在接上console线的情况下,断电重启。

注意,在没进入特权模式下,是没有办法执行reload重启的

重启后可以看到,Press Ctrl+B to enter Boot Menu,尽快按下Ctrl + B,进入引导菜单。

image.png

随后按下1进入Ctrl模式,在读条完成后,需要按下Ctrl + C二次确定

若长期无响应,可以尝试按下回车,查看前面是否出现了Ctrl>的提示符

在进入该调试环境后,可以使用dir列出文件目录。在列出文件目录后,可以看到有一个config.text文件,储存了交换机的配置

使用rename config.text config.bak将该文件重命名,随后执行reload重启,进入主系统

在主系统下使用enable进入特权模式,随后执行copy config.bak config.text将配置文件改回去

执行copy startup-config running-config应用配置

随后,趁交换机“不注意”,设置一下密码覆盖掉配置里原有的设置

1
2
3
4
5
6
7
8
# 进入全局配置模式
configure terminal
# 启用密码加密功能
service password-encryption
# 设置管理账号
username admin password yourpassword
# 设置特权模式密码
enable password yourpassword

查看配置文件并反解密码

直接改人家密码,终归是不太好。既然我们都能够读出配置文件了,能不能直接反解出密码呢?看了一眼配置文件,使用的是Type 7加密形式来保存密码,这种加密也和明文差不多了。

在网上查多数是思科的交换机的资料,锐捷交换机的也有:

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
'''
选择明文攻击
根据已有密码和算法计算xlat
'''
def getxlat(enc_pw,dec_pw):
xlat = [9999, 9999, 9999, 9999, 9999, 9999, 9999, 9999,9999, 9999, 9999, 9999, 9999, 9999, 9999,9999, 9999, 9999, 9999, 9999, 9999, 9999, 9999,9999, 9999, 9999, 9999, 9999, 9999, 9999]
#seed为enc_pw的前两个字母
seed = int(enc_pw[0:2])
print("seed:",seed)
val = 0
#enc_pw中的每两个字母对应一个明文字母
for i in range(2,len(enc_pw)):
print(i)
if i%2 == 0 and i >2 :
seed = seed +1
xlat[seed] = val ^ ord(dec_pw[int(i/2 - 2)])

val = 0
print(seed,xlat[seed])
val = val *16
tmp = enc_pw[i].upper()
if tmp >= '0' and tmp <= '9' :
val = val + ord(tmp) - ord('0')
continue

if tmp >= 'A' and tmp <= 'F' :
val = val + ord(tmp) - ord('A') + 10;
continue
print(xlat)
return xlat

def decode(xlat,enc_pw):
test_pw = ''
seed = int(enc_pw[0:2])
print("seed:",seed)
val = 0

for i in range(2,len(enc_pw)):
print(i)
if i%2 == 0 and i >2 :
seed = seed +1
test_pw_char = chr(val ^xlat[seed])
test_pw += test_pw_char
val = 0
print(seed,xlat[seed],test_pw_char)
val = val *16
tmp = enc_pw[i].upper()
if tmp >= '0' and tmp <= '9' :
val = val + ord(tmp) - ord('0')
continue

if tmp >= 'A' and tmp <= 'F' :
val = val + ord(tmp) - ord('A') + 10;
continue
print(test_pw)

if __name__ == "__main__" :
enc_pw = '1100320c1843080143797f'+'\0'
dec_pw = 'ruijie@123'
xlat = getxlat(enc_pw,dec_pw)

xlat = [9999, 42, 64, 35, 35, 87, 120, 102, 94, 99, 79, 117, 114, 71, 101, 114, 42, 109, 65, 114, 75, 76, 9999, 9999, 9999, 9999, 9999, 9999, 9999, 9999]
enc_pw = '1100320c1843080143797f'+'\0'
decode(xlat,enc_pw)

来自:锐捷password 7 解密 - 东坡何罪 - 博客园

参考资料

  1. 01 日常维护
  2. 锐捷password 7 解密 - 东坡何罪 - 博客园
  3. Cisco password decryption
  4. 锐捷交换机-管理密码清除-Uboot层不支持“main_config_password_clear”命令恢复_xmodem utilities-CSDN博客