加载中...
不想等待可以点我关掉

前言

实验室网络的布局大概长这样:

原网络拓扑
原网络拓扑

别问,问就是硬件条件制约,一堆百兆网线,少数几根千兆网线还不够长,实际布局更离谱

后来在角落里发现了前辈遗留下来的一台中新网安的防火墙,全千兆的接口,那就利用这个来改进一下实验室的网络吧

首先,最大的硬件制约在于——接入层交换机是两个千兆的上联口、24个百兆的下联口。上联线路是千兆的,但是内网被百兆锁死了。(所以说才接了那么多交换机,那些交换机都是千兆的,方便内网传数据)

最激进的方案就是直接替换掉这个百兆的接入层交换机。但是这样子的话改动有点大。所以我想了想,干脆将其中的一个上联口通过调整配置改为下联口,再接入到另外一台千兆交换机,就可以达到近似千兆的效果了。

同时这样也不用手动配置端口模式和vlan那些,让原来的交换机负责

接上console线,试了一下常见的弱密码,发现都不行。所以需要想办法绕过密码。

这个交换机也是个老古董,部分实现在新型号上可能有所差异,仅供参考。

获取交换机密码

引导模式下去掉配置

在接上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博客
外部引用截止

修改配置

交换机接口没有物理上“上下联”的区别,这里的情况是两个配置为trunk模式,其他为access模式,将其中一个改为access模式

1
2
3
4
5
6
7
8
9
10
11
12
enable
configure terminal
interface GigabitEthernet 0/25
# 关闭DHCP分配和ARP的信任
no ip dhcp snooping trust
no ip arp inspection trust
# 改为access模式
switchport mode access
# 设置对应的vlan
switchport access vlan 11111
end
write

什么?你说为什么不直接把新交换机的其中一个网口也设为中继模式,然后直接接过来。这样子确实更好一点,但是它好处我用不上也没权限用,干脆改完以后一劳永逸。

将“防火墙”变为“普通交换机”

说是防火墙,但我需要的更多是它的交换功能。

首先连接0号网口,再配置电脑IP为192.168.1.2,默认路由192.168.1.1。随后访问https://192.168.1.1

注意,默认不开放80端口访问

使用默认账号密码(admin/admin)访问,在接口设置中将全部接口并入网桥(我这里保留了一个接口用于管理)

image.png

image.png

随后在console执行以下命令,开启IPv6支持,然后就可以把线全部接过去了

1
2
3
ZX-NGFW-6130> enable
ZX-NGFW-6130# configure terminal
ZX-NGFW-6130(config)# ipv6 enable
外部引用截止

当然,实际上还是不能和二层交换机划等号

总结

利用多余的千兆口,绕开原有的百兆口限制

原网络拓扑
原网络拓扑
新网络拓扑
新网络拓扑

实际效果(ipv6,ipv4上游有限速;上传也有几百兆):

image.png
image.png

内网测速:

Snipaste_2026-04-12_11-42-57.jpg
Snipaste_2026-04-12_11-42-57.jpg

另外

同时也试了下把干线直接接电脑上,发现获取不到ipv4,只有ipv6

查了下资料想了想,应该是默认情况下电脑发出的数据包不带VLAN标签,上游归到Native VLAN,刚好又没有DHCP就获取不到ipv4地址

手动配置VLAN ID后可以正常获取IP,不过速度很慢,可能是因为网卡要从一堆数据里过滤出自己想要的吧

Snipaste_2026-04-11_16-24-35.jpg
Snipaste_2026-04-11_16-24-35.jpg

至于ipv6,我校是无状态自动配置方式,可能是Native VLAN和别的VLAN间没有严格隔离,甚至由于接收到多个RA,同时生成了多个前缀的ipv6地址。上网的时候又默认把数据发给RA报文发送方,刚好就畅通无阻。不过在实际使用中不会用这个VLAN的,所以问题不大。