LINUX.ORG.RU

Что за тип HASH у пароля из shadow $5hWbgtJAD42g?

 ,


1

1

Привет

У роутера в shadow файле вот такакой пароль
root:$5hWbgtJAD42g:12571:0:99999:7:::

Что это за тип такой? Согласно мануалу $5 это sha256, но там должно быть $5$.... и значительно длинее...

Это что-то кастомное?

Ответ на: комментарий от Spider55

Кстати, да. Выглядит, как будто неправильно вызвали crypt. Хотели получить sha256, но неправильно передали соль, которая должна начинается с $id$ для sha256, но потеряли второй $. И получили этот «странный» хеш.

anonymous
()

Странная хрень - по идее это DES, но первые два символа это соль, но соль не может содержать знак $. Так что ИМНО это что-то самобытное.

vitus@vitus-home:/tmp$ echo -n 'password' | mkpasswd  -m DES -S xx -s
xxj31ZMTZzkVA
vitus@vitus-home:/tmp$ echo -n 'root' | mkpasswd  -m DES -S '$5' -s
crypt: Недопустимый аргумент
vitus@vitus-home:/tmp$ echo -n 'root' | mkpasswd  -m DES -S '5$' -s
crypt: Недопустимый аргумент
vtVitus ★★★★★
()
Ответ на: комментарий от vtVitus

Надо проверить на musl, его реализация crypt вроде пропускает почти любые символы

https://git.musl-libc.org/cgit/musl/tree/src/crypt/crypt_des.c#n670

/*
 * When we choose to "support" invalid salts, nevertheless disallow those
 * containing characters that would violate the passwd file format.
 */
static inline int ascii_is_unsafe(unsigned char ch)
{
	return !ch || ch == '\n' || ch == ':';
}

anonymous
()
Ответ на: комментарий от anonymous

glibc

https://sourceware.org/git?p=glibc.git;a=blob;f=crypt/crypt_util.c;h=8cff87b458acc971e16b4c133ee5f70803aa9b97;hb=34a5a1460e9c05d6035bfbde327ab6d45f78958b#l584

/*
 * Return false iff C is in the specified alphabet for crypt salt.
 */

static bool
bad_for_salt (char c)
{
  switch (c)
    {
    case '0' ... '9':
    case 'A' ... 'Z':
    case 'a' ... 'z':
    case '.': case '/':
      return false;

    default:
      return true;
    }
}
anonymous
()

Тот же формат, что и в обычном htpasswd. 13 символов, начинается с $, дальше первые два - соль

Когда-то очень давно это ещё применялось в shadow. Возможно, rhel4 или ещё древнее

Можно такой создать через htpasswd, а можно через openssl passwd -crypt -salt XX, но openssl нужен старый

router ★★★★★
()
Последнее исправление: router (всего исправлений: 1)
Ответ на: комментарий от router

Прикол, в актуальных дистрибутивах из john-the-riper и hascat убрали этот алгоритм. В каком-то смысле он теперь тоже безопасный, скрипкидисы поленятся собирать старую версию :D

router ★★★★★
()