¿Cómo configurar un hash de cifrado específico al crear un usuario de Linux?

¿Cómo configurar un hash de cifrado específico al crear un usuario de Linux?

Quiero crear algunos usuarios de Linux en mi computadora para probar JohnTheRipper con diferentes tipos de contraseñas (incluida la longitud, el conjunto de caracteres y el método hash de cifrado). ¿Cómo puedo especificar fácilmente qué algoritmo hash utilizar al crear un nuevo usuario? Sé que el archivo /etc/login.defs contiene la variable ENCRYPT_METHOD que está configurada en SHA512 de forma predeterminada en muchos sistemas Debian, pero sabría si es posible utilizar otro hash de cifrado sin modificar este archivo.

ps: intenté modificar este archivo, reiniciar y crear un nuevo usuario con el comando adduser pero el usuario del método hash de cifrado es siempre el SHA512

gracias

Respuesta1

El método más sencillo para configurar una contraseña con un método de hash no predeterminado es hacer hash manualmente la contraseña primero y luego proporcionar esa contraseña al configurar el usuario:

 adduser --password HASHEDPASSWORD user

Donde HASHEDPASSWORD debe seguir los estándares de su sistema para la cryptfunción ( man 3 crypt):

Si salt es una cadena de caracteres que comienza con los caracteres "$id$" seguidos de una cadena terminada en "$":

         $id$salt$encrypted

luego, en lugar de utilizar la máquina DES, id identifica el método de cifrado utilizado y esto determina cómo se interpreta el resto de la cadena de contraseña. Se admiten los siguientes valores de id:

          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)

También lo $5$salt$encrypted es una contraseña codificada SHA-256 y $6$salt$encrypteduna codificada SHA-512.

Para generar un hash correcto desde la línea de comandos, puedes miraraquí.

Respuesta2

Después de algunas pruebas, la mejor manera de crear diferentes usuarios con diferentes algoritmos hash se compone de 3 pasos:

  1. Crear el usuario sin contraseña
  2. Cree la contraseña en formato UNIX utilizando los parámetros especificados (salt, contraseña, algoritmo hash)
  3. Establezca la contraseña UNIX generada en /etc/shadow

Aquí un ejemplo de un usuario.prueba1, con contraseña1234ymd5como función hash.

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

y ahora, simplemente edita el/etc/sombra

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

Después de editar test1:$1$coolsalt$qTXiZzGn08J.xYkV1ce1y1:16559:0:99999:7:::

Después, puedes intentar iniciar sesión con este usuario para comprobar si el formato es correcto.

whoami root su test1 Password: 1234 whoami test1

Gracias por la ayuda

información relacionada