Вопросы по домену AD

Olej

New member
Сообщения
1 014
#21
Могу проверить и ваш пароль, но для этого потребуется время, потому что:
— Я духов вызывать могу из бездны!
— И я могу, и всякий это может. Вопрос лишь, явятся ль они на зов.
© Уильям Шекспир «Генрих IV»

Montfer, вы через недельку-другую подходите ... он "может" :ROFLMAO: и угадает за это время ваш простенький пароль ... если у него не сгорит процессор за эти недельку-другую непрерывной работы :eek:
 

oko

New member
Сообщения
107
#23
to Olej
С мудачизмом не помогу - у вас такой возраст, когда характер изменить практически не реально. Но, исходя из модус операнди за номером 2, советую зашить рот...

to Montfer
Все оказалось проще, чем ожидал:
root@debian-9-64 ~ # cat /root/rules.lst
user:$6$zy8qmfn5$p2PVWzwWiJaCKmGMvHeqc5o8ghh7hd/iacUeakWZV8ggCLyrGzLOwvVnLnbuZpNJF/EyMy2HFVu19Oo9b1ijy.:18092:0:99999:7:::

root@debian-9-64 ~ # john /root/rules.lst
Loaded 1 password hash (crypt, generic crypt(3) [?/64])
Press 'q' or Ctrl-C to abort, almost any other key for status
123 (user)
1g 0:00:00:07 100% 2/3 0.1336g/s 403.6p/s 403.6c/s 403.6C/s 123456..pepper
Use the "--show" option to display all of the cracked passwords reliably
Session completed
Надеюсь, такой пасс не на боевой системе. Хотя, возможно, john ошибся - удовлетворите мое любопытство :)
 

Montfer

New member
Сообщения
465
#24
to Olej
С мудачизмом не помогу - у вас такой возраст, когда характер изменить практически не реально. Но, исходя из модус операнди за номером 2, советую зашить рот...

to Montfer
Все оказалось проще, чем ожидал:
root@debian-9-64 ~ # cat /root/rules.lst
user:$6$zy8qmfn5$p2PVWzwWiJaCKmGMvHeqc5o8ghh7hd/iacUeakWZV8ggCLyrGzLOwvVnLnbuZpNJF/EyMy2HFVu19Oo9b1ijy.:18092:0:99999:7:::

root@debian-9-64 ~ # john /root/rules.lst
Loaded 1 password hash (crypt, generic crypt(3) [?/64])
Press 'q' or Ctrl-C to abort, almost any other key for status
123 (user)
1g 0:00:00:07 100% 2/3 0.1336g/s 403.6p/s 403.6c/s 403.6C/s 123456..pepper
Use the "--show" option to display all of the cracked passwords reliably
Session completed
Надеюсь, такой пасс не на боевой системе. Хотя, возможно, john ошибся - удовлетворите мое любопытство :)
Все верно. Пароль 123 с домашнего компа, где учусь работать с астрой

© Уильям Шекспир «Генрих IV»

Montfer, вы через недельку-другую подходите ... он "может" :ROFLMAO: и угадает за это время ваш простенький пароль ... если у него не сгорит процессор за эти недельку-другую непрерывной работы :eek:
Не, я ж не дурак, чтобы давать сложный пароль для проверки john.
 
Последнее редактирование:

Olej

New member
Сообщения
1 014
#25
Не, я ж не дурак, чтобы давать сложный пароль для проверки john.
Ну? Убедились?
Что до тех пор, пока вы будете пользовать "любимый народный пароль" 123 - угадайка John The Ripper его "вскроет" за считанные секунды. А вот подбросьте ему самый элементарный всего 2-х символьный пароль, скажем a2, и на процессоре с примерно 50000 переборов в секунду (john --test) ему потребуется (специально для вас проверил):
Код:
olej@ACER:~/2019_WORK/HISTORY/09/14/John$ time /sbin/john a2.txt
Loaded 1 password hash (crypt, generic crypt(3) [?/64])
Press 'q' or Ctrl-C to abort, almost any other key for status
a2               (watbiz)
1g 0:02:53:49 3/3 0.000095g/s 323.0p/s 323.0c/s 323.0C/s #..nikoh
Use the "--show" option to display all of the cracked passwords reliably
Session completed

real    173m49,256s
user    166m55,490s
sys    0m6,500s
2.5 часа!
А на внятно подобранном пароле 6 символов (не говоря уже о 8) - это полная безнадёга.

