ROOTME — CISCO - mot de passe
Catégorie : Réseau — Points : 15 — Difficulté : ⭐ (1/5) — Auteur : Thanat0s
Rédigé par SPECTRA MZ — décodage de mots de passe Cisco type 7 et déduction du secret enable.
Présentation du challenge
📜 ÉNONCÉ OFFICIEL
Trouvez le mot de passe « Enable ».
Indice : « Tous les hash n'en sont pas. »
On nous donne une configuration Cisco (show running-config) d'un routeur nommé rmt-paris, avec plusieurs mots de passe de formes différentes.
hostname rmt-paris ! enable secret 5 $1$p8Y6$MCdRLBzuGlfOs9S.hXOp0. ! username hub password 7 025017705B3907344E username admin privilege 15 password 7 10181A325528130F010D24 username guest password 7 124F163C42340B112F3830 ! line con 0 password 7 144101205C3B29242A3B3C3927 login ! line vty 0 4 password 7 060F0A2B5F400B091327 login ! service password-encryption !
secret 5 (hash MD5-crypt) et password 7 (chiffrement faible).
Le défi consiste à retrouver le mot de passe enable, protégé ici par un type 5 (vrai hash irréversible). Mais l'indice nous met sur la piste : d'autres mots de passe sont en type 7 — un chiffrement faible, réversible.
Vocabulaire clé
enable) — l'équivalent de l'administrateur de l'équipement Cisco.secret 5)password 7)p8Y6).$1$sel$hash, réutilisé par Cisco pour le type 5.a ⊕ b = c, et réversible (c ⊕ b = a) — la base de l'algorithme type 7.Type 5 vs Type 7 — la théorie
Type 5 — un vrai hash (incassable par décodage)
enable secret 5 $1$p8Y6$MCdRLBzuGlfOs9S.hXOp0.
- Le format
$1$<sel>$<hash>est le MD5-crypt :MD5(mot_de_passe + sel)répété 1000 fois. - C'est à sens unique : impossible de « déchiffrer ». On ne peut qu'essayer des candidats (attaque par dictionnaire) et comparer.
- La documentation Cisco elle‑même le dit : il est impossible de récupérer un enable secret à partir de la configuration, sauf par attaque par dictionnaire.
→ On ne va pas perdre de temps à attaquer ce hash par brute force. Le challenge est noté facile, il y a une astuce.
Type 7 — un « faux hash » (réversible)
username hub password 7 025017705B3907344E
- L'algorithme type 7 est un XOR avec une clé fixe, connue publiquement :
tfd;kfoA,.iyewrkldJKD - Le premier chiffre(s) indique la position de départ dans la clé ; chaque paire hexadécimale suivante est XORée avec le caractère correspondant de la clé pour retrouver le caractère du mot de passe.
- Le résultat est réversible — n'importe qui peut le décoder en quelques secondes avec un outil en ligne ou un script.
Décodage des mots de passe type 7
Plusieurs outils permettent de décoder le type 7 :
- Outils en ligne (ex.
ifm.net.nz) - John the Ripper :
john --format=cisco hash.txt - Script Python avec la clé XOR publique
- La commande
opensslne décode pas le type 7, mais on peut l'implémenter manuellement.
Prenons l'exemple du compte hub — 025017705B3907344E :
Position de départ : 2
Paires hexadécimales : 50 17 70 5B 39 07 34 4E
Clé type 7 : tfd;kfoA,.iyewrkldJKD
50 ⊕ clé[2] → 6 ("6")
17 ⊕ clé[3] → s ("s")
70 ⊕ clé[4] → K ("K")
5B ⊕ clé[5] → 0 ("0")
39 ⊕ clé[6] → _ ("_")
07 ⊕ clé[7] → h ("h")
34 ⊕ clé[8] → u ("u")
4E ⊕ clé[9] → b ("b")
Résultat : 6sK0_hub
On applique le même décodage aux autres type 7 :
| Ligne de config | Valeur type 7 | Décodé | |------------------------------------|-----------------------------|-------------------| | username hub password 7 | 025017705B3907344E | 6sK0_hub | | username admin privilege 15 ... | 10181A325528130F010D24 | 6sK0_admin | | username guest password 7 | 124F163C42340B112F3830 | 6sK0_guest | | line con 0 password 7 | 144101205C3B29242A3B3C3927 | 6sK0_console | | line vty 0 4 password 7 | 060F0A2B5F400B091327 | 6sK0_vty |
Déduction du pattern
6sK0_ + nom de l'entité
6sK0_hubpour le comptehub6sK0_adminpour le compteadmin6sK0_guestpour le compteguest6sK0_consolepour la ligne console6sK0_vtypour les lignes VTY
Cette logique faible est exactement le piège de sécurité que l'énoncé veut illustrer : l'administrateur a utilisé la même convention pour tous les comptes.
6sK0_enable
Vérification par re-hachage
Le hash type 5 est un MD5-crypt standard. On peut le vérifier avec openssl en re-hachant le mot de passe candidat avec le même sel.
openssl passwd -1 -salt p8Y6 -table 6sK0_enable
Résultat :
6sK0_enable $1$p8Y6$MCdRLBzuGlfOs9S.hXOp0.
🔹 Configuration Cisco
$1$p8Y6$MCdRLBzuGlfOs9S.hXOp0.
🔸 openssl avec "6sK0_enable"
$1$p8Y6$MCdRLBzuGlfOs9S.hXOp0.
6sK0_enable.
hashcat -m 500 hash.txt '6sK0_?l?l?l?l?l' -a 3Mais la déduction logique est bien plus rapide — et c'est l'esprit du challenge.
Enjeux de sécurité (côté SOC)
La méthode en 4 étapes (à retenir)
Le message de sécurité
6sK0_xxx) pour tous les comptes : compromettre un compte révèle la logique de tous les autres.6sK0_enable) le rend trivial à vérifier.Recommandations
- 01Algorithme fort — remplacer type 5/7 par type 8/9 (PBKDF2-SHA256 / SCRYPT) :
enable algorithm-type scrypt secret ... - 02Désactiver le type 7 —
no service password-encryptionn'empêche pas les type 7 déjà présents ; régénérer les mots de passe. - 03Mots de passe uniques — ne jamais réutiliser un pattern entre comptes ; mots de passe longs et aléatoires (et MFA/AAA Radius/TACACS+).
- 04Surveillance — journaliser les accès (AAA accounting), alerter sur les connexions admin hors horaires/sources normales.
Quiz – Validation des acquis
Clique sur une question pour révéler la réponse.
tfd;kfoA,.iyewrkldJKDopenssl passwd -1 -salt <sel> <candidat>6sK0_enable