1 votes

Générer le hachage du mot de passe samba de manière programmatique

Je me demandais s'il existait une commande Linux/Ubuntu standard pour générer des hachages de mots de passe SMB pour stdout . Pour les curieux, je souhaite gérer un ensemble de noms d'utilisateur et de mots de passe sur plusieurs machines (en utilisant Puppet), y compris l'accès via Samba (pour l'instant, je n'utilise pas quelque chose de plus général comme LDAP). Plus précisément, un équivalent de cette commande que j'utilise pour générer des entrées de mots de passe Linux mais pour SMB/Samba :

openssl passwd -1

8voto

James Mertz Points 390

En interne, Samba stocke le même Les hachages LM et NT comme le fait Windows, et qui sont utilisés pour l'authentification NTLM.

  • Le hachage NT utilise l'algorithme MD4, appliqué au mot de passe en codage UTF-16 Little Endian. Vous pouvez utiliser des outils ordinaires pour le calculer, par exemple :

    #!/usr/bin/env perl
    use Digest::MD4 qw(md4_hex);
    use Encode qw(encode);
    chomp(my $pw = <STDIN>);
    print md4_hex(encode("UTF-16LE", $pw)), "\n";

    ou OpenSSL :

    printf '%s' "$pw" | iconv -t utf16le | openssl md4
  • Le hash LM peut être craqué en quelques secondes. Personne ne l'utilise plus. Ne l'utilisez pas. Les versions modernes de Windows, ainsi que (espérons-le) Samba, ne stockent que le hachage LM d'un mot de passe "vide", quelle que soit la saisie.

Cependant, en incluant les hachages dans vos scripts. est une très mauvaise idée, pas beaucoup mieux que de garder les mots de passe eux-mêmes. Le hachage MD4 non salé est très facile à craquer si l'on veut obtenir le mot de passe original, et même sans cela, le hachage est équivalent à un mot de passe - quiconque possède le hachage peut effectuer une authentification NTLM sans avoir besoin du mot de passe lui-même. (Windows ne permet à personne, pas même aux administrateurs, d'accéder directement au SAM, de sorte qu'un sel était initialement considéré comme inutile).

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