故障现象
网络设备或大型应用服务软件为了安全起见,都会使用密码保护功能,这就需要网络管理员输入正确的密码后万能登录网络设备或服务软件中更改和浏览其配置,使用这一功能从一定程度上增加了系统的安全性,不过要是将事先设定的密码忘了。在恢复上将会带来很大的麻烦。下面这个例子,就是介绍在CISCO路由器特权密码忘记后,如何恢复并清除密码。
笔者所在公司使用一台CISCO 2511路由器,通过该路由器的串口与xDSL MODEM连接。接入数据局的DON专线。有一天,因为网络结构发生变化,Internet提供商由中国电信更换成中国联通。因此需要通过Console口进入路由器申更改IP地址、路由等相关内容。可是使用中发现登录路由器需要口令,因为该路由器的设置是由笔者的前任完成的,而其离开公司时末将该密码移交给笔者。加上平时该路由器工作稳定,而重启路由器时又不需要输入密码,因此对该密码也没有在意。如会设置密码的前任同事已经出国,看来找到该路由器的密码已经不太可能。
诊断过程
既然无法找到路由器密码,那只好从破解路由器密码着手了。要破解路由器口令,首先应该了解路由器的启动原理,我们知道,路由器的存储介质一般由5部分组成,它们是ROM、闪存 (Flash Memory)、不可变RAM(NVRAM)、RAM和动态内存 (DRAM)。当路由器正常启动时,路由器首先运行ROM中的自检程序,对路由器硬件进行自检,并引导系统 (最小操作系统,Mini OS)。
接下来路由器将运行Flash中的IOS(Internetwork Operating System,网络操作系统),在NVRAM中寻找路由器配置,并将其装入DRAM中。需要注意的是,当路由器加载最小操作系统后,操作员立即按 "Ctrl"十"Break"键,即可停止装载IOS,而进入监视调试模式。
在该模式下,用户可以更改翻查看配置文件的启动位置 (默认情况下,路由器配置保存在NVRAM中,该配置同时包含路由器的口令)。通过分析路由器的启动原理,可以得知,我们能够利用进入监视调试模式这一功能,跳过加载包含口令的路由器配置文件,而直接进入路由器的特权模式下重新设置路由器的口令。
另外,因为原来的路由器的配置文件中还包含许多有用的设置信息,因此在更改密码前,还应该用其起始配置文件替代当前运行的配置文件。在更改后,再将当前运行的配置文件替换为原来的起始配置文件。最后完成设置后,冉将路由器的启动顺序改回正常启动顺序。
通过上述设置,我们就可以将路由器的密码改为自己设置的密码,从而解决了因为遗忘密码,而不能登录路由器的问题。
理论分析可行后,就可以进行具体的操作了,下面就列出笔者清除并设置路由器密码的全过程:
第一步:将设置终端与路由器连接。
通过路由器自带的Console电缆,将路由器Console口与终端的COM口相连(与PC机的串口相连也可以,不过要在PC机上运行超级终端程序)。
第二步:进入监视调试模式更改启动顺序。
连接完成后,重新启动路由器,在终端屏幕上出现第三行提示时,按"Ctrl"十"Break"按钮,进入监视调试模式,并输入如下命令:
o
输入上面命令后,在出现的提示信息第一行,记住最后使用的密码文件号:例如0x2102,并继续输入如下命令(/符号后的内容为说明文字)。
o/r /更改启动文件,进入安全启动状态
0x42 /将0x4?密码文件设置为下次启动项
i
/重新启动路由器
第三步,清除并设置新的路由器密码.
路由器重新启动后,终端上将出现"Would you like to enter the initialconfiguration dialog?[yes]:"提示,输入no,并回车进入路由器的安全模式,继续输入如下命令:
Router(boot)enable
/进入特权用户模式
Router(boot)#copy startup-config running-config
/用起始配置文件替代当前运行的配置文件
Router(boot)#config terminal
/进入全局配置模式
/设置Console密码/
Router(boot)(config)#line console 0
/进入局部设置模式
Router(boot)(config-line)#login
Router(boot)(config-line)#password cisco
/更改Console密码,此例设为cisco(区分大小写)
Router(boot)(config-line)#exit
/设置telnet密码/
Router(boot)(config)#line vty 0 4
Router(boot)(config-line)#login
Router(boot)(config-line)password cisco
/更改telnet密码,此例设为cisco(区分大小写)
Router(boot)(config-line)#exit
/设置特权用户密码/
Router(boot)(config)#enable password cisco1
/更改特权用户密杩,此例设为cisco1(区分大小写)
Router(boot)(config)enable secret cisco
/更改加密的特权用户密码,此例设为cisco(区分大小写)
Router(boot)(config)#end
Router(boot)#copy running-config startup-config
/将当前运行的配置文件替代起始配置文件(保存)
Router(boot)#config terminal
/进入全局配置模式
/恢复正常启动状态/
Router(boot)(config)#config-register 0x2102
/将原有的0x2102密码文件替换0x42,作为启动首选项
重新启动路由器后,在提示输入密码时,输入新设置的密码,即可登录路由器,运行Show Running-config命令,发现路由器原有配置还在。至此丢失路由器密码的问题解决。
排除心得
作为一个网络管理员,有时需要面对几十个甚至上百个管理密码,如果想完全记住这些密码基本上是不可能的:有的管理员习惯将这些密码设置成一个口令,其实这是非常错误的,因为一旦一些别有用心的人获得了该密码,就等于能够控制你的整个网络系统,这是极度危险的。其实,栽们可以将这些密码保存到稳妥的地方,使用时先去查找就可以了 (笔者就将自己管理的密码保存在随身携带的笔记本电脑中,并使用PassKeep密码管理软件对其进行管理和安全防护)。
另外,对于网络管理员来说,掌握几种密码恢复手段也是十分必要的,这是因为即使是再好的管理密码方法也会出现遗漏的时候 (尤其对于多人管理的密码),在这种 "万一"情况下,就可以使用密码恢复手段大显身手了。