John the Ripper


Описание John the Ripper

John the Ripper jumbo - продвинутый офлайн взломщик паролей, который поддерживает сотни типов хэшей и шифров и работает на многих операционных системах, процессорах, графических процессорах и даже некоторых FPGA.

John the Ripper создан быть многофункциональным и быстрым. Он совмещает несколько режимов взлома в одной программе и полностью настраиваем под ваши конкретные нужды (вы даже можете определить пользовательские режимы взлома используя встроенную поддержку компилятора подмножества C). Также John доступен на нескольких разных платформах, что даёт вам возможность использовать одинаковый взломщик везде (вы даже можете продолжить сессию взлома, которую вы начали на другой платформе).

Из коробки John поддерживает (и автоматически определяет) следующие типы хешей Unix crypt(3): традиционные основанные на DES, "bigcrypt", BSDI расширенные основанные на DES, основанные на FreeBSD MD5 (также используются на Linux и в Cisco IOS) и OpenBSD основанные на Blowfish (теперь также используются на некоторых дистрибутивах Linux и поддерживаются последними версиями Solaris). Также из коробки поддерживаются хеши Kerberos/AFS и Windows LM (основаны на DES), а также основанные на DES трипкоды.

При запуске на дистрибутивах Linux с glibc 2.7+, John 1.7.6+ дополнительно поддерживает (и автоматически определяет) хеши SHA-crypt (которые действительно используются последними версиями Fedora и Ubuntu), с опциональной параллелизацией OpenMP (требует GCC 4.2+, который должен быть явно подключён во время компиляции путём раскомментирования строки со свойством OMPFLAGS ближе к началу файла Makefile).

По аналогии, когда запущен на последних версиях Solaris, John 1.7.6+ поддерживает и автоматически определяет хеши SHA-crypt и SunMD5 с опциональной параллелизацией OpenMP (требует GCC 4.2+ или последнюю Sun Studio, которые должны быть очевидно подключены во время компиляции путём раскомментирования строки со свойством OMPFLAGS в начале файла Makefile и во время выполнения настройках переменной окружения OMP_NUM_THREADS на требуемое количество потоков).

John the Ripper Pro добавляет поддержку для Windows NTLM (основаны на MD4) и хешей с солью Mac OS X 10.4+ SHA-1.

«Улучшенная сообществом» версия — jumbo добавляет поддержку намного большего типов хешей паролей, включая Windows NTLM (основан на MD4), Mac OS X 10.4-10.6 хеши с солью SHA-1, Mac OS X 10.7 хеши с солью SHA-512, сырые MD5 и SHA-1, произвольные основанные на MD5 типы хешей паролей от «веб приложений», хеши используемые базами данных SQL (MySQL, MS SQL, Oracle) и некоторыми серверами LDAP, несколько типов хешей используемых в OpenVMS, хеши паролей Eggdrop IRC bot, и множество других типов хешей, а также много файлов не-хешей, таких как приватные ключи OpenSSH, файлы S/Key skeykeys, Kerberos TGT, PDF файлы, ZIP (классический PKZIP и WinZip/AES) и архивы RAR.

В отличие от более старых взломщиков, John обычно не использует процедуры в стиле crypt(3). Вместо этого он имеет свои собственные высоко оптимизированные модули для различных типов хешей и процессорных архитектур. Некоторые из используемых алгоритмов, таких как bitslice DES, даже не могут имет реализацию внутри crypt(3) API; они требуют более мощных интерфейсов, таких какой используется в John. Кроме того, есть процедуры на языке Ассемблер для нескольких процессорных архитектур, наиболее важные для x86-64 и x86 с SSE2.

John the Ripper является активно развивающейся программой. Пакет John the Ripper (версия jumbo от сообщества) поставляется с большим количеством вспомогательных утилит. Среди этих утилит программы для генерации (извлечения) хеша. Этот хеш используется для взлома пароля в John the Ripper. Сторонние программы для взлома паролей, например, Hashcat, также работают с хешами, извлечёнными с помощью утилит из пакета John the Ripper.

