Code pour générer des hachages de mot de passe «secrets» Cisco?

12

Quelqu'un a-t-il un pointeur sur le code (ou simplement l'algorithme) que Cisco utilise pour générer leurs hachages de mot de passe pour des choses comme «activer le secret»?

Je n'essaye pas de percer quoi que ce soit; J'essaie de générer la ligne "enable secret" appropriée avec un mot de passe en texte clair, pas de décoder une ligne "enable secret" existante avec un mot de passe haché. J'en ai besoin pour un générateur de fichier de configuration automatisé sur lequel je travaille ( Générateur de configuration Netomata ).

Fondamentalement, ce que je veux, c'est l'équivalent Cisco de la commande "htpasswd" utilisée pour les serveurs Web.

Par exemple, lorsque je mets la commande suivante avec un mot de passe en texte clair dans une configuration Cisco:

enable secret foobar

puis quand je fais une commande 'show config' (en supposant que j'ai "service de cryptage de mot de passe" activé), ce que je vois est quelque chose comme ceci:

enable secret 5 $1$pdQG$0WzLBXV98voWIUEdIiLm11

Je veux du code qui traduit "foobar" en "5 $ 1 $ pdQG $ 0WzLBXV98voWIUEdIiLm11", afin que je puisse générer les mots de passe déjà hachés dans mon outil de génération de configuration, plutôt que de mettre des mots de passe en texte clair dans les configurations générées et d'attendre que le routeur générer le hachage.

Je suppose que le "5" dans le résultat haché est une sorte d'identifiant d'algorithme de hachage. S'il existe d'autres algorithmes de hachage que Cisco utilise actuellement ou a historiquement utilisés, j'aimerais également avoir le code de ces algorithmes.

Brent Chapman
la source

Réponses:

18

Selon ce site Web , l'utilitaire de ligne de commande OpenSSL semble fournir les fonctionnalités dont vous avez besoin:

$ openssl passwd -1 -salt pdQG -table foobar
foobar  $1$pdQG$0WzLBXV98voWIUEdIiLm11
$

Et il y a probablement une fonction équivalente dans la bibliothèque elle-même.

Je ne sais pas si IOS vous oblige à utiliser des valeurs de sel spécifiques, mais techniquement, il n'y a aucune raison pour que cela soit tant que la chaîne que vous fournissez dans votre commande `` enable secret '' est un résumé de mot de passe MD5 valide. Si vous avez la possibilité de tester, je serais intéressé de connaître vos résultats.

Murali Suriar
la source
11

Cisco semble exiger un sel à 4 caractères. Par défaut, sans l' argument " -salt salt ", opensslgénèrera un sel à 8 caractères.

Vous pouvez utiliser opensslpour générer un hachage compatible Cisco de "texte clair" avec un sel aléatoire approprié de 4 caractères, comme ceci:

openssl passwd -salt `openssl rand -base64 3` -1 "cleartext"

La openssl rand -base64 3sous-commande " " génère 3 octets aléatoires puis les code au format base64, ce qui vous donne 4 caractères imprimables (exactement ce dont vous avez besoin pour un sel compatible Cisco).

Merci à Murali Suriar pour la réponse (ailleurs sur cette page) qui m'a permis de commencer sur la bonne voie vers cette solution.

Brent Chapman
la source
3

5 Je pense que cela fait référence au fait qu'il s'agit du type 5, qui utilise MD5, ce qui signifie que vous aurez besoin de 300 playstation 3 . Le type 7 est facilement craqué et ils ont même des scripts sur des sites Web pour cela. Cela pourrait être mieux demandé sur Stackoverflow.

Terry
la source
1
+1 pour la réponse amusante :) Curieusement, cela me donne aussi un peu d'espoir que peut-être maintenant, en utilisant cet article, je peux commencer à demander à mon patron de nous acheter des stations de jeu ..
Greg Meehan
3

Voici une excellente référence http://haxcess.com/2008/10/21/cisco-password-recovery/

En bout de ligne, le hachage est divisé en quelques parties

  -> Indicates MD5 algorithm
 |   -> Salt
 |  |     -> Salt + Password Hash
 |  |    |
$1$mERr$RchIrJirmCXltFBZ2l50l/

Voici une solution Perl qui a fait des merveilles dans le passé. Mettez ce bébé dans une boucle et laissez-le courir.

#!/usr/bin/perl
use Crypt::PasswdMD5;
my $hash = unix_md5_crypt('password','salt')
ZnArK
la source
1

«5» signifie que le mot de passe clair a été converti en mot de passe Cisco de type 5. Le mot de passe de type 5 est un algorithme basé sur MD5 (mais je ne peux pas vous dire comment le calculer, désolé). Le type 7 qui est utilisé lorsque vous effectuez un "activation du mot de passe" est un algorithme réversible bien connu. "chiffrement du mot de passe du service" assurez-vous simplement que le mot de passe ne sera pas stocké en clair (type 0)

Jetez un œil à http://en.wikipedia.org/wiki/Crypt_(Unix)#MD5-based_scheme et bonne chance :)

EDIT: Vous pouvez également consulter http://www.h4x3d.com/md5-and-crypt-password-generator/ , http://www.koders.com/c/fid530E8983791E1CB2AB90EAA69A68789FA2A83A6D.aspx et http: //www.cryptgenerator .de /

rayon
la source