En Une :

Password Recovery d'un routeur cisco

La procédure password recovery d'un routeur Cisco consiste à modifier la valeur du registre de configuration qui permettra de lire les mots de passe au prochain démarrage du routeur.

1. Password Recovery du routeur

À vrai dire, la procédure "password recovery", "recouvrement de mot de passe", ne permet pas de retrouver un mot de passe d'un routeur ou d'un commutateur Cisco.

Tout au plus, elle permet de reprendre la main sur un routeur dont l'accès est limité par un mot de passe, de le changer ou de le lire si celui-ci n’est pas chiffré.

  • Nécessite un accès physique.
  • On distingue une procédure connue pour les plateformes “routeur” et une pour les plateformes “commutateur”
  • Le principe consiste à redémarrer la machine sans charger la configuration qui contient les paramètres de restriction d’accès.

1.1. Principe

Si des mots de passe ont été définis par un administrateur, ils sont situés dans la "startup-configuration" (fichier de configuration initiale) qui elle-même sera copiée dans la "running-configuration" (fichier de configuration courante) à l'issue du démarrage du routeur.

En évitant la "startup-configuration", on évite le passage obligé de mots de passe d'administration, on accède au mode de configuration avec tous les privilèges.

Eviter une configuration existante permet de démarrer la machine avec une configuration vierge. Tout au plus, peut-on consulter, supprimer, modifier ou charger la configuration de démarrage qui existe toujours en NVRAM. Les mots de passe devraient être chiffrés.

Pour ce faire, il faut changer les paramètres de démarrage du routeur afin d'interrompre son démarrage. Un accès physique au routeur est nécessaire. Dans la console, on utilisera la combinaison des touches CTRL et PAUSE (sous Windows) pour accéder au mode minimal du routeur qui est appelé "ROM Monitor Mode". Il s'agit d'un mode de bas niveau exécuté en RAM et situé en ROM qui permet entre autres de changer les valeurs du registre de configuration, de télécharger un IOS à partir d'une connexion IP ou sérielle, de configurer la vitesse de la console, etc.

Le changement s'opère sur la valeur du registre de démarrage. Une fois le routeur redémarré, il n'y aura plus de mot de passe demandé mais aussi plus aucune configuration. Notons aussi que les interfaces n'auront pas été démarrées. Il faudra explicitement les activer par un "no shutdown". On pourra par contre changer n'importe quel paramètre de la machine. Enfin, il ne faudra pas oublier de changer la valeur du registre à partir du mode normal sur sa valeur par défaut. Autrement la "startup-configuration" sera toujours ignorée si le routeur redémarre pour une raison quelconque.

1.2. Conditions

La seule condition est d'avoir un accès aux ports console ou AUX et de pouvoir redémarrer le routeur.

Connexion à la console du routeur :

  • Câble inversé (roll-over) du port COM1 du PC au routeur sur le port console.
  • en USB
  • Lancer un logiciel d'émulation de terminal (putty/hyperterminal) 9600 bauds

1.3. Procédure

Quelle que soit la plate-forme routeur matériel la procédure est toujours la même.

Toutefois, selon le routeur, les commandes en "ROM Monitor Mode" peuvent changer. Il suffit de les connaître ou de les trouver grâce à l'aide (commande help ou ?).

Press RETURN to get started!


Router>enable
Password:
Password:

Le routeur demande un mot de passe pour accéder au mode privilège.

1.3.1. Redémarrage du routeur et CTRL-PAUSE endéans les 60 secondes. Entrée dans le mode ROM Monitor

rommon1>

1.3.2. Modification de la valeur du registre de démarrage

rommon1>confreg 0x2142

1.3.3. Redémarrage du routeur (et esquive de la startup-configuration)

rommon2>reset
System Bootstrap, Version 12.1(3r)T2, RELEASE SOFTWARE (fc1)
Copyright (c) 2000 by cisco Systems, Inc.
cisco 2811 (MPC860) processor (revision 0x200) with 60416K/5120K bytes of memory

Self decompressing the image :
########################################################################## [OK]
---Sortie omise---
 --- System Configuration Dialog ---

Continue with configuration dialog? [yes/no]: no


Press RETURN to get started!

Tapez no pour éviter le mode setup

1.4. Opérations

1.4.1. Visualisation de la configuration de démarrage

Router#show startup-configuration
Using 499 bytes
!
version 12.4
no service timestamps log datetime msec
no service timestamps debug datetime msec
no service password-encryption
!
hostname Router
!
!
!
enable secret 5 $1$mERr$.TUcXMCAonRND.tFXUzor0
!

1.4.2. Vérification de la présence d'un fichier de configuration de démarrage

Router#cd nvram:
Router#dir
Directory of nvram:/

 124  -rw-           0                    <no date>  startup-config
 125  ----           0                    <no date>  private-config

129016 bytes total (128964 bytes free)

1.4.3. Modification des paramètres

Router>enable
Router#copy startup-config running-config
Router#configure terminal
Router(config)# [...]
Router(config)#^Z
Router#copy running-config startup-config

1.4.4. Rétablissement du registre de démarrage et redémarrage