Утилиты, включённые в базовый John the Ripper:

  • mailer – Скрипт предупреждает по почте пользователей об их слабых паролях
  • john – взломщик паролей John the Ripper
  • unafs – Скрипт для предупреждения пользователей об их слабых паролях
  • unshadow – Комбинирует файлы passwd и shadow
  • unique – Удаляет дубликаты из словаря

В версии от сообщества намного больше вспомогательных программ и утилит.

Домашняя страница: http://www.openwall.com/john/

GitHub: https://github.com/openwall/john

Автор: Solar Designer

Лицензия: GPLv2

Справка по John the Ripper

Использование:

john [ОПЦИИ] [ФАЙЛЫ-ХЕШЕЙ]

Опции:

--help                     вывод справки
--single[=РАЗДЕЛ[,..]]     режим «единого взлома» использует стандартные или именные правила
--single=:rule[,..]        то же самое, но с использованием "immediate" правил(а)
--single-seed=СЛОВО[,СЛОВО] добавить статичное seed слово (или слова) для всех солей в режиме взлома single
--single-wordlist=ФАЙЛ     *короткий* словарь со статичными seed словами/морфемами
--single-user-seed=ФАЙЛ    словарь с seed на каждое имя пользователя (в формате 
                           пользователь:пароль(и))
--single-pair-max=N        переопределить макс. количество сгенерированных пар слов (6)
--no-single-pair           отключить генерацию пар единичных слов
--[no-]single-retest-guess перезапись конфигурации для SingleRetestGuess
--wordlist[=СЛОВО] --stdin режим «атака по словарю», считывает пароли из ФАЙЛА или stdin (стандартного ввода)
                  --pipe   как и --stdin, но массовое чтение и позволяет правила
--rules[=РАЗДЕЛ[,..]]      включает правила модификации слов (для режимов «атака по словарю»
                           или PRINCE), использует стандартные или именные правила
--rules=:rule[;..]]        то же самое, но с использованием "immediate" правил(а)
--rules-stack=РАЗДЕЛ[,..]  стековые правила, применяются после обычных правил или к
                           режимам, которые в противном случае не поддерживают правила
--rules-stack=:rule[;..]   то же самое, но с использованием "immediate" правил(а)
--rules-skip-nop           пропустить любые NOP ":" правила (вы уже запустили без правила)
--loopback[=ФАЙЛ]          как --wordlist, но извлекает пароли из файла .pot
--mem-file-size=РАЗМЕР     размер порога для предварительно загруженного словаря (по умолчанию 2048 MB)
--dupe-suppression         удаляет все дубли в словаре (и использует предварительную загрузку)
--incremental[=РЕЖИМ]      режим "incremental" [с использованием раздела РЕЖИМ]
--incremental-charcount=N  перезаписать CharCount (счётчик символов) для режима incremental
--external=РЕЖИМ           внешний режим или фильтр слов
--mask[=МАСКА]             режим взлома по маске с МАСКОЙ (или стандартной из john.conf)
--markov[=ОПЦИИ]           Режим "Markov" (смотрите doc/MARKOV)
--mkv-stats=ФАЙЛ           файл статистик "markov" (смотрите doc/MARKOV)
--prince[=ФАЙЛ]            режим PRINCE, считывает слова из ФАЙЛА
--prince-loopback[=ФАЙЛ]   получить слова из файла .pot
--prince-elem-cnt-min=N    минимальное число элементов на цель (1)
--prince-elem-cnt-max=[-]N максимальное число элементов на цель (отрицательное N является
                           относительным к длине слова) (8)
--prince-skip=N            пропуск при инициализации
--prince-limit=N           ограничение на количество сгенерированных кандидатов
--prince-wl-dist-len       рассчитать распределение длины из списка слов
--prince-wl-max=N          загрузить только N слов из словаря ввода
--prince-case-permute      переставить регистр первой буквы
--prince-mmap              memory-map infile (недоступен с перестановкой регистра)
--prince-keyspace          просто показать общее пространство ключей, которое будет создано
                           (без учета пропуска и лимита)
--subsets[=СИМВОЛЫ]        режим "subsets" (смотрите doc/SUBSETS)
--subsets-required=N       Первые N символов набора символов "subsets" для
                           "required set" (требуемого набора) (смотрите doc/SUBSETS)