P.S. Это только у юной прыщавой виндузни John The Ripper - это "серебряная пуля". Они его там, у себя, используют его для вскрытия паролей из .docx, .zip, .rar, PIN-коды всякие числовые... А про UNIX/Linux они там, у себя, рассуждают, как правило, не видя "того UNIX" в глаза отродясь...

В конечном итоге ... у всей этой виндузятни серьёзные терминологические трудности, ущербный словарный запас ... я бы на их месте называл эту игрушку не John The Ripper, а правильно: John The Masturbator:ROFLMAO::eek:
 
Последнее редактирование:

Olej

New member
Сообщения
1 014
#26
А на внятно подобранном пароле 6 символов (не говоря уже о 8) - это полная безнадёга.
Так что тема получилась очень полезная ... хотя и совершенно не про то, что собирался изначально обсудить ТС... к сожалению, возможно.

1. Теперь вы знаете угрозу беспечного использования "любимых народных паролей"... Даже в самых безобидных случаях ("учусь работать").

2. И то, что в UNIX сами ваши пароли не хранятся нигде и никак.

3. Посмотрите сюда: Сложность_пароля. И вы легко можете оценить сложность и время тупого перебора паролей, если вы разумно его сформируете из словаря, например, "все печатные символы ASCII" (95 шт.):

- для 6 символов сложность: 6,5699×6 = 39,4194 бит, полный перебор 2**39,4194 = 735227615642 комбинаций, 1/2 вероятная величина переборов - 367613807821, при 30000, например, переборах в сек. (см. john --test) это потребует 12253793 сек. процессорного времени, или 3403 час., или 141 суток - пол года ... без сна и отдыха. :eek:

- для 8 символов, соответственно: 6,5699×8 = 52,5592 бит, 2**52,5592 = 6,635×10¹⁵ комбинаций, 3,3179×10¹⁵ вероятных переборов, 110597293125 сек. на их выполнение = 30721470 часов = 1280061 суток = 3507 лет! Столько не живут.


P.S. И это если использовать словарь "все печатные символы ASCII". А если вы его дополните символами кирилицы 33х2 шт., которые представлены в UNICODE UTF-8 по 2 байта на каждый (да и какой байт! - 0xD0) ... то это дело становится совершенно безнадёжным. :cry:

P.P.S. Так что можете пока спать спокойно... Пока, по крайней мере, не будет доведен до ума квантовый компьютер.
 
Последнее редактирование:

Montfer

New member
Сообщения
465
#27
Так что тема получилась очень полезная ... хотя и совершенно не про то, что собирался изначально обсудить ТС... к сожалению, возможно.

1. Теперь вы знаете угрозу беспечного использования "любимых народных паролей"... Даже в самых безобидных случаях ("учусь работать").

2. И то, что в UNIX сами ваши пароли не хранятся нигде и никак.

3. Посмотрите сюда: Сложность_пароля. И вы легко можете оценить сложность и время тупого перебора паролей, если вы разумно его сформируете из словаря, например, "все печатные символы ASCII" (95 шт.):

- для 6 символов сложность: 6,5699×6 = 39,4194 бит, полный перебор 2**39,4194 = 735227615642 комбинаций, 1/2 вероятная величина переборов - 367613807821, при 30000, например, переборах в сек. (см. john --test) это потребует 12253793 сек. процессорного времени, или 3403 час., или 141 суток - пол года ... без сна и отдыха. :eek:

- для 8 символов, соответственно: 6,5699×8 = 52,5592 бит, 2**52,5592 = 6,635×10¹⁵ комбинаций, 3,3179×10¹⁵ вероятных переборов, 110597293125 сек. на их выполнение = 30721470 часов = 1280061 суток = 3507 лет! Столько не живут.


P.S. И это если использовать словарь "все печатные символы ASCII". А если вы его дополните символами кирилицы 33х2 шт., которые представлены в UNICODE UTF-8 по 2 байта на каждый (да и какой байт! - 0xD0) ... то дело становится совершенно безнадёжным. :cry:

P.P.S. Так что можете пока спать спокойно... Пока, по крайней мере, не будет доведен до ума квантовый компьютер.
По мне так хэш пароля, зашифрованный пароль - одно и тоже.
Ну, если не прав, так и не претендую на истину в последней инстанции.
А по поводу временных затрат на брут: спс за подсчеты, но еще лет 10 назад брутил файл SAM своего компа ради интереса.
 

