编者按:电脑的密码丢失了,我们可以用密码清除光盘等工具来解决,但交换机、路由器的密码丢失了,无法使用光盘等工具,并要求不改变原配置文件情况下,这该如何办呢?
【IT168 专稿】随着因特网规模的不断扩大,网络与我们的生活已经越来越近,许多政府、学校和公司都组建了自己的信息网络,这使得交换机和路由器这一网络设备的使用越来越广泛。在使用交换机和路由器的过程中经常会出现忘记密码的事情,使维护人员无法登录,影响工作的进一步开展。本节将介绍恢复交换机密码的思路和步骤。
前任网络管理员离职 造成交换机密码丢失
众所周知,交换机和路由器都需要有一定的安全保证,也就是说,要及时为它们配置合理的密码,那么,如果这个密码忘记了怎么办呢?
某公司的网络管理员离职,新招聘的网络管理员准备重新配置交换机的一些参数。但发现其中多台交换机的密码与"密码本"的记录不一致。公司所有的网络设备大致有3个密码,很多人都帮助猜测这个密码,分别尝试了"原网络管理员的生日"和一些默认密码,但都无法登录,如图所示。
图 交换机登录密码错误
解决前提:不能破坏交换机原配置文件
以这家公司网络管理的情况来看,极有可能是没有交换机和路由器运行配置文件的备份,因此需要在不破坏交换机配置文件的情况下更改,并配置一个新的口令。
另外,这家公司所用的网络设备品牌很多,华为、实达和思科三分天下。首先要清楚一点,不同品脾的网络设备都自己拥有不同的文件系统,因此破解密码的方式也是不同的,下面以思科产品为例进行说明。
http://www.cisco.com/warp/public/474/index.shtml 提供了思科系列产品的口令恢复(Password Recovery Procedures)手册。
或者访问国内网站http://www.net130.com/cms/Pubpspecial/special_password/ 202320.htm 部分CISCO密码恢复手册。
1.密码恢复原理
所有的Cisco路由器都具有一个位于NVRAM中的16位软件寄存器。默认情况下,配置寄存器设置是从闪存加载Cisco IOS,并且从NVRAM查找并加载startup-config文件。在动手恢复密码之前,首先要进一步了解IOS的特性管理。
1)操作系统模式
路由器可以加载3种类型的操作系统:
(1)全功能的IOS
一般在闪存中,可以放在TFTP服务器中;应用于产品的全功能的普通IOS。
(2)限制功能的IOS
一般在ROM中具备基本的IP连通性,用于闪存出现故障而用户需要通过IP连接来复制一份新的IOS到闪存中的情况,称为RXBOOT模式。
(3)ROM Monitor
通常用于Cisco TAC的低级调试及口令恢复,称为ROM Monitor模式。
对于许多初学者来说,不建议使用Cisco路由器的ROM Monitor模式。原因很简单:一是我们并不经常用到该模式,对其相关操作不熟悉;二是在ROM Monitor模式下的操作失误,往往会对路由器造成致命的伤害(比如破坏Flash中的IOS文件,导致系统崩溃)。
2)IOS启动顺序
IOS软件包的启动顺序如下所述,大致分为4步。
第1步:路由器执行加电自检(POST)以查找和验证硬件。
第2步:路由器从ROM中加载并运行自引导程序代码。
第3步:路由器加载IOS或其他软件。
第4步:路由器找到配置文件并将它加载到运行配置中。
具体的启动顺序可能还要复杂一些,如下图所示。
图 路由器启动路程图
路由器在每次加电或重新启动时都试图全部完成这4步。路由器管理员不能更改POST代码及其功能。注意在自引导程序代码的位置,要加载的IOS及配置文件是可以改变的,但是自引导程序代码和初始配置几乎总是放在它们默认的位置上,也就是说,自引导程序代码放在ROM里,而初始配置一般都放在NVRAM中。因此,IOS或其他软件的位置就成了一般情况下唯一需要改动的部分。
3)寄存器值得设定
下面讨论配置寄存器的设置及如何使用这些设置恢复路由器的口令。配置寄存器的16位从左到右依次为15、14、13、……、0。Cisco路由器默认的配置设置是0x2102(0x表示是十六进制)。也就是说,第13位、第8位和第1位的值是1,如表6-16所示。
表6-16 寄存器位
寄 存 器 | 2 | 1 | 0 | 2 | ||||||||||||
位值 | 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
二进制 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 |
各软件配置位的意义如表6-17所示。注意第6位用于忽略NVRAM的内容。此位既可用于口令恢复。
表6-17 各软件配置位数值与解释
位 | 十 六 进 制 | 解 释 |
0~3 | 0x0000~0x000f | 启动字段(参见表6-18) |
6 | 0x0040 | 忽略NVRAM内容 |
7 | 0x0080 | 启用OEM位 |
8 | 0x0100 | 禁用中断 |
10 | 0x0400 | IP广播全为零 |
5,11~12 | 0x800~0x1000 | 控制台线路速率 |
13 | 0x2000 | 如果网络启动失效则启动默认ROM软件 |
14 | 0x4000 | IP广播不包含网络号 |
15 | 0x8000 | 启动诊断信息并忽略NVRAM内容 |
注意,位于配置寄存器0~3位的启动字段控制路由器的启动顺序,表6-18中进一步说明了各个位的用途。
表6-18 启动字段及其用途
启 动 字 段 | 意 义 | 用 途 |
00 | ROM监控模式 | 若要启动时采用ROM监控模式,将配置寄存器的值设置为2100。必须用b命令来手动启动路由器。路由器将显示rommon>作为提示 |
01 | 从ROM启动映像文件 | 若要启动存储在ROM中的IOS映像文件,将配置寄存器的值设置为2101。路由器将显示router(boot)>作为提示 |
02~F | 指定默认启动文件名 | 任何从2102~210F的值将告诉路由器使用NVRAM中指定的启动命令 |
2.路由器密码恢复
这里假设之前对路由器寄存器的值作了修改,使用show version命令,检查当前配置寄存器值,如下图所示:
最后一行的信息是配置寄存器的值,在这里是0x2142,即下次启动时不加载startup-config文件,正常情况下的值应该是0x2102。由此可见,只要中断路由器的启动过程,跳过startup-config中包含的密码验证,也就意味着密码将不在起作用了。
图6-4 检查寄存器值
默认的配置寄存器的值是0x2102,意味着第6位是关闭的(值为0)。在默认情况下,路由器会查找并加载存储在NVRAM中的路由器配置文件(startup-config文件)。若要恢复口令,需要开启配置寄存器的第6位,告诉路由器忽略NVRAM的内容。开启了第6位的配置寄存器值是0x2142。
以下是口令恢复的主要步骤。
第1步:启动路由器并通过执行一个中断来中断启动顺序。
第2步:修改配置寄存器开启第6位(值为0x2142)。
第3步:重载路由器。
第4步:进入特权模式。
第5步:将startup-config文件复制为running-config文件。
第6步:修改口令。
第7步:将配置寄存器重设为默认值。
第8步:保存配置。
第9步:重新加载路由器。
3.交换机密码恢复
交换机口令恢复的原理类似于路由器,交换机恢复密码的过程主要是通过停止引导过程,不使用配置文件的方式来实现,但是具体的操作方法不同。CatOS与IOS交换的密码恢复过程也是不同的,由于这家公司中存在了几个不同型号的Cisco设备,因此在后面的操作过程中要针对不同型号制订恢复策略。
实战过程:破解路由、交换机密码
由于远程破解这些设备的密码的机会很小,网管员放弃了这种想法,携带好串口电缆和笔记本来到机柜旁边,开始逐步破解各个设备的密码。
首先需要把串口电缆的一端插在网络设备背面的Console口中,另一端插在普通电脑的串口里。当交换机加电后,操作系统中使用"超级终端"程序。打开"超级终端",在设定好连接参数后,就可以进行密码破解了。
1.Cisco 2500和2600路由器
第1步:启动路由器并执行一个中断。
当路由器重新启动时,按下笔记本中的【Ctrl+Break】键,中断路由器启动,这时能看到一个提示符Rommon 1>(这是2600系列的路由器提示);而对于2500系列的路由器提示符是">"。
第2步:修改配置寄存器。对于2600系列,命令是Rommon 1 >Config-register 0x2142 ;对于2500系列命令为>o/r 0x2142。
第3步:重载路由器并进入特权模式。
在2600系列上,输入reset。在2500系列路由器上,输I 。路由器将重新加载,此时会询问是否要使用设置模式,回答No,按回车进入用户模式,键入Enable命令,进入特权模式。
第4步:查看并修改配置。
现在需要将startup-config复制为running-config文件,让路由器此时运行的状态保持正常 copy startup-config running-config ,此时配置正在RAM中运行,在特权模式下,可以修改配置。注意:此时虽然进入了路由器,但依然不能查看离职管理员,用enable secret设置的加密口令,只能修改成为一个新的密码把它修改,如下:
configure terminal
enable secret(password)
第5步:重设配置寄存器并重载路由器。
修改口令之后,一定要使用config-register将配置寄存器设置回默认值Config-register 0x2102,最后保存配置 copy running-config startup-config并重载路由器,口令恢复结束。
一定要注意第2步和第5步中的命令,切不可颠倒顺序。由于输入失误,我们在一项工程实施中导致客户数据丢失,造成网络瘫痪多达4个小时的事故。
2.在COS交换机上恢复口令
对于CatOS的Catalyst交换机,口令恢复步骤如下。
第1步:正确连接到交换机(硬件和软件)。
第2步:重新打开交换机在加电自检过程中操作。
第3步:在交换机开机的30秒内,按顺序完成下面的工作。
在口令提示符处按下回车键,输入一个空口令。
在提示符处输入enable,进入特权模式。
在口令提示符处按下回车键,输入一个空口令。
使用set password 命令或set enablepass命令改变口令。
在提示符处按下回车键来输入口令。
第4步:保存配置,完成。
由于需要管理员在30秒之内输入命令,为避免输入错误等操作影响,可以将上述命令复制到TXT文本文件中,在使用时粘贴在操作控制台界面上即可。
3.Cisco IOS 交换机口令恢复
Cisco IOS交换机比CatOS交换机口令恢复,甚至比路由器的口令恢复都要复杂一些。
第1步:断开交换机电源线。
第2步:在重新连接电源线时,一直按住交换机的MODE按钮。可以在1X接口的LCD灯不再亮的1秒或2秒后松开MODE按钮。这时System指示灯一直闪烁,控制台出现如下信息。
The system has been interrupted prior to initializing the flash filesystem. The following commands will initialize the flash
filesystem, and finish loading the operating system software:
flash_init
boot
第3步:输入flash_init,初始化flash文件系统。
Switch: flash_init
Initializing Flash...
flashfs[0]: 86 files, 4 directories
flashfs[0]: 0 orphaned files, 0 orphaned directories
flashfs[0]: Total bytes: 15998976
flashfs[0]: Bytes used: 6639616
flashfs[0]: Bytes available: 9359360
flashfs[0]: flashfs fsck took 15 seconds.
...done Initializing Flash.
Boot Sector Filesystem (bs:) installed, fsid: 3
第4步:输入load_helper,装载并初始化辅助映像(Helper Imager),这是存储在ROM中的迷你IOS映像,通常用灾难恢复。
第5步:输入dir flash:(有冒号),显示Flash文件系统内的文件和目录列表。
Switch: dir flash:
Directory of flash:/
2 -rwx 0 <date> env_vars
3 -rwx 344 <date> system_env_vars
4 -rwx 5 <date> private-config.text
6 -rwx 2149 <date> config.text
8 drwx 192 <date> c3550-i9q3l2-mz.121-20.EA1a
9359360 bytes available (6639616 bytes used)
第6步:输入rename flash:config.text flash:config.old ,这个文件名可以自己确定,修改配置文件名。该文件包括了口令的设置。
第7步:输入boot,重启系统。
第8步:重新启动后系统提示如下。
--- System Configuration Dialog ---
Would you like to enter the initial configuration dialog? [yes/no]: no
Would you like to terminate autoinstall? [yes]:↙
输入no,不进入设置模式向导配置对话框。按【Enter】键进入用户模式。
第9步:在交换机的提示符下,输入enable进入特权模式。
第10步:输入rename flash:config.old flash:config.text,将配置文件改回原来的默认名称。
第11步:将配置文件复制到RAM中,执行copy startup-config runnig-config,现在配置文件被加载。
第12步:修改口令。
第13步:保存配置。
在交换机2950上恢复口令时,第2步操作方法有点不同。开始也是一直按住面板上的mode按钮不放,插上交换机的电源线,注意观察面板,刚开始stat指示灯一直闪烁,system指示灯亮,等stat指示灯灭掉,system指示灯闪烁,此时放开mode按钮。控制台出现如下信息:
The system has been interrupted prior to initializing the flash filesystem. The following commands will initialize the flash filesystem, and finish loading the operating system software:
flash_init
load_helper
boot
然后在第3步中依次输入flash_init命令和boot命令,其他的操作步骤一致。
这家公司的路由器和Cisco 3550、Cisco 3750交换机都采用如下步骤破解了口令,并在修改密码后正常工作。采用本节介绍的方法,修改密码时不会把原来的配置文件内容清除掉,特别是一个生产网络里已经运行的交换机,这样比较保险。