--subsets-min-diff=N       Минимум уникальных символов в subset
--subsets-max-diff=[-]N    Максимум уникальных символов в subset (отрицательное N является
                           относительным к длине слова)
--subsets-prefer-short     Предпочитать более короткие кандидаты более мелким subset
--subsets-prefer-small     Предпочитать меньшие subset более коротким кандидатам
--make-charset=ФАЙЛ        сделать файл символов. Существующий ФАЙЛ будет перезаписан
--stdout[=ДЛИНА]           просто вывести кандидаты в пароли [с обрезкой по ДЛИНЕ]
--session=ИМЯ              присвоить новой сессии ИМЯ
--status[=ИМЯ]             напечатать статус сессии [с ИМЕНЕМ]
--restore[=ИМЯ]            восстановить прерванную сессию [по ИМЕНИ]
--[no-]crack-status        выводить строку состояния всякий раз, когда пароль взломан
--progress-every=N         выводить строку состояния каждые N секунд
--show[=left]              показать взломанные пароли [если =left, тогда не взломанные]
--show=formats             показать информацию о хешах в файле (JSON)
--show=invalid             показать строки, которые не валидны для выбранного формата(ов)
--test[=ВРЕМЯ]             запустить тесты и бенчмарки на указанное ВРЕМЯ секунд каждый
                           (если ВРЕМЯ установлено на 0, то будут выполнены тесты без бенчмарков)
--stress-test[=ВРЕМЯ]      навсегда зациклить самотестирование
--test-full=УРОВЕНЬ        повысить УРОВЕНЬ самотестирования
--no-mask                  спользуется с --test для альтерантивного бенчмарка без маски
--skip-self-tests          пропустить самотестирование
--users=[-]LOGIN|UID[,..]  только [не] загружать этого (этих) пользователя(ей)
--groups=[-]GID[,..]       загружать только пользователей [не] с этой группой(группами)
--shells=[-]SHELL[,..]     загрузить только пользователей с[без] этой (этими) оболочкой(оболочками)
--salts=[-]COUNT[:MAX]     загрузить соли с [без] COUNT [к MAX] хешей, или
--salts=#M[-N]             загрузить M [к N] самых популярных солей
--costs=[-]C[:M][,...]     загрузить соли с [без] величиной затрат Cn [на Mn]. Для
                           настраиваемых параметров стоимости смотрите doc/OPTIONS
--fork=N                   запустить N процессов
--node=МИНИМУМ[-МАКСИМУМ]/ВСЕГО     диапазон узлов из ВСЕГО количества
--save-memory=УРОВЕНЬ      включить сохранение памяти, на УРОВЕНЬ 1..3
--log-stderr               выводить журнал на экран, а не в файл
--verbosity=N              изменить вербальность (1-5 или 6 для отладки, по умолчанию 3)
--no-log                   отключить создание и запись в файл john.log
--bare-always-valid=Y      рассматривать голые хэши как действительные (Y/N)
--config=ФАЙЛ              использовать ФАЙЛ вместо john.conf или john.ini
--encoding=ИМЯ             кодировка ввода (например, UTF-8, ISO-8859-1). Смотрите также
                           doc/ENCODINGS.
--input-encoding=ИМЯ       кодировка ввода (псевдоним для --encoding)
--target-encoding=ИМЯ      кодировка вывода (используется в соответствии с форматом, смотрите doc/ENCODINGS)
--force-tty                настроить терминал для чтения нажатий клавиш, даже если
                           мы не на переднем плане
--field-separator-char=C   использовать 'C' вместо ':' в файлах ввода и pot
--internal-codepage=ИМЯ    кодовая страница, используемая в правилах/масках (смотрите doc/ENCODINGS)
--[no-]keep-guessing       попытаться найти коллизии открытого текста
--list=ЧТО                 показать возможности, подробности чуть ниже
--length=N                 сокращение для --min-len=N --max-len=N
--min-length=N             запросить минимальную длину кандидатов в байтах
--max-length=N             запросить максимальную длину кандидатов в байтах
--max-candidates=[-]N      выйти после указанного количества попробованных кандидатов.
                           (если отрицательное значение, сбросить счётчик для каждого взлома)
--max-run-time=[-]N        выйти после указанного количества секунд взлома (если отрицательное,
                           значение, сбросить таймер для каждого взлома)