Olej

New member
Сообщения
1 014
#28
По мне так хэш пароля, зашифрованный пароль - одно и тоже.
Это принципиально различающиеся вещи:
- шифрование-дешифрование - это решение прямой и обратной математической задачи, алгоритмы которых известны и реализуемы;
- алгоритмической обратной задачи для восстановления исходного текста из хэша - не существует;
- таким образом, извлекать пароль из хэша можно только тупым перебором, "методом тыка" - сравнивая на каждом цикле результат с хэшем.
 

Montfer

New member
Сообщения
465
#29
Это принципиально различающиеся вещи:
- шифрование-дешифрование - это решение прямой и обратной математической задачи, алгоритмы которых известны и реализуемы;
- алгоритмической обратной задачи для восстановления исходного текста из хэша - не существует;
- таким образом, извлекать пароль из хэша можно только тупым перебором, "методом тыка" - сравнивая на каждом цикле результат с хэшем.
Интересно... получается, что шифрование - это если можно дешифровать. А если расшифровать нельзя, то это уже не шифрование, а хэширование? 0_о
Голова кругом
 

Olej

New member
Сообщения
1 014
#30
По мне так хэш пароля, зашифрованный пароль - одно и тоже.
Это хороший вопрос...
Аналогия: возведение в квадрат x*x - прямая операция, корень квадратный sqrt( x ) - обратная.
Прямая операция выполняется элементарно быстро.
Для обратной - вы можете изобрести алгоритм, иногда замечательно изобретательный ... как вам понравится вот такое, например, быстрое вычисление 1/sqrt( x ), которое придумал Грег Уолш где-то в середине 80-х:
Код:
float FastInvSqrt(float x) {
  float xhalf = 0.5f * x;
  int i = *(int*)&x;          // представим биты float в виде целого числа
  i = 0x5f3759df - (i >> 1);  // какого черта здесь происходит ?
  x = *(float*)&i;
  x = x*(1.5f-(xhalf*x*x));
  return x;
}
Но если вы вообще не знаете алгоритма решения обратной задачи, пусть и самый неэффективный, вы можете подбирать результат итерационно, что часто и делают для sqrt( x ) (формула Ньютона и др.). И когда вы можете сравнивать расстояние результата перебора и искомого значения - вы можете уменьшать шаг и достаточно быстро достичь сходимости.

Но в случае с подбором пароля для хэша вы даже не можете определять на каждом шаге насколько вы близки к результату. Вы можете только тупо перебирать в этой угадайке всё множество возможных значений.
А все эти атаки по словарю, гибридные режимы, радужные таблицы... , которыми понтуются юные кулхакеры и всяческие джоны-мастурбаторы - это только переупорядочение порядка тупого перебора в надежде на более вероятные комбинации и ускорение перебора.
 

Olej

New member
Сообщения
1 014
#31
получается, что шифрование - это если можно дешифровать. А если расшифровать нельзя, то это уже не шифрование
Естественно, Ватсон! ;)
Вы могли слышать, наверное, математически оправданное утверждение из теории информации, что в белом шуме (так же как и в десятичной записи числа π, в любой случайной последовательности) содержится вся информация, которая существовала, существует и будет существовать в природе: вся БСЭ, "Война и мир", весь Шекспир...
Беда только в том, что её оттуда нельзя извлечь... нет такого способа.
 
Последнее редактирование:

Montfer

New member
Сообщения
465
#32
Это хороший вопрос...
Аналогия: возведение в квадрат x*x - прямая операция, корень квадратный sqrt( x ) - обратная.
Прямая операция выполняется элементарно быстро.
Для обратной - вы можете изобрести алгоритм, иногда замечательно изобретательный ... как вам понравится вот такое, например, быстрое вычисление 1/sqrt( x ), которое придумал Грег Уолш где-то в середине 80-х:
Код:
float FastInvSqrt(float x) {
  float xhalf = 0.5f * x;
  int i = *(int*)&x;          // представим биты float в виде целого числа
  i = 0x5f3759df - (i >> 1);  // какого черта здесь происходит ?
  x = *(float*)&i;
  x = x*(1.5f-(xhalf*x*x));
  return x;
}
Но если вы вообще не знаете алгоритма решения обратной задачи, пусть и самый неэффективный, вы можете подбирать результат итерационно, что часто и делают для sqrt( x ) (формула Ньютона и др.). И когда вы можете сравнивать расстояние результата перебора и искомого значения - вы можете уменьшать шаг и достаточно быстро достичь сходимости.

