71 votes

Comment créer un mot de passe haché SHA-512 pour shadow ?

Les questions SF précédentes que j'ai vues ont conduit à des réponses qui produisent un mot de passe haché MD5.

Quelqu'un a-t-il une suggestion pour produire un mot de passe haché SHA-512 ? Je préférerais une ligne unique plutôt qu'un script mais, si un script est la seule solution, c'est bien aussi.

Mise à jour

Remplacement des versions précédentes de py2 par celle-ci :

python3 -c "import crypt;print(crypt.crypt(input('clear-text pw: '), crypt.mksalt(crypt.METHOD_SHA512)))"

0voto

Nate Points 8984
#!/usr/bin/env python

import getpass

from passlib.hash import sha512_crypt

if __name__ == "__main__":
    passwd = getpass.getpass('Password to hash: ')
    hash = sha512_crypt.encrypt(passwd)

    print hash

Vous pouvez le cloner depuis mon dépôt github si vous le souhaitez : https://github.com/antoncohen/mksha

0voto

AnUbuntuUser Points 21

Ce n'est pas une phrase toute faite, mais ça peut aider quelqu'un :

import crypt, getpass, pwd, string, sys, random
randomsalt = ""
password = getpass.getpass()
choices = string.ascii_uppercase + string.digits + string.ascii_lowercase
for _ in range(0,8):
    randomsalt += random.choice(choices)
print crypt.crypt(password, '$6$%s$' % randomsalt)

0voto

Wyzard Points 16284
$ htpasswd -c /tmp/my_hash user1
New password: 
Re-type new password: 
Adding password for user user1
$ cat /tmp/my_hash
user1:$apr1$oj1ypcQz$4.6lFVtKz2nr8acsQ8hD30

Évidemment, vous ne saisissez que le deuxième champ, et vous pouvez supprimer le fichier une fois que vous l'avez ajouté à l'ombre ou pour l'utiliser avec sudo (toujours très probablement l'ombre).

0voto

joeomniback Points 1

Jetez un coup d'oeil à la page de manuel de crypt (3) et je pense que vous constaterez que l'outil de cryptage a été mis à jour pour utiliser la glibc et sha256 ($5) et sha512 ($6), des tours multiples, un sel beaucoup plus grand, et ainsi de suite.

Il est clair que SHA512 est pertinent pour le fonctionnement de /etc/shadow.

Cela dit, cette page web a été très utile - en particulier le MKPASSWD , qui a résolu MON problème.

Étant donné un mot de passe potentiellement "perdu", je peux utiliser MKPASSWD et le sel, pour générer le hachage SHA512, et confirmer/refuser une liste de mots de passe candidats.

Je voudrais utiliser John the ripper - mais au moins sur mon matériel (Raspberry Pi) et mon budget (rien) - John ne peut pas le faire (il ne semble pas supporter les trucs avancés de cryptage/glibc dans la version libre de raspbian.

Remarquez, puisque j'ai suffisamment de droits pour lire/écrire /etc/shadow, je pourrais simplement écraser le hash, et continuer ma vie... c'est un exercice académique.


NOTES Notes de la glibc La version glibc2 de cette fonction prend en charge des algorithmes de chiffrement supplémentaires. algorithmes de chiffrement supplémentaires.

   If salt is a  character  string  starting  with  the  characters
   "$id$" followed by a string terminated by "$":

          $id$salt$encrypted

   then instead of using the DES machine, id identifies the encryp
   tion method used and this then determines how the  rest  of  the
   password  string is interpreted.  The following values of id are
   supported:

          ID  | Method

          1   | MD5
          2a  | Blowfish (not in mainline glibc; added in some
              | Linux distributions)
          5   | SHA-256 (since glibc 2.7)
          6   | SHA-512 (since glibc 2.7)

   So  $5$salt$encrypted  is  an  SHA-256  encoded   password   and
   $6$salt$encrypted is an SHA-512 encoded one.

0voto

Liviu Points 1

Si vous avez besoin d'une alternative aux one-liners écrits en perl/Python, mkpasswd est un bon choix. Bien qu'il soit inclus dans le paquet whois de Debian, il est absent des systèmes CentOS/RHEL. J'ai modifié la version Debian de mkpasswd et inclus un mécanisme de génération de sel plus puissant basé sur OpenSSL. Le binaire résultant préserve entièrement tous les paramètres de ligne de commande de la version Debian. Le code est disponible sur github et devrait compiler sur n'importe quelle version de Linux : mkpasswd

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X