--mkpc=N                   запросить более низкую max. keys per crypt
--no-loader-dupecheck      отключить проверку дублирования при загрузке хэшей
--pot=ИМЯ                  pot файл для использования
--regen-lost-salts=N       брут-форс неизвестных солей (смотрите doc/OPTIONS)
--reject-printable         отклонять печатаемые двоичные файлы
--tune=КАК                 опции тонкой настройки (auto/report/N)

Опции OpenCL:
--devices=N[,..]           установить устройство(а) OpenCL (смотрите --list=opencl-devices)
--force-scalar             принудительный scalar режим
--force-vector-width=N     принудительный vector шириной N
--lws=N                    принудительный локальный worksize N
--gws=N                    принудительный глобальный worksize N

--subformat=ФОРМАТ         выбрать формат бенчмарка для --format=crypt
--format=[NAME|CLASS][,..] указать хеш с типом ИМЯ. Поддерживаемые форматы можно увидеть
                           с помощью опций --list=formats и --list=subformats
                           Действительные классы: dynamic, cpu, opencl, ztex, mask, omp,
                           all, enabled, disabled.

Варианты значений для опции --list

С опцией --list= можно использовать одно из следующих значений:

subformats

Показывает поддерживаемые «субформаты» — такие, как MD5, SHA1 и многие другие, производные и итерированные из них.

./john --list=subformats

inc-modes

TBD

rules

Показывает доступные правила

formats

Выводит список поддерживаемых форматов:

./john --list=formats

Чтобы посмотреть смотреть список алгоритмов для взлома на OpenCL:

./john --list=formats --format=opencl

format-details

Выводит более подробную информацию о форматах.

Чтобы получить информацию сразу о всех форматах:

./john --list=format-details
# или
./john --list=format-details --format=opencl

Чтобы получить информацию об определённом формате, используйте команду вида::

john --list=format-details --format=ФОРМАТ

Например, чтобы увидеть подробности об VNC:

john --list=format-details --format=VNC

format-all-details

Выводит ещё больше информации о поддерживаемых форматах хешей.

Чтобы просмотреть детали сразу о всех поддерживаемых типах хешей:

./john --list=format-all-details
# или
./john --list=format-all-details --format=opencl

Чтобы получить информацию об определённом формате, используйте команду вида::

john --list=format-all-details --format=ФОРМАТ

Например, чтобы увидеть максимальное количество подробностей об VNC:

john --list=format-all-details --format=VNC

externals

TBD

ext-modes

TBD

ext-hybrids

TBD

ext-filters

TBD

ext-filters-only

TBD

build-info

Показывает информацию о настройках компиляции John the Ripper.

./john --list=build-info

hidden-options

Показывает скрытые опции, о них будет рассказано ниже.

encodings

Показывает поддерживаемые кодировки.

Пример вывода:

ASCII (or RAW), UTF-8, ISO-8859-1 (or Latin1 or ANSI),
ISO-8859-2, ISO-8859-7, ISO-8859-15, KOI8-R,
CP437, CP720, CP737, CP850, CP852, CP858, CP866, CP868,
CP1250, CP1251, CP1252, CP1253, CP1254, CP1255, CP1256

format-methods[:КОТОРЫЙ],

Устанавливает метод формата из вариантов:

init, done, reset, prepare, valid, split, binary, salt, tunable_cost_value,
source, binary_hash, salt_hash, salt_compare, set_salt, set_key, get_key,
clear_keys, crypt_all, get_hash, cmp_all, cmp_one, cmp_exact

format-tests

Показывает тесты форматов.

sections

Показывает РАЗДЕЛЫ.

TBD

parameters:РАЗДЕЛ

TBD

Для просмотра списка РАЗДЕЛОВ:

./john --list=help:parameters

Пример вывода:

incremental:digits
incremental:upper
incremental:lower
incremental:lowerspace
incremental:uppernum
incremental:lowernum
incremental:alpha
incremental:alnum
incremental:alnumspace
incremental:lanman
incremental:lm_ascii
incremental:ascii
incremental:latin1
incremental:utf8
incremental:custom
regen_salts_userclasses
subsets
mask
userclasses
markov:default
prince
debug
formats:7z
disabled:formats
ztex:phpass
ztex:md5crypt
ztex:sha256crypt
ztex:sha512crypt
ztex:bcrypt
ztex:descrypt
options:opencl
options:gpu
options:mpi
options:cputune
options