Но в случае с подбором пароля для хэша вы даже не можете определять на каждом шаге насколько вы близки к результату. Вы можете только тупо перебирать в этой угадайке всё множество возможных значений.
А все эти атаки по словарю, гибридные режимы, радужные таблицы... , которыми понтуются юные кулхакеры и всяческие джоны-мастурбаторы - это только переупорядочение порядка тупого перебора в надежде на более вероятные комбинации и ускорение перебора.
Про брутфорс всё понятно. Вопрос в терминологии.
 

Montfer

New member
Сообщения
465
#34
Вам не понравился: John The Masturbator ? :unsure:
Чем он может нравиться или не нравиться? Он выполняет свою роль и всполне работоспособен. Конечно, ректальный криптоанализ гораздо эффективней.. Но от этого второй - не начинает мне нравиться больше или меньше..
 

Montfer

New member
Сообщения
465
#35
Раз уж тему загадили, продолжу это непотребное дело.
Как происходит защита пароля? Я понял это так: при вводе символов (пароля) сначала происходит шифрование, а с шифрованого значения снимается хэш. Так ли это?
 
Последнее редактирование:

Olej

New member
Сообщения
1 014
#36
Как происходит защита пароля? Я понял это так: при вводе символов (пароля) сначала происходит шифрование, а с шифрованого значения снимается хэш. Так ли это?
Вы можете сами попрактиковаться и поэкспериментировать (последнее поле параметров - это ваш любимый пароль 123):
Код:
olej@astra:~$ mkpasswd -m sha-512 --salt=zxc12345vbnm 123
$6$zxc12345vbnm$/MRL9KqNdzy1xEKNvtW/o5kSxXcJ8yQ551OyuW8R.XwOHTQXE.qJSKJdhumG/XWOVfaeKFaJCznZ//4iZrait0
Результат:
$ - разделитель полей
1-е - это метод хэширования (указанный опцией -m команды), имеющиеся в вашей системе методы можете см. так:
Код:
olej@astra:~$ mkpasswd -m help
Доступные методы:
des     standard 56 bit DES-based crypt(3)
md5     MD5
sha-256 SHA-256
sha-512 SHA-512
2-е поле - salt, с которым сворачивается строка пароля
3-е поле - результирующий хэш - это именно то, что вас интересовало.
 

Montfer

New member
Сообщения
465
#37
Вы можете сами попрактиковаться и поэкспериментировать (последнее поле параметров - это ваш любимый пароль 123):
Код:
olej@astra:~$ mkpasswd -m sha-512 --salt=zxc12345vbnm 123
$6$zxc12345vbnm$/MRL9KqNdzy1xEKNvtW/o5kSxXcJ8yQ551OyuW8R.XwOHTQXE.qJSKJdhumG/XWOVfaeKFaJCznZ//4iZrait0
Результат:
$ - разделитель полей
1-е - это метод хэширования (указанный опцией -m команды), имеющиеся в вашей системе методы можете см. так:
Код:
olej@astra:~$ mkpasswd -m help
Доступные методы:
des     standard 56 bit DES-based crypt(3)
md5     MD5
sha-256 SHA-256
sha-512 SHA-512
2-е поле - salt, с которым сворачивается строка пароля
3-е поле - результирующий хэш - это именно то, что вас интересовало.
О, да. Я прочитал про структуру записи в shadow перед тем, как задать вопрос.
Теперь второй вопрос. Хэш одних и тех же значений должен совпадать, если он расчитан по одному и тому же алгоритму (а в астре это SHA-512). Но на практике в shadow не совпадает. Значит, пароль 123 для одной учетной записи шифруется по одному алгоритму, а для второй - по другому алгоритму. Так ли это?
Этот вопрос определенной практической пользы для меня не принесет. Просто интересно.
 

Olej

New member
Сообщения
1 014
#38
Кстати, так происходит во всех "нормальных", не защищённых Linux (выше показано, как видно, Astra Linux CE).
В Astra Linux SE они как-то что-то поменяли, что было бы вполне логично ... у них просто нет mkpasswd:
Код:
olej@astra:/bin$ sudo find / -name mkpasswd
olej@astra:/bin$
 

