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).