list-data:РАЗДЕЛ

TBD

Для просмотра вариантов РАЗДЕЛОВ:

./john --list=help:list-data

opencl-devices, <ИМЯ РАЗДЕЛА conf>

Показывает список OpenCL устройств в системе.

Подробное описание опций John the Ripper

[В ПРОЦЕССЕ ПОДГОТОВКИ]

Примеры запуска John the Ripper

Взлом пароля архива ZIP

Для извлечения хеша выполните команду вида:

zip2john ФАЙЛ > zip.hash

К примеру, путь до файла /mnt/disk_d/Share/test/file.zip, тогда команда следующая:

zip2john /mnt/disk_d/Share/test/file.zip > zip.hash

Брут-форс на центральном процессоре

Теперь для запуска атаки по словарю, используя ЦПУ, выполните команду вида:

john --wordlist=/ПУТЬ/ДО/СЛОВАРЯ --fork=ЯДРА /ПУТЬ/ДО/zip.hash

К примеру, у меня словарь находится в той же папке, что и исполнимый файл john и имеет имя rockyou.txt, и на моём компьютере 12 ядер, а zip.hash находится в домашней папке пользователя, тогда команда следующая:

./john --wordlist=rockyou.txt --fork=12 ~/zip.hash

Чтобы перебрать все пароли, состоящие только из цифр и длиной от 1 до 10 символов и выполнять вычисления на ЦП, запустите команду вида:

john --fork=ЯДРА --mask='?d' --min-length=1 --max-length=10 /ПУТЬ/ДО/zip.hash

Чтобы перебрать все пароли, состоящие из цифр, а также большим и маленьких букв, длиной от 1 до 8 символов и выполнять вычисления на ЦП, запустите команду вида:

john --fork=ЯДРА -1=?l?u?d --mask='?1' --min-length=1 --max-length=8 /ПУТЬ/ДО/zip.hash

Как взламывать пароли ZIP архивов на видеокарте

John the Ripper поддерживает два алгоритма взлома ZIP архивов на ЦП:

  • PKZIP
  • ZIP

И только один архив для взлома на видеокартах:

  • ZIP-opencl

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

Если вы там увидите что-то вроде такого:

  • file2.zip/file.docx:$zip2$*0*3*0*3eca0462af8ea24……………….

Это означает, что данный хеш можно взломать командами вида:

john --format=ZIP-opencl --wordlist=/ПУТЬ/ДО/СЛОВАРЯ /ПУТЬ/ДО/zip.hash
john --format=ZIP-opencl -mask='?d' --min-length=1 --max-length=10 /ПУТЬ/ДО/zip.hash
john --format=ZIP-opencl -1=?l?u?d --mask='?1' --min-length=1 --max-length=8 /ПУТЬ/ДО/zip.hash

Если же там хеш со строкой «pkzip»:

  • file.zip/Отчёт.docx:$pkzip2$1*1*2*0*b274*c3db*7c823487*0*28*8*b……………….

То это означает, что взлом данного формата на видеокарте в настоящее время не поддерживается.

Взлом пароля пользователя Linux

Запуск Unshadow

Комбинирует файл passwd (/etc/passwd) и shadow (/etc/shadow) и перенаправляет их в файл (> unshadowed.txt):

unshadow /etc/passwd /etc/shadow > unshadowed.txt

Запуск John the Ripper

Используем словарь (–wordlist=/usr/share/john/password.lst), применяя правила коверкания (–rules), пытаемся взломать пароли хешей в данном файле (unshadowed.txt):

john --wordlist=/usr/share/john/password.lst --rules unshadowed.txt 
Warning: detected hash type "sha512crypt", but the string is also recognized as "crypt"
Use the "--format=crypt" option to force loading these as that type instead
Using default input encoding: UTF-8
Loaded 1 password hash (sha512crypt, crypt(3) $6$ [SHA512 128/128 SSE2 2x])
Will run 2 OpenMP threads
Press 'q' or Ctrl-C to abort, almost any other key for status
1                (root)
1g 0:00:00:07 DONE (2015-12-20 07:41) 0.1394g/s 428.4p/s 428.4c/s 428.4C/s ilovegod..mobydick
Use the "--show" option to display all of the cracked passwords reliably
Session completed

