Quelle ' est la différence entre ces hachages MD5?

Quelle est la différence entre ce format:

Hash found: admin:$1$$oLN1UCc1Y3T30QkMcKMSx0 

et le suivant:

5f4dcc3b5aa765d61d8327deb882cf99 

Et aussi,

Comment transformer le premier format de hachage en le second?

Merci à avance.

Commentaires

  • Je doute que le premier exemple ne soit quun hachage. Il semble quil contienne le nom dutilisateur en clair et éventuellement dautres informations . Où lavez-vous obtenu? Il nest pas vraiment possible de répéter sans connaître la valeur en texte clair.
  • Cest ' que je ' je me demande aussi. Mais jai compris cela après avoir exécuté routersploit sur mon routeur en utilisant Kali Linux et la sortie dit exactement que > > Hash found: admin:$1$$oLN1UCc1Y3T30QkMcKMSx0. Jai également trouvé un cas similaire ici link

Réponse

Le premier exemple ressemble à un formulaire fichier miroir à: ID (admin) Algorithme (1 = MD5) Sel (aucun) Hash (oLN1UCc1Y3T30QkMcKMSx0), avec le hachage dans ce qui semble être le format Base64.

Le second (5f4dcc3b5aa765d61d8327deb882cf99) semble être une chaîne hexadécimale de 128 bits cohérente avec le fait dêtre un hachage MD5 comme bien.

Cependant, en convertissant les deux en binaire & puis en revenant à leurs formats opposés, les deux hachages ne correspondent pas:

  • Base64 de la valeur binaire représentée par la chaîne hexadécimale (5f4dcc3b5aa765d61d8327deb882cf99) est X03MO1qnZdYdgyfeuILPmQ.

  • À linverse, la chaîne hexadécimale du hachage base64 (oLN1UCc1Y3T30QkMcKMSx0) est a0b3755027356374f7d1090c70a312c7.

     ------- Edit ----- 

Comme user1686 a souligné: oLN1UCc1Y3T30QkMcKMSx0 est MD5crypt, qui est un millier de tours de MD5 avec des extras à chaque tour. Si ces deux hachages proviennent en fait du même mot de passe, il devrait être possible de convertir le hachage MD5 pur en son équivalent no-salt MD5Crypt en contournant le premier calcul MD5 dans MD5Crypt et en lui fournissant le hachage au lieu du mot de passe.

Réponse

La partie après le dernier $ est encodée en base64, ce qui est une manière raisonnablement compacte (quatre caractères deviennent trois octets) pour représenter les données binaires sous forme de caractères courants et imprimables (pas de codes de contrôle ASCII ou tout ce qui nécessite le bit haut). Le deuxième hachage est simplement codé hexadécimal, ce qui est moins efficace (quatre caractères deviennent deux octets) mais plus facile à lire, en particulier pour les programmeurs (qui utilisent hexadécimal tout le temps).

EDIT: De plus, le premier lalgorithme est presque certainement md5 crypt , qui est un MD5 itéré avec quelques tâches supplémentaires. Ainsi, il ne va pas produire la même sortie que la base MD5 pour une entrée donnée. Et en effet, nous voyons que ce nest pas le cas: si vous convertissez la pièce après le dernier $ en hexadécimal, il sort a0b3755027356374f7d1090c70a312c7. Cela pourrait aussi (à du moins en partie) parce que je pense que md5crypt utilise un base64 personnalisé, qui a les mêmes caractères que base64 normal dans un ordre différent.

Le premier hachage est un exemple du format de mot de passe / etc / shadow. $1 signifie MD5crypt, et labsence de quoi que ce soit entre les deux caractères $ suivants signifie quil est non salé. Nous navons pas de telles informations pour la seconde; il pourrait être salé, ou éventuellement un mot de passe différent, un algorithme de hachage différent, ou les deux. Il est cependant plus probable que ce soit MD5 nu que md5crypt.

Modifié pour refléter la différence entre MD5 et md5crypt

Commentaires

  • Même si ' nest pas salé, $ 1 $ nest pas seulement un MD5 nu – il ' s md5crypt , ce qui implique 1000 tours de MD5 avec quelques autres assaisonnements ajoutés.
  • Le deuxième hachage est juste md5 (' mot de passe '). echo -n 'password' | md5sum produit 5f4dcc3b5aa765d61d8327deb882cf99

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *