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存放配置文件(Startup?config)RAM存放當前系統使用配置(Running?config)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 non?volatile 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)#config?register0X2102 801(config)#interface xx 801(config)#no shutdow |
(8)查詢并記錄丟失的口令:
801#show configuration (show startup?config)
(9)修改口令:
801#configure terminal 801(config)line console 0 801(config?line)#login 801(config?line)#password xxxxxxxxx 801(config?line)# 801(config?line)#write memory (copy running?config startup?config) |