1 密码恢复原理
(1)Cisco路由器保存了几种不同的配置参数,并存放在不同的内存模块中。Cisco系列路由器的内存有:ROM,闪存(Flash memory),RAM,不可变RAM和动态内存(DRAM)等5种(其功能见表1)。
一般情况下,路由器启动时,首先运行ROM中的程序,进行系统自检及引导,然后运行Flash中的ISO,并在NVRAM中寻找路由器配置,并装入DRAM中。
(2)口令恢复的关键在于对配置登记码(Configuration Register Value)(见表2)进行修改,从而让路由器从不同的内存中调用不同的参数表进行启动。有效口令存放在NVRAM中,因此修改口令的实质是先让登记码不起作用,从而可以进行直接启动,完成后再将登记码恢复(如忘记恢复,路由器重新启动后修改的配置可能会丢失)。
内存作用
ROM存放系统的引导程序,类似PC机的BIOS,是一种只读存储器,系统掉电程序不会丢失闪存存放Cisco IOS的镜像,类似PC机的硬盘,是一种可擦写、可编程的ROM,系统掉电数据不会丢失NVRAM存放配置文件(Startupconfig)RAM存放当前系统使用配置(Runningconfig)DRAM主要包含路由表、ARP缓存、Fastswitch缓存、数据包缓存等,也包含正在执行的配置文件,系统掉电该内存数据会丢失表2Cisco系列路由器配置登陆码
Configuration Register Value含义
0X2102缺省设置
Bit13=0X2000Flash引导失败5次后,自动从ROM引导
Bit8=0X0100关闭Break键
Boot field=0X20X2101从Flash中引导正常运行模式
Bit13=0X2000Flash引导失败5次后,自动从ROM引导
Bit8=0X0100关闭Break键
Boot field=0X10X142进入boot ROM运行模式Router(boot)>
Bit8=0X0040进入boot monitor运行模式>或rommon>
Boot field=0X2从Flash中引导正常运行模式
2 准备工作
厂商在设计路由器产品的时候就预留了一个Console(控制台),它是对路由器进行配置时的一个重要接口,也是密码恢复的第一步工作:利用DB25转接口和交叉线,将终端或装有超级终端软件的PC接到路由器的Console口上。终端参数设置如下:速度:9 600 bps;数据位:8;奇偶校验位:无;停止位:1;流控:无。如图1所示。
3800系列路由器(以801为例)具体操作方法
(1)在启动的60 s内按下中断键Ctrl+Break,如果Break被屏蔽了可以使用循环开机的方法,使设备进入rom monitor状态,提示符号为“>”。
(2)在rom monitor中输入set命令:
记下当前的ios-conf值,这里是0x2102。
Boot# set
……
Set prompt=“boot”
Set ios-conf=0X2102
(3)输入set ios-conf 142,如下:boot# set ios-conf 142。
(4)输入boot引导系统,如果设备在重启过程中要求进行初始化配置,一路回答“No”,如下所示:
Boot# boot …… 8kbytes of nonvolatile configuration memory 8Mbytes of flash on board (4M from flash card) ——system configuration dialog—— would you like to enter the initial configuration dialog?[yes/no]:n press reture to get started!(press enter) |
5)输入回车,enable,再回车,进入enable状态,命令序列如下:
Router>en
Router#
(6)输入config mem,调入原配置文件,并进入配置模式(注意:不要conf t),命令序列如下:
Router# conf mem
801(config)#
(7)恢复原始配置寄存器值并激活所有端口:
801#configure terminal 801(config)#configregister0X2102 801(config)#interface xx 801(config)#no shutdow |
(8)查询并记录丢失的口令:
801#show configuration (show startupconfig)
(9)修改口令:
801#configure terminal 801(config)line console 0 801(configline)#login 801(configline)#password xxxxxxxxx 801(configline)# 801(configline)#write memory (copy runningconfig startupconfig) |