Как задать указанный хэш шифрования при создании пользователя Linux?

Как задать указанный хэш шифрования при создании пользователя Linux?

Я хочу создать несколько пользователей Linux на своем компьютере, чтобы протестировать JohnTheRipper против различных типов паролей (включая длину, набор символов и метод хэширования шифрования). Как мне легко указать, какой алгоритм хэширования использовать при создании нового пользователя? Я знаю, что файл /etc/login.defs содержит переменную ENCRYPT_METHOD, которая по умолчанию установлена ​​на SHA512 во многих системах Debian, но я хотел бы знать, можно ли использовать другой хэш шифрования без изменения этого файла.

ps: Я пробовал изменить этот файл, перезагрузился и создал нового пользователя с помощью команды adduser, но метод хэширования шифрования user всегда SHA512

Спасибо

решение1

Самый простой способ задать пароль с нестандартным методом хеширования — это сначала вручную хешировать пароль, а затем указать этот пароль при настройке пользователя:

 adduser --password HASHEDPASSWORD user

Где HASHEDPASSWORD должен соответствовать стандартам вашей системы для cryptфункции ( man 3 crypt):

Если соль представляет собой строку символов, начинающуюся с символов «$id$», за которыми следует строка, заканчивающаяся на "$":

         $id$salt$encrypted

то вместо использования машины DES, id идентифицирует используемый метод шифрования, и это затем определяет, как интерпретируется остальная часть строки пароля. Поддерживаются следующие значения 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)

То же самое $5$salt$encrypted касается пароля, закодированного с помощью SHA-256, и $6$salt$encryptedпароля, закодированного с помощью SHA-512.

Чтобы сгенерировать правильный хеш из командной строки, вы можете посмотретьздесь.

решение2

После некоторых тестов было установлено, что наилучший способ создания разных пользователей с разными алгоритмами хеширования состоит из 3 шагов:

  1. Создать пользователя без пароля
  2. Создайте пароль в формате UNIX, используя указанные параметры (соль, пароль, алгоритм хеширования)
  3. Установите сгенерированный пароль UNIX в /etc/shadow

Вот пример пользователятест1, с паролем1234иmd5как функция хеширования.

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

и теперь просто отредактируйте/etc/тень

Перед редактированием test1:*:16559:0:99999:7:::

После редактирования test1:$1$coolsalt$qTXiZzGn08J.xYkV1ce1y1:16559:0:99999:7:::

После этого вы можете попробовать войти под этим пользователем, чтобы проверить правильность формата.

whoami root su test1 Password: 1234 whoami test1

Спасибо за помощь

Связанный контент