Router#configure terminal
Router(config)#config-register 0x2102
Router(config)#exit
Router#reload

1.4.5. Vérification des paramètres du registre

Router#show version
Cisco IOS Software, 2800 Software (C2800NM-ADVIPSERVICESK9-M), Version 12.4(15)T1, RELEASE SOFTWARE (fc2)
---sortie ommise et à la dernière ligne :---
Configuration register is 0x2102

2. Registre de configuration

Un router Cisco dispose d'un code de configuration de registre sur une valeur de 16 bits. Cette valeur est stockée en NVRAM. On la configure via les commandes "confreg" en ROMMON ou "config-register" dans l'IOS.

2.1. Utilité

On peut l'utiliser pour configurer les différentes tâches :

  • Forcer le routeur à entrer en ROMMON
  • Sélectionner une source de démarrage ou un fichier de démarrage par défaut
  • Activer ou désactiver la fonction Break
  • Contrôler les adresses de broadcast
  • Charger un OS à partir de la ROM
  • Récupérer des mots de passe
  • Modifier la vitesse de ligne

2.2. Signification des 16 bits du registre

Bit Fonction Valeur Hexa
15 Mode diagnostic et NVRAM ignorée 0x8--- 1er Hexa
14 Broadcast IP n'a pas de numéros 0x4--- 1er Hexa
13 Démmarre en ROM si erreur 0x2--- 1er Hexa
12 Vitesse de Ligne voir ci-dessous 1er Hexa
11 Vitesse de Ligne voir ci-dessous 2ème Hexa
10 Broadcast IP tout à zéro 0x-4-- 2ème Hexa
9 n/a n/a 2ème Hexa
8 Break désactivé 0x-1-- 2ème Hexa
7 Bit OEM activé 0x--8- 3ème Hexa
6 NVRAM ignorée 0x--4- 3ème Hexa
5 Vitesse de Ligne voir ci-dessous 3ème Hexa
4 n/a n/a 3ème Hexa
3 champ démarrage voir ci-dessous 4ème Hexa
2 champ démarrage voir ci-dessous 4ème Hexa
1 champ démarrage voir ci-dessous 4ème Hexa
0 champ démarrage voir ci-dessous 4ème Hexa

2.3. Champs importants

2.3.1. Le bit 13 sur le premier hexa

Ce champ permet au routeur de démmarrer en ROM si tout autre démarrage est impossible sur les 4 premiers bit avec une valeur de 1 qui donne 0010 cela donne 0x2---. Il s'agit de la valeur par défaut.

2.3.2. Le bit 8 sur le deuxième hexa

Le bit 8 est à une valeur par défaut de 1 ce qui donne en hexa 0x-1--. Cette configuration ignore l'interruption du Break après les 60 secondes du démarrage.

2.3.3. Le bit 6 sur le troisième hexa

Ignorer la NVRAM, le bit 6 sur le troisième hexa

Si le bit est à 1, on a en hexa 0x--4-

Si le bit est à 0, on a en hexa 0x--0-

2.3.4. Les bits 3-2-1-0 sur le dernier hexa.

Ces bits sont appelés boot fields.

Les valeurs classiques sont en hexa 0x---0, 0x---1 et 0x---2 à 0x---F

2.4. Champ Fonction

Valeur Signification
0x---0 Reste en ROM Monitor mode
0x---1 Démarre sur la première image disponible
0x---2 à 0x---F Démarrage par défaut à partir de la Flash

Pour démarrer une image particulière on peut utiliser la commande boot system :

(config)#boot system flash filename

ou

(config)#boot system rom

ou

(config)#boot system {rcp|tftp|ftp} filename [ip-address]

2.5. Champs accessoires

2.5.1. Les bits de vitesse (5-12-11)

La vitesse de la ligne console peut être défine sur les trois premiers hexa. Par défaut, la vitesse est définie à 9600 bauds :

Bauds Bit 5 Bit 12 Bit 11
115200 1 1 1
57600 1 1 0
38400 1 0 1
19200 1 0 0
9600 0 0 0
4800 0 0 1
2400 0 1 1
1200 0 1 0

2.5.2. Contrôle des adresses de broadcast (bits 10 et 14)

On peut déterminer le format des adresses de broadcast via les bits 10 et 14.

Exemples

Démarrage par défaut en 9600 bauds en console (0x2102) :

Valeur Hexa 2 - - - 1 - - - 0 - - - 2 - - -
Bit 15 14 13 12 11 10 09 08 07 06 05 04 03 02 01 00
Valeur binaire 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0

Démarrage en évitant le contenu de la NVRAM (startup-config) (0x2142) :

Valeur Hexa 2 - - - 1 - - - 4 - - - 2 - - -
Bit 15 14 13 12 11 10 09 08 07 06 05 04 03 02 01 00
Valeur binaire 0 0 1 0 0 0 0 1 0 1 0 0 0 0 1 0
Author image
Francois Goffinet est formateur Cisco Systems depuis 2002. Passionné des technologies des réseaux, de virtualisation et en nuage, Web et de cybersécurité souvent en Open Source ou Unix-Like, devops.