Internamente, o Samba armazena os mesmos LM e NT hashes como o Windows faz, e que são usados para autenticação NTLM.
-
O hash do NT usa o algoritmo MD4, aplicado à senha na codificação UTF-16 Little Endian. Você pode usar ferramentas comuns para calculá-lo, por exemplo:
#!/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
-
O hash LM pode ser quebrado em segundos. Ninguém mais usa isso. Não use isso. Versões modernas do Windows, bem como (esperançosamente) o Samba, armazenam apenas o hash LM de uma senha 'em branco', independentemente da entrada.
No entanto, incluir os hashes como parte de seus scripts é uma idéia muito ruim, não muito melhor do que manter as próprias senhas. O hash MD4 sem sal é muito fácil de decifrar se alguém quiser obter a senha original e, mesmo sem isso, o hash é equivalente à senha - qualquer um que tenha o hash pode executar a autenticação NTLM sem precisar da própria senha. (O Windows não permite que ninguém, nem mesmo os administradores, acessem o SAM diretamente, portanto, um sal foi inicialmente considerado desnecessário.)