Примеры запуска Unique

Использовать вербальный режим (-v), прочитать список паролей (-inp=allwords.txt) и сохранить уникальные пароли в файл (uniques.txt):

unique -v -inp=allwords.txt uniques.txt
Total lines read 6089 Unique lines written 5083

Установка John the Ripper

Драйверы для поддержки OpenCL

В любой операционной системе начните с «Установки драйверов видеокарт для John the Ripper».

Установка в Kali Linux

Программа предустановлена в Kali Linux.

sudo apt install john

Установка John the Ripper в Kali Linux из исходного кода

sudo apt install build-essential libssl-dev yasm libgmp-dev libpcap-dev libnss3-dev libkrb5-dev pkg-config
wget https://github.com/openwall/john/archive/bleeding-jumbo.zip
unzip bleeding-jumbo.zip
rm bleeding-jumbo.zip
cd john-bleeding-jumbo/src/
./configure && make

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

./configure && make -j12

Теперь перейдите в папку run:

cd ../run

И запустите тест:

./john --test

Вам необязательно выполнять установку John the Ripper на уровне системы — переместите папку run в удобное вам место и запускайте John оттуда.

Помните, что если в терминале набрать

john

то запустится предустановленная в системе версия, а не та, которую вы скомпилировали.

Установка в BlackArch

Программа предустановлена в BlackArch:

sudo pacman -S john

Установка John the Ripper в BlackArch, Arch Linux из исходного кода

sudo pacman -S openssl yasm gmp libpcap nss krb5 pkg-config
wget https://github.com/openwall/john/archive/bleeding-jumbo.zip
unzip bleeding-jumbo.zip
rm bleeding-jumbo.zip
cd john-bleeding-jumbo/src/
./configure && make

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

./configure && make -j12

Теперь перейдите в папку run:

cd ../run

И запустите тест:

./john --test

Установка John the Ripper в Debian, Linux Mint, Ubuntu

Установка должна выполняться точно так же, как и в Kali Linux. Поэтому обратитесь к разделу «Установка John the Ripper в Kali Linux из исходного кода».

Установка John the Ripper в Windows

Компиляцию John the Ripper из исходного кода в Windows мы рассмотрим как-нибудь потом. Воспользуемся официальным бинарным файлом.

Сначала установите Cygwin — простой зайдите на официальный сайт https://www.cygwin.com/, скачайте файл setup-x86_64.exe и установите. Если что-то непонятно про Cygwin, то все подробности смотрите в статье «Как начать знакомство с командами Linux: Cygwin».

Со страницы https://github.com/openwall/john-packages/releases/tag/jumbo-dev скачайте файл winX64_1_JtR.7z.

Распакуйте содержимое этого архива в папку C:\cygwin64\home\ИМЯ-ПОЛЬЗОВАТЕЛЯ, например, у меня пользователь MiAl, поэтому я распаковываю в папку C:\cygwin64\home\MiAl\. Обратите внимание, что создавать папку и копировать в неё файлы нужно от имени обычного пользователя, поскольку во время своей работы John the Ripper будет пытаться записать данные в .pot файл в той же папке, где запущена программа. Если вы скопировали папку JtR в файловом менеджере с повышенными правами, то эта папка будет принадлежать Администратору и записать в неё что-либо или поменять права на неё невозможно.

На самом деле в Windows можно запустить John the Ripper даже без Cygwin, но в этом случае он не сможет использовать OpenCL (видео ядра) для брут-форса.

Теперь в папке C:\cygwin64\home\ИМЯ-ПОЛЬЗОВАТЕЛЯ\JtR\run\ найдите cygOpenCL-1.dll и переименуйте его в cygOpenCL-1.dll.bac.

Затем в папке c:\Windows\System32 найдите файл OpenCL.dll и скопируйте его в папку C:\cygwin64\home\ИМЯ-ПОЛЬЗОВАТЕЛЯ\JtR\run\.

