Retour à l'accueil
ROOTME · Défi : Réseau

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.

ROOTME Cisco Type 7 MD5-crypt openssl

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.

show running-config — extrait
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
!
La configuration mélange 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 password / Enable secret
Le mot de passe qui donne l'accès au mode privileged EXEC (enable) — l'équivalent de l'administrateur de l'équipement Cisco.
Type 5 (secret 5)
Vrai hash MD5-crypt (128 bits avec sel) : irréversible, on ne peut que le casser par dictionnaire.
Type 7 (password 7)
Chiffrement faible réversible : chaque octet est XORé avec une clé fixe connue publiquement. Ce n'est pas un hash — d'où le titre du challenge.
service password-encryption
Commande Cisco qui active le chiffrement type 7 des mots de passe (illusion de sécurité, car réversible).
Salt
Donnée aléatoire ajoutée au mot de passe avant hachage (ici p8Y6).
MD5-crypt
Schéma de hachage Unix $1$sel$hash, réutilisé par Cisco pour le type 5.
XOR
Ou exclusif bit à bit : 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.
« Tous les hash n'en sont pas »
Le type 7 n'est pas un hash : c'est un chiffrement réversible avec une clé publique. L'indice du challenge nous invite à décoder ces mots de passe pour en tirer un pattern.

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 openssl ne décode pas le type 7, mais on peut l'implémenter manuellement.

Prenons l'exemple du compte hub025017705B3907344E :

Décodage pas à pas du type 7
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 :

Table des mots de passe décodés
| 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

Tous les mots de passe décodés suivent exactement le même pattern : 6sK0_ + nom de l'entité
  • 6sK0_hub pour le compte hub
  • 6sK0_admin pour le compte admin
  • 6sK0_guest pour le compte guest
  • 6sK0_console pour la ligne console
  • 6sK0_vty pour 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.

Déduction logique : Le mot de passe enable suit donc très probablement la même règle :
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.

Commande openssl
openssl passwd -1 -salt p8Y6 -table 6sK0_enable

Résultat :

Résultat — correspondance exacte
6sK0_enable  $1$p8Y6$MCdRLBzuGlfOs9S.hXOp0.

🔹 Configuration Cisco

$1$p8Y6$MCdRLBzuGlfOs9S.hXOp0.

🔸 openssl avec "6sK0_enable"

$1$p8Y6$MCdRLBzuGlfOs9S.hXOp0.
Vérification confirmée à 100 % — le mot de passe enable est bien 6sK0_enable.
Alternative — attaque par dictionnaire avec mask
Si on n'avait pas deviné le pattern, on aurait pu attaquer le hash MD5-crypt avec un mask préfixé :
hashcat -m 500 hash.txt '6sK0_?l?l?l?l?l' -a 3
Mais la déduction logique est bien plus rapide — et c'est l'esprit du challenge.
Flag final
6sK0_enable

Enjeux de sécurité (côté SOC)

La méthode en 4 étapes (à retenir)

Processus de résolution 1. Identifier les types 2. Décoder les type 7 3. Déduire le pattern 4. Vérifier avec openssl

Le message de sécurité

Le type 7 est une illusion de sécurité
Clé fixe et publique, décodable en ligne en 1 seconde. Ne jamais l'utiliser pour protéger un secret réel.
Les patterns de mots de passe sont une faille
Un seul pattern (6sK0_xxx) pour tous les comptes : compromettre un compte révèle la logique de tous les autres.
Le secret 5 n'est pas cassable « à la légère »
MD5-crypt avec sel est résistant, mais un mot de passe prévisible (6sK0_enable) le rend trivial à vérifier.

Recommandations

  • 01
    Algorithme fort — remplacer type 5/7 par type 8/9 (PBKDF2-SHA256 / SCRYPT) : enable algorithm-type scrypt secret ...
  • 02
    Désactiver le type 7no service password-encryption n'empêche pas les type 7 déjà présents ; régénérer les mots de passe.
  • 03
    Mots de passe uniques — ne jamais réutiliser un pattern entre comptes ; mots de passe longs et aléatoires (et MFA/AAA Radius/TACACS+).
  • 04
    Surveillance — 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.

Q1Quelle est la principale différence entre type 5 et type 7 ?+
→ Le type 5 est un hash irréversible (MD5-crypt), le type 7 est un chiffrement réversible (XOR avec clé fixe).
Q2Comment s'appelle la clé utilisée par l'algorithme type 7 ?+
tfd;kfoA,.iyewrkldJKD
Q3Que signifie l'indice « Tous les hash n'en sont pas » ?+
→ Les mots de passe type 7 ressemblent à des hash mais sont en réalité des chiffrements réversibles.
Q4Quelle commande permet de vérifier un mot de passe MD5-crypt ?+
openssl passwd -1 -salt <sel> <candidat>
Q5Quelle est la bonne réponse pour le mot de passe enable ?+
6sK0_enable