Como definir o hash de criptografia específico ao criar um usuário Linux?

Como definir o hash de criptografia específico ao criar um usuário Linux?

Quero criar alguns usuários Linux no meu computador para testar JohnTheRipper em relação a diferentes tipos de senha (incluindo comprimento, conjunto de caracteres e método de hash de criptografia). Como posso especificar facilmente qual algoritmo de hash usar ao criar um novo usuário? Eu sei que o arquivo /etc/login.defs contém a variável ENCRYPT_METHOD que é definida como SHA512 por padrão em muitos sistemas Debian, mas gostaria de saber se é possível usar outro hash de criptografia sem modificar este arquivo.

ps: Tentei modificar este arquivo, reiniciando e criando um novo usuário com o comando adduser mas o usuário do método hash de criptografia é sempre o SHA512

obrigado

Responder1

O método mais fácil de configurar uma senha com um método de hash não padrão é primeiro fazer o hash manual da senha e, em seguida, fornecê-la ao configurar o usuário:

 adduser --password HASHEDPASSWORD user

Onde o HASHEDPASSWORD deve seguir os padrões do seu sistema para a cryptfunção ( man 3 crypt):

Se salt for uma string de caracteres começando com os caracteres "$id$" seguido por uma string terminada por "$":

         $id$salt$encrypted

então, em vez de usar a máquina DES, id identifica o método de criptografia usado e determina como o restante da string da senha é interpretado. Os seguintes valores de id são suportados:

          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)

O mesmo $5$salt$encrypted acontece com uma senha codificada SHA-256 e $6$salt$encrypteduma senha codificada SHA-512.

Para gerar um hash correto a partir da linha de comando, você pode procuraraqui.

Responder2

Após alguns testes, a melhor forma de criar usuários diferentes com algoritmos de hash diferentes é composta de 3 etapas:

  1. Crie o usuário sem senha
  2. Crie a senha no formato UNIX usando parâmetros especificados (salt, senha, algoritmo de hash)
  3. Defina a senha UNIX gerada em /etc/shadow

Aqui está um exemplo de usuárioteste1, com senha1234emd5como função hash.

sudo adduser test1 --disabled-password sudo mkpasswd --method=md5 --salt=coolsalt 1234 $1$coolsalt$qTXiZzGn08J.xYkV1ce1y1

e agora, basta editar o/etc/sombra

Antes de editar test1:*:16559:0:99999:7:::

Depois de editar test1:$1$coolsalt$qTXiZzGn08J.xYkV1ce1y1:16559:0:99999:7:::

Depois, você pode tentar fazer o login com este usuário para verificar se o formato está correto.

whoami root su test1 Password: 1234 whoami test1

Obrigado pela ajuda

informação relacionada