FONTE: https://www.ipcert.it/
Illustrerò in questa mini-guida la procedura atta ad ottenere nuovamente l’accesso privilegiato su un router Cisco del quale non si conosce/ricorda la password di enable, del quale non si desidera perdere la configurazione presente in
NVRAM (startup), e sul quale non sia stato precedentemente dato il comando no service password-recovery.
Il primo step che si dovrà compiere sarà quello di modificare la sequenza di boot, modificando i valori del Configuration Register.
Il “Configuration Register” è un parametro (espresso in esadecimale) che fornisce informazioni al software di bootstrap presente sulla macchina su come avviarla. Il suo valore di default (0x2102, visionabile attraverso il comando show version, di cui segue un esempio) indica ad esempio che l’IOS verrà caricata dalla memoria flash e la configurazione dalla NVRAM.
Router#show version
Cisco IOS Software, 1841 Software (C1841-ADVIPSERVICESK9-M), Version 12.4(15)T1, RELEASE SOFTWARE (fc2)
Technical Support: http://www.cisco.com/techsupport
Copyright (c) 1986-2007 by Cisco Systems, Inc.
ROM: System Bootstrap, Version 12.3(8r)T8, RELEASE SOFTWARE (fc1)
System returned to ROM by power-on
System image file is “flash:c1841-advipservicesk9-mz.124-15.T1.bin”
This product contains cryptographic features and is subject to United
States and local country laws governing import, export, transfer and
use. Delivery of Cisco cryptographic products does not imply
third-party authority to import, export, distribute or use encryption.
Importers, exporters, distributors and users are responsible for
compliance with U.S. and local country laws. By using this product you
agree to comply with applicable laws and regulations. If you are unable
to comply with U.S. and local laws, return this product immediately.
A summary of U.S. laws governing Cisco cryptographic products may be found at:
http://www.cisco.com/wwl/export/crypto/tool/stqrg.html
Cisco 1841 (revision 5.0) with 114688K/16384K bytes of memory.
Processor board ID FTX0947Z18E
M860 processor: part number 0, mask 49
2 FastEthernet/IEEE 802.3 interface(s)
191K bytes of NVRAM.
63488K bytes of ATA CompactFlash (Read/Write)
Configuration register is 0x2102
Si dovrà impostare tale valore su 0x2142, che indicherà al bootstrap di ignorare la startup configuration (caricando comunque l’IOS dalla flash), presentando dunque il prompt di una macchina non configurata.
Per modificarlo in assenza di privilegi di accesso, bisognerà:
- connettersi alla macchina in console
- riavviarla manualmente
- interrompere il processo di boot
L’ultimo punto richiede che durante la fase di avvio venga inviata la sequenza di “Break”, che potrebbe variare in base al programma ed all’hardware utilizzato.
In linea generale utilizzare una delle seguenti combinazioni di tasti:
- su tastiera inglese: Ctrl-Break
- su tastiera italiana: Ctrl-Interr (Pausa) oppure CTRL+C oppure Ctrl+P
Questo forzerà la macchina ad entrare in modalità ROMmon (ROM monitor), permettendo di interagire direttamente con il bootstrap. A questo punto, basterà settare il nuovo valore del registro di configurazione e riavviare la macchina:
rommon 1 >
rommon 2 > confreg 0x2142
rommon 3 > boot
Fatto ciò sarà possibile ottenere l’accesso completo al router senza disporre della password (non verrebbe infatti richiesta come mostrato dal seguente estatto di output)
Cisco 1841 (revision 5.0) with 114688K/16384K bytes of memory.
Processor board ID FTX0947Z18E
M860 processor: part number 0, mask 49
2 FastEthernet/IEEE 802.3 interface(s)
191K bytes of NVRAM.
63488K bytes of ATA CompactFlash (Read/Write)
Cisco IOS Software, 1841 Software (C1841-ADVIPSERVICESK9-M), Version 12.4(15)T1, RELEASE SOFTWARE (fc2)
Technical Support: http://www.cisco.com/techsupport
Copyright (c) 1986-2007 by Cisco Systems, Inc.
— System Configuration Dialog —
Continue with configuration dialog? [yes/no]:
Possiamo a questo reimpostare una nuova password recuperando comunque la configurazione precedente semplicemente procedendo nel seguente modo:
1) Entrare in modalità privilegiata:
Router>enable
2) Recuperare la configurazione iniziale:
Router#copy startup-config running-config
Destination filename [running-config]?
489 bytes copied in 0.416 secs (1175 bytes/sec)
Router#%
SYS-5-CONFIG_I: Configured from console by console
Router#
Da notare che l’area di accesso resta la privileged EXEC, rendendo possibile la rimozione/sostituzione della password presente.
Router#configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Router(config)#no enable secret
oppure
Router(config)#enable secret new-password
Non resta altro che modificare nuovamente il valore del registro ed il gioco è fatto:
Router(config)#config-register 0x2102