Comme pour n’importe quel équipement informatique, il faut sécuriser l’accès pour éviter d’avoir de mauvaises surprises.
Grace à certaines fonctionnalités de l’IOS, il est possible de définir un mot de passe avant que l’administrateur/pirate puisse modifier la configuration de votre équipement (ou même redémarrer ou effacer toute la configuration ou pire…).
Voyons d’abord la commande « enable password » qui est un vrai trou de sécurité 🙂
La commande « enable password »
Dans le chapitre sur les différents mode de l’IOS, on a vu que le passage du mode non privilégié au mode privilégié s’effectue avec la commande « enable ».
On a vu aussi qu’une fois dans le mode privilégié, l’administrateur peut faire ce qu’il veut :
- visualiser la configuration de l’équipement
- basculer dans le mode de configuration pour modifier la configuration
- effacer la configuration
- redémarrer l’équipement
- …
Bref l’administrateur peut tout faire. Il est donc primordial de sécuriser le passage entre ces 2 modes par la demande d’un mot de passe lorsque l’administrateur tape la commande « enable ». Si le mot de passe donné n’est pas le bon, le passage en mode privilégié sera refusé et l’administrateur restera en mode non privilégié.
Configuration
- entrez dans le mode privilégié (enable)
- entrez dans le mode de configuration globale du switch (configure terminal)
- définir le mot de passe TOTO (enable password TOTO)
- sortir du mode de configuration global (exit)
- sortir du mode privilégié (disable)
- testez le mot de passe en essayant d’entrer dans le mode privilégié (enable)
Switch> enable
Switch# configure terminal
Switch(config)# enable password TOTO
Switch(config)# exit
Switch# disable
Switch> enable
Password:
Et voila, votre équipement est sécurisé ! … enfin c’était vrai dans les années 2000…
Maintenant, regardons un peu comment est sauvegardé ce fameux mot de passe en tapant la commande « show running-config ». On s’aperçoit que le mot de passe est stocké en clair dans la configuration :
Switch# show running-config | include password
no service password-encryption
enable password TOTO
Ce n’est pas forcément un problème que le mot de passe soit stocké en clair dans le sens où seul un administrateur qui se trouve déjà dans le mode privilégié (donc connaissant le mot de passe) peut visualiser la configuration.
La où c’est plus gênant c’est lorsque vous exportez la configuration vers un serveur de sauvegarde, le mot de passe restera en clair. Ou lorsque vous installez un nouvel équipement à distance, vous devez donner le fichier de configuration à la personne qui installera physiquement l’équipement, il connaîtra alors votre mot de passe… bon vous l’avez compris, c’est pas excellent comme sécurisation 🙁
Alors comment faire pour sécuriser ce mot de passe ?
La fonction « service password-encryption »
Cisco a réfléchi (si si) pour sécuriser le mot de passe au sein même de la configuration. Il utilise une fonction de chiffrement basé sur l’algorithme de Vigenere qui permet de rendre le mot de passe illisible. Pour activer cette fonction, rien de plus simple :
Configuration
- entrez dans le mode privilégié (enable)
- entrez dans le mode de configuration globale du switch (configure terminal)
- activez la fonction de chiffrement de mot de passe (service password-encryption)
- sortir du mode de configuration global (exit)
- vérifiez que le mot de passe est bien illisible (show running-config)
Switch> enable
Switch# configure terminal
Switch(config)# service password-encryption
Switch(config)# exit
Switch# show running-config | include password
no service password-encryption
enable password 7 0815637A26
Pour information, le chiffre 7 qui se trouve devant le mot de passe chiffré indique le type d’algorithme utilisé pour chiffrer et déchiffrer le mot de passe. 7 équivaut à l’algorithme de Vigénère.
Crackage de mot de passe
Vous me direz, c’est bon tout est sécurisé… pas vraiment en fait car cet algorithme est très ancien et aujourd’hui on peut facilement recouvrir n’importe quel mot de passe chiffré avec la commande « service password-encryption ».
Pour preuve, le mot de passe de mon exemple est TOTO, son équivalent chiffré est : 0815637A26 (que je trouve en faisant un show running-config).
Je cherche rapidement sur Internet un site pour casser l’algorithme de Vigénère. Parmi les sites, j’en prend 2 au hasard :
Je met sur chacun de ces 3 sites l’équivalent chiffré soit 0815637A26, et chaque site me retrouve le mot de passe TOTO…
Alors, comment faire pour véritablement sécuriser le mot de passe « enable » de mon équipement Cisco ?
On va utiliser une fonction de hashage qui s’appelle MD5 et cette fonction sera appliquée grâce à la commande « enable secret »
La commande « enable secret »
Comme la commande « enable password TOTO » stocke le mot de passe en clair et que la fonction « service password-encryption » chiffre bien ce mot de passe mais avec un algorithme obsolète, Cisco a décidé de changer complètement la sécurisation du mot de passe par une nouvelle commande « enable secret ».
Cette commande permet de définir un mot de passe mais au lieu de stocker le mot de passe en clair dans la configuration il va stocker uniquement son hash.
Kézako ? Une fonction de hashage génère à partir d’une entrée (TOTO) un hash qui sera unique. En revanche, il est quasiment impossible à partir du hash de retrouver le mot de passe associé.
Configuration
- entrez dans le mode de configuration globale du switch (configure terminal)
- enlevez la précédente commande de définition du mot de passe (no enable password)
- définir le mot de passe TOTO avec la commande secret (enable secret TOTO)
- sortir du mode de configuration global (exit)
- vérifiez que le mot de passe est bien illisible (show running-config)
- si vous souhaitez, tester sur les 3 sites précédents de cracker le mot de passe… sans succès
Switch> enable
Switch# configure terminal
Switch(config)# enable secret TOTO
Switch(config)# exit
Switch# show running-config | include secret
enable secret 5 $1$CANW$U9Y8O6KeFhrFR4l1Qo07h/
Ici le chiffre 5 qui se trouve devant le mot de passe chiffré indique le type d’algorithme utilisé pour rendre illisible le mot de passe TOTO est la fonction de hashage MD5 (rappelez-vous, le chiffre 7 était pour l’algorithme de Vigenere).
Maintenant le hashage MD5 est obsolète, il faut des fonctions plus forte. Regardons ce que les Switch peut me proposer :
Switch(config)# enable algorithm-type ?
md5 Encode the password using the MD5 algorithm
scrypt Encode the password using the SCRYPT hashing algorithm
sha256 Encode the password using the PBKDF2 hashing algorithm
Prenons le hashage SHA256
Switch(config)# enable algorithm-type sha256 secret TOTO
Switch(config)# exit
Switch# show running-config | include secret
enable secret 8 $8$dvX/fx/FJ0Snk2$HhqrOUaEtBgk4zJvG2IQuAJNUicZmmELelC/L6.Fcl2
On voit que la valeur « 8 » fait référence à l’algorithme de hashage PBKDF2.
Et là bonne chance pour retrouver le mot de passe qui vient d’être hashé 🙂
A retenir pour le CCNA
Ce qu’il faut retenir pour le CCNA :
- on peut sécuriser l’accès à l’IOS avec la commande « enable password… » mais le mot de passe est stocké en clair dans la configuration
- on peut alors chiffrer ce mot de passe avec la commande « service password-encryption » mais cet algorithme n’est plus fiable aujourd’hui
- Cisco recommande à ce jour de remplacer la commande « enable password… » par la commande « enable secret… » mais attention à bien choisir une onfction de hashage forte