Затем в папке C:\cygwin64\home\ИМЯ-ПОЛЬЗОВАТЕЛЯ\JtR\run\ переименуйте файл OpenCL.dll в cygOpenCL-1.dll.

Далее эту же самую процедуру нужно повторить для файла в папке C:\cygwin64\bin\. То есть в папке C:\cygwin64\bin\ найдите cygOpenCL-1.dll и переименуйте его в cygOpenCL-1.dll.bac. Затем в папке c:\Windows\System32 вновь найдите файл OpenCL.dll и скопируйте его в папку C:\cygwin64\bin\. Наконец в папке C:\cygwin64\bin\ переименуйте файл OpenCL.dll в cygOpenCL-1.dll.

Трюк с подменой файла может сработать не для всех систем — но в любом случае вы можете использовать для взлома центральный процессор или встроенную графику.

Откройте консоль Cygwin для выполнения команд.

Запустите тест установки::

~/JtR/run/john --test=0

Запустите бенчмарк вашей системы:

~/JtR/run/john --test

Но всё-таки JtR это одна из тех программ, которая в первую очередь предназначена для Linux. Дальше вы увидите, что мы будем запускать скрипты для генерации (извлечения) хешей из файлов и, например, для некоторых из вспомогательных программ/скриптов нужно, например, установленное окружение Python, которое в Linux присутствует по умолчанию.

Примечание по переносу бинарников между системами

При указании цели make как "generic", конкретные параметры производительности машины определяются во время компиляции. Дополнительно некоторые ОС-специфичные цели make говорят компилятору C сгененировать и оптимизировать код под специфичный для этой машины тип CPU (в настоящее время это применимо из C компиляторов только к gcc). Если вы переместите затем исполнимые бинарники на другую машину, то вы можете получить не самую лучшую производительность, или программа вообще не запустится из-за отсутствия функций CPU, которые предполагались C компилятором. Таким образом, рекомендуется перекомпилировать John на каждой системе если вы используете одну из этих целей make.

Поскольку распространяемые пакеты Linux и *BSD John'а обычно используют цели make за исключением "generic" и поскольку обычно используется gcc, они обычно не подвержены этой потенциальной проблеме.

Оптимальная сборка на OS X (для Jumbo)

Используя OS X, вы можете установить Xcode (бесплатно) и за тем её "инструменты командной строки" и затем нормальная сборка должна прекрасно работать. Тем не менее, используя родной gcc (который на самом деле clang) приводит к неоптимальной производительности и некоторые форматы недоступны из-за древней OpenSSL.

Здесь описано как сделать наилучшее из возможного под ваше железо. Есть альтернативные варианты которые, возможно, работают хорошо, но эта инструкция для «Homebrew»:

1. Установите Homebrew: http://mxcl.github.io/homebrew/

2. Установите gcc и openssl от Homebrew :

brew install gcc openssl
brew link --force openssl

3. Из директории John "src":

cp -avi osx_as_wrapper.sh /usr/local/bin/as

4. Привяжите полученную gcc версию, которую вы получили от Homebrew к просто "gcc" в директории /usr/local/bin. Этот пример для gcc-4.7:

ln -s gcc-4.7 /usr/local/bin/gcc

5. Убедитесь, что /usr/local/bin preceeds /usr/bin в вашем $PATH

После проделанного вы должны быть способны получить оптимальную сборку с AVX и/или любыми дополнительными функциями, которые имеет ваш CPU.

CUDA на OS X

Загрузите CUDA с Nvidia и установите её. Если кроме жалоб по поводу llvm-gcc других ошибок не найдено, то попробуйте это (пример Homebrew):

brew install llvm-gcc-28
sudo ln -s /usr/local/Cellar/llvm-gcc28/2.8/bin/llvm-gcc /usr/bin/llvm-gcc-4.2

После этого у вас должно получиться собрать с дефолтным Makefile.

Скриншоты John the Ripper

Инструкции по John the Ripper

Близкие программы:

  • Johnny (100%)
  • maskprocessor (81.5%)
  • hcxkeys (66.4%)
  • Name-That-Hash (66.4%)
  • HAITI (66.4%)
  • mimikatz (RANDOM - 1.3%)
  • Рекомендуется Вам:

    Comments are Closed