解决前提:不能破坏交换机原配置文件
以这家公司网络管理的情况来看,极有可能是没有交换机和路由器运行配置文件的备份,因此需要在不破坏交换机配置文件的情况下更改,并配置一个新的口令。
另外,这家公司所用的网络设备品牌很多,华为、实达和思科三分天下。首先要清楚一点,不同品脾的网络设备都自己拥有不同的文件系统,因此破解密码的方式也是不同的,下面以思科产品为例进行说明。
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中指定的启动命令 |