John the Ripper

Инструменты взлома, анализа и других несанкционированных действий,
а заодно и средства и техника защиты от них

Модераторы: Olej, vikos

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

John the Ripper

Непрочитанное сообщение Olej » 14 сен 2019, 17:32

John the Ripper - вскрыватель паролей, пропагандируемый прыщавыми хакерами как серебряная пуля против всяких UNIX-ов...
Разбираемся...
John the Ripper
John The Ripper (досл. Джон-потрошитель) — свободная программа, предназначенная для восстановления паролей по их хешам. Основное назначение программы — аудит слабых паролей в UNIX системах путём перебора возможных вариантов. Программа также может выполнять аудит NTLM хешей, Kerberos, и др. Существуют реализации под различные ОС. Весьма популярна из-за поддержки большого количества хешей, автораспознавания хеша и настраиваемого взломщика.
...
На 2012 год поддерживалось более 30 форматов в jumbo версии[1]. По состоянию на июль 2018 года JtR bleeding-jumbo версия поддерживает 262 формата[4].
На компьютерном сленге среди разработчиков JtR упоминается, как кровотечение.[
Страсти то какие!?...

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: John the Ripper

Непрочитанное сообщение Olej » 14 сен 2019, 17:42

Debian 10:

Код: Выделить всё

olej@ACER:~$ aptitude search john
p   fonts-johnsmith-induni                                        - OTF fonts with exhaustive set of Roman characters                      
p   golang-github-benbjohnson-tmpl-dev                            - Command line interface to Go's text/template library - dev package     
p   john                                                          - active password cracking tool                                          
p   john-data                                                     - active password cracking tool - character sets                         

Код: Выделить всё

olej@ACER:~$ sudo apt install john john-data
[sudo] пароль для olej: 
Чтение списков пакетов… Готово
Построение дерева зависимостей       
Чтение информации о состоянии… Готово
Следующие НОВЫЕ пакеты будут установлены:
  john john-data
Обновлено 0 пакетов, установлено 2 новых пакетов, для удаления отмечено 0 пакетов, и 1 пакетов не обновлено.
Необходимо скачать 4 498 kB архивов.
После данной операции объём занятого дискового пространства возрастёт на 7 906 kB.
Пол:1 http://deb.debian.org/debian buster/main amd64 john-data all 1.8.0-2 [4 293 kB]
Пол:2 http://deb.debian.org/debian buster/main amd64 john amd64 1.8.0-2+b1 [205 kB]
Получено 4 498 kB за 2с (2 838 kB/s)
Выбор ранее не выбранного пакета john-data.
(Чтение базы данных … на данный момент установлен 410101 файл и каталог.)
Подготовка к распаковке …/john-data_1.8.0-2_all.deb …
Распаковывается john-data (1.8.0-2) …
Выбор ранее не выбранного пакета john.
Подготовка к распаковке …/john_1.8.0-2+b1_amd64.deb …
Распаковывается john (1.8.0-2+b1) …
Настраивается пакет john-data (1.8.0-2) …
Настраивается пакет john (1.8.0-2+b1) …
Обрабатываются триггеры для man-db (2.8.5-2) …

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: John the Ripper

Непрочитанное сообщение Olej » 14 сен 2019, 17:58

Olej писал(а):Страсти то какие!?...
Обзор инструментов для вскрытия хэша: John the Ripper password cracker и MDCrack
30 марта 2017 в 19:06
На данный момент хэш можно вскрыть пятью способами: грубый перебор (брутфорс), подбор по словарю, по словарю с правилами (гибридная атака), rainbow таблицы (радужные таблицы) и криптоатака. Сами хэши можно разделить на обычные хэши, и хэши с солью (salt, «затравка»). Эта статья посвящена программам john и mdcrack. На их примере, также рассмотрим основные методы для реализации брутфорса.
Для тестирования скорости программы на вашем компьютере, запустите её с флагом '--test'. Результат будет выдан в c/s, т.е. в символах в секунду, а не в h/s (хэш в секунду), как это принято в других программах этого типа. Но каждый следующий символ образует новый пароль. А значит, перебирая, к примеру, 3500 символов в секунду, мы генерируем 3500 новых паролей в секунду. Следовательно, цифры, которые даёт команда john --test — это и есть хэши в секунду.

Код: Выделить всё

olej@ACER:~$ /sbin/john --test
Created directory: /home/olej/.john
Benchmarking: descrypt, traditional crypt(3) [DES 128/128 SSE2-16]... DONE
Many salts:	4261K c/s real, 4270K c/s virtual
Only one salt:	4072K c/s real, 4072K c/s virtual

Benchmarking: bsdicrypt, BSDI crypt(3) ("_J9..", 725 iterations) [DES 128/128 SSE2-16]... DONE
Many salts:	141798 c/s real, 141798 c/s virtual
Only one salt:	138163 c/s real, 138163 c/s virtual

Benchmarking: md5crypt [MD5 32/64 X2]... DONE
Raw:	13564 c/s real, 13564 c/s virtual

Benchmarking: bcrypt ("$2a$05", 32 iterations) [Blowfish 32/64 X2]... DONE
Raw:	796 c/s real, 796 c/s virtual

Benchmarking: LM [DES 128/128 SSE2-16]... DONE
Raw:	57859K c/s real, 57859K c/s virtual

Benchmarking: AFS, Kerberos AFS [DES 48/64 4K]... DONE
Short:	394803 c/s real, 427276 c/s virtual
Long:	1371K c/s real, 1414K c/s virtual

Benchmarking: tripcode [DES 128/128 SSE2-16]... DONE
Raw:	3636K c/s real, 3703K c/s virtual

Benchmarking: dummy [N/A]... DONE
Raw:	118568K c/s real, 120741K c/s virtual

Benchmarking: crypt, generic crypt(3) [?/64]... DONE
Many salts:	334272 c/s real, 336967 c/s virtual
Only one salt:	337689 c/s real, 338366 c/s virtual

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: John the Ripper

Непрочитанное сообщение Olej » 14 сен 2019, 18:20

Olej писал(а):Страсти то какие!?...
John The Ripper — полное руководство
Это весьма старая публикация ... но для проверки криптостойкости своих паролей - годится.

Описание John the Ripper - описание от "крутых" хакеров из-под Kali Linux, там много любопытных примеров (опций)...

После установки в Debian нам в подсказку опций есть:

Код: Выделить всё

olej@ACER:~/2019_WORK/HISTORY/09/14$ man john

JOHN(8)                                                 System Manager's Manual                                                 JOHN(8)

NAME
       john - a tool to find weak passwords of your users

SYNOPSIS
       john [options] password-files

DESCRIPTION
       This manual page documents briefly the john command.  This manual page was written for the Debian GNU/Linux distribution because
       the original program does not have a manual page.  john, better known as John the Ripper, is a tool to find  weak  passwords  of
       users in a server. John can use a dictionary or some search pattern as well as a password file to check for passwords. John sup‐
       ports different cracking modes and understands many ciphertext formats, like several DES variants, MD5 and blowfish. It can also
       be used to extract AFS and Windows NT passwords.
...

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: John the Ripper

Непрочитанное сообщение Olej » 14 сен 2019, 19:19

Теперь я хочу оценить криптостойкость (время на взлом) некоторых паролей...
Вот на таком, не самом медленном процессоре:

Код: Выделить всё

watbiz@ACER:~$ inxi -C
CPU:       Topology: Dual Core model: Intel Celeron G1840 bits: 64 type: MCP L2 cache: 2048 KiB 
           Speed: 2289 MHz min/max: 800/2800 MHz Core speeds (MHz): 1: 2794 2: 2794 

Изображение
При изобилии RAM (если это имеет какое-то значение):

Код: Выделить всё

watbiz@ACER:~$ free
              total        used        free      shared  buff/cache   available
Mem:       16302184     9161044      348580      929764     6792560     5875332
Swap:      12588024      142932    12445092
У меня есть один юзер (чтоб не заводить новых) ... которого не жалко:

Код: Выделить всё

olej@ACER:/etc$ cat /etc/passwd | grep watbiz
watbiz:x:1001:1001:,,,:/home/watbiz:/bin/bash
Вот я ему стану менять пароль, и смотреть как john станет его угадывать...
Настоящий интерес представляют оценки:
- до какой длины и сложности пароля его угадывает john без специальных ухищрений (дополнительных словарей, сочетания опций, ...) в осмысленное время;
- как зависит время угадывания от длины и словаря (сложности) пароля ... скорее всего - экспоненциально;

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: John the Ripper

Непрочитанное сообщение Olej » 14 сен 2019, 19:21

Olej писал(а):Вот я ему стану менять пароль, и смотреть как john станет его угадывать...

Код: Выделить всё

olej@ACER:~/2019_WORK/HISTORY/09/14$ sudo passwd watbiz  
Новый пароль : 
Повторите ввод нового пароля : 
passwd: пароль успешно обновлён

Код: Выделить всё

olej@ACER:~/2019_WORK/HISTORY/09/14$ sudo /sbin/unshadow /etc/passwd /etc/shadow > passwd.txt

olej@ACER:~/2019_WORK/HISTORY/09/14$ time /sbin/john -users:1001 passwd.txt 
Loaded 1 password hash (crypt, generic crypt(3) [?/64])
Press 'q' or Ctrl-C to abort, almost any other key for status
fdsa             (watbiz)
1g 0:00:00:58 100% 2/3 0.01698g/s 325.8p/s 325.8c/s 325.8C/s ssecca..sivle
Use the "--show" option to display all of the cracked passwords reliably
Session completed

real	0m58,894s
user	0m57,392s
sys	0m0,036s
4-х буквенный пароль "fdsa" (подряд на клавиатуре) потребовал 58 сек.

P.S. Попутно обращаем внимание на то, что для выполнения команды /sbin/unshadow нужно ещё и иметь права root, чтобы читать /etc/shadow:

Код: Выделить всё

olej@ACER:~/2019_WORK/HISTORY/09/14$ ls -l /etc/passwd /etc/shadow 
-rw-r--r-- 1 root root   2447 июл 30 14:19 /etc/passwd
-rw-r----- 1 root shadow 1500 сен 14 19:00 /etc/shadow

Код: Выделить всё

olej@ACER:~/2019_WORK/HISTORY/09/14$ tail /etc/shadow 
tail: невозможно открыть '/etc/shadow' для чтения: Отказано в доступе
Так что /etc/shadow нужно ещё суметь украсть!

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: John the Ripper

Непрочитанное сообщение Olej » 14 сен 2019, 23:19

Вот демонстрационный пример, 1 строка (1 пользователь) с ... "любимым народным паролем": "123"

Код: Выделить всё

olej@ACER:~/2019_WORK/HISTORY/09/14/John$ time /sbin/john 123.txt
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:09 100% 2/3 0.1055g/s 318.7p/s 318.7c/s 318.7C/s 123456..pepper
Use the "--show" option to display all of the cracked passwords reliably
Session completed

real	0m9,497s
user	0m9,023s
sys	0m0,012s
Он вскрывается за 9 сек. как видим.

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: John the Ripper

Непрочитанное сообщение Olej » 15 сен 2019, 11:02

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

Меняю пароль на простейший "a2", из 2-х символов:

Код: Выделить всё

olej@ACER:~/2019_WORK/HISTORY/09/14/John$ sudo passwd watbiz
Новый пароль : 
Повторите ввод нового пароля : 
passwd: пароль успешно обновлён
Выделяю для простоты одну интересующую строку для анализа (в файл с именем, совпадающим с паролем - чтоб не запутаться)

Код: Выделить всё

olej@ACER:~/2019_WORK/HISTORY/09/14/John$ sudo cat /etc/shadow | grep watbiz > a2.txt
И вперёд! ...

Код: Выделить всё

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
Подбор такого пароля потребовал 173 минуты процессорного времени, т.е. 2,88 часа!

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: John the Ripper

Непрочитанное сообщение Olej » 15 сен 2019, 11:11

Olej писал(а):Подбор такого пароля потребовал 173 минуты процессорного времени, т.е. 2,88 часа!
Погорячились "крутые кулцхакеры" ... с именем-фамилией ...
Olej писал(а):John The Ripper (досл. Джон-потрошитель)
Всё таки правильнее было бы назвать: John The Masturbator - досл. Джон-онанист. :-o :lol:

P.S. Характерно, что:
- популяризируют, описывают и распространяют John The Ripper, как "серебряную пулю", на тысячах сайтов, подавляющим образом, юные прыщавые выньдауны-кулцхакеры, в формате .exe программы...
- которой они собираются "вскрывать тот UNIX" (которого они, в большинстве своём, и в глаза свои не видели)...
- а сами при этом бодренько практикуются друг перед другом в угадывании ... паролей .zip и .rar, числовых PIN-кодов ... и прочей лобуды. :lol:
Вот такой вот моветон получается.
И никого из самой этой виндузятни он нисколько не смущает... :-(

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: John the Ripper

Непрочитанное сообщение Olej » 15 сен 2019, 12:02

Сложность пароля
Сложность пароля в компьютерной индустрии обычно оценивают в терминах информационной энтропии (понятие из теории информации), измеряемой в битах. Вместо количества попыток, которые необходимо предпринять для угадывания пароля, вычисляется логарифм по основанию 2 от этого числа, и полученное число называется количеством «битов энтропии» в пароле. Пароль со, скажем, 42-битной сложностью, посчитанной таким способом, будет соответствовать случайно сгенерированному паролю длиной в 42 бита. Другими словами, чтобы методом полного перебора найти пароль с 42-битной сложностью, необходимо создать 242 паролей и попытаться использовать их; один из 242 паролей окажется правильным. Согласно формуле при увеличении длины пароля на один бит количество возможных паролей удвоится, что сделает задачу атакующего в два раза сложнее. В среднем атакующий должен будет проверить половину из всех возможных паролей до того, как найдет правильный. См. закон больших чисел.
Энтропия на один символ (L=1) для разных наборов символов
Набор символов Количество символов, N Энтропия на один символ, H, биты
Арабские цифры (0-9) 10 3,3219
Цифры шестнадцатеричной системы счисления (0-9, A-F) 16 4,0000
Строчные буквы латинского алфавита (a-z) 26 4,7004
Арабские цифры и строчные буквы латинского алфавита (a-z, 0-9) 36 5,1699
Строчные и заглавные буквы латинского алфавита (a-z, A-Z) 52 5,7004
Арабские цифры, строчные и заглавные буквы латинского алфавита (a-z, A-Z, 0-9) 62 5,9542
Все печатные символы ASCII 95 6,5699
В 1999 году участники проекта Electronic Freedom Foundation взломали 56-битный шифр DES меньше чем за сутки, используя специально спроектированное аппаратное оборудование[4]. В 2002 году участники сообщества distributed.net окончили взлом 64-битного ключа, затратив 4 года, 9 месяцев и 23 дня[5]. А 12 октября 2011 года сообщество distributed.net оценило, что для взлома 72-битного ключа с использованием тогдашних возможностей потребуется 124,8 года[6]. Ввиду огромной сложности и из-за ограничений, связанных с нашим пониманием законов физики, нельзя ожидать, что какой-либо цифровой компьютер (или их комбинация) был способен взломать 256-битный шифр с помощью метода полного перебора[7]. Так или иначе, в теории существует возможность (алгоритм Шора), что квантовые компьютеры смогут решать такие задачи, однако возможно ли это будет на практике — неизвестно.
В 1999 году участники проекта Electronic Freedom Foundation взломали 56-битный шифр DES меньше чем за сутки, используя специально спроектированное аппаратное оборудование[4]. В 2002 году участники сообщества distributed.net окончили взлом 64-битного ключа, затратив 4 года, 9 месяцев и 23 дня[5]. А 12 октября 2011 года сообщество distributed.net оценило, что для взлома 72-битного ключа с использованием тогдашних возможностей потребуется 124,8 года[6]. Ввиду огромной сложности и из-за ограничений, связанных с нашим пониманием законов физики, нельзя ожидать, что какой-либо цифровой компьютер (или их комбинация) был способен взломать 256-битный шифр с помощью метода полного перебора[7]. Так или иначе, в теории существует возможность (алгоритм Шора), что квантовые компьютеры смогут решать такие задачи, однако возможно ли это будет на практике — неизвестно.
Всё это разбирательство по-новой с John the Ripper не напрасно - оно подтвердило уверенность, что даже 6-символьный пароль, ответственно подобранных, практически не вскрываем юными ублюдками.
По крайней мере, до завершения работ с квантовым компьютером. :lol:

Ответить

Вернуться в «Хакинг»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 1 гость