Olej

New member
Сообщения
1 014
#39
Но на практике в shadow не совпадает. Значит, пароль 123 для одной учетной записи шифруется по одному алгоритму, а для второй - по другому алгоритму. Так ли это?
Нет, это не так. Я в примере выше принудительно определил опцию --salt=zxc12345vbnm. И сколько бы раз я не повторял команду - результат будет тот же.
Но реально mkpasswd вызывается без предопределённого --salt= , и тогда при каждом последовательном вызове берётся случайное значение строки salt (даже длина её от раза к разу - случайная).
P.S. Понятно, почему требуется хорошая энтропия генератора случайных значений... Но в Linux, с его новыми генераторами, с этим - очень неплохо.

Тогда последовательные, друг за другом, вызовы mkpasswd будут выглядеть так:
Код:
olej@astra:~$ mkpasswd -m sha-512 123
$6$OyH3td/5X$WLXAoa2pUbql4A1jXQqt2G8nFlzKVNq30ADuZasEh.tMEIUNS.UGTPtuu4Up.soxNdPnfU8zrDpWrkU.opmLF/

olej@astra:~$ mkpasswd -m sha-512 123
$6$sXWxZTMDbmho9Z$UUy87d1DKWO6yLRMnUB09YhF97DG8/uhSd91N2XxC4h4Dak0nCqEtuuo8JL7dRXVE4pfigA7BO3XEpNp3fZHF1

olej@astra:~$ mkpasswd -m sha-512 123
$6$hnZEgRiW5$jyQTLVCMIoRy6zdu5Bj5UIeH8.MZE5wyoIGhriA/.GM.MIX23n5adMFhdQslCdFh.nV/8qIyDHoFkQ8DqSYog0
Как видите - с каждым вызовом новое значение.
Именно поэтом само значение строки salt вписывается в результирующую строку в /etc/shadow.

Тогда логика проверки при каждом вводе пароля элементарно простая:
- запустить mkpasswd ...
- с методом (опция -m) из 1-й подстроки из строки /etc/shadow
- с salt (опция --salt) из 1-й подстроки
- и если 3-я подстрока в точности совпадёт с 3-й подстрокой результата mkpasswd - то "состоялось"
- а иначе "гнать прочь"
 
Последнее редактирование:

Montfer

New member
Сообщения
465
#40
Нет, это не так. Я в примере выше принудительно определил опцию --salt=zxc12345vbnm. И сколько бы раз я не повторял команду - результат будет тот же.
Но реально mkpasswd вызывается без предопределённого --salt= , и тогда при каждом последовательном вызове берётся случайное значение строки salt (даже длина её от раза к разу - случайная). Тогда последовательные, друг за другом, вызовы mkpasswd будут выглядеть так:
Код:
olej@astra:~$ mkpasswd -m sha-512 123
$6$OyH3td/5X$WLXAoa2pUbql4A1jXQqt2G8nFlzKVNq30ADuZasEh.tMEIUNS.UGTPtuu4Up.soxNdPnfU8zrDpWrkU.opmLF/

olej@astra:~$ mkpasswd -m sha-512 123
$6$sXWxZTMDbmho9Z$UUy87d1DKWO6yLRMnUB09YhF97DG8/uhSd91N2XxC4h4Dak0nCqEtuuo8JL7dRXVE4pfigA7BO3XEpNp3fZHF1

olej@astra:~$ mkpasswd -m sha-512 123
$6$hnZEgRiW5$jyQTLVCMIoRy6zdu5Bj5UIeH8.MZE5wyoIGhriA/.GM.MIX23n5adMFhdQslCdFh.nV/8qIyDHoFkQ8DqSYog0
Как видите - с каждым вызовом новое значение.
Именно поэтом само значение строки salt вписывается в результирующую строку в /etc/shadow.

Тогда логика проверки при каждом вводе пароля элементарно простая:
- запустить mkpasswd ...
- с методом (опция -m) из 1-й подстроки из строки /etc/shadow
- с salt (опция --salt) из 1-й подстроки
- и если 3-я подстрока в точности совпадёт с 3-й подстрокой результата mkpasswd - то "состоялось"
- а иначе "гнать прочь"
Ммм, значит, эта самая соль сначала присоединяется с паролю (ну или шифрованому паролю), а потом снимается хэш?