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
- Полное руководство по John the Ripper. Ч.1: знакомство и установка John the Ripper
- Полное руководство по John the Ripper. Ч.2: утилиты для извлечения хешей
- Полное руководство по John the Ripper. Ч.3: как запустить взлом паролей в John the Ripper (как указать маски, словари, хеши, форматы, режимы)
- Полное руководство по John the Ripper. Ч.4: практика и примеры использования John the Ripper
- Полное руководство по John the Ripper. Ч.5: атака на основе правил
- Полное руководство по John the Ripper. Ч.6: брут-форс нестандартных хешей
- Полное руководство по John the Ripper. Ч.7: Johnny — графический интерфейс для John the Ripper
- Инструкция по использованию John the Ripper
- Взлом WPA/WPA2 паролей с Aircrack-ng: перебор по словарю, совместная работа с Hashcat, maskprocessor, statsprocessor, John the Ripper, Crunch, взлом в Windows
- Как использовать радужные таблицы для взлома паролей Wi-Fi в Hashcat и John the Ripper
- Как ускорить создание словарей с паролями
- Как создать словари, соответствующие определённым политикам надёжности паролей (с помощью Атаки на основе правил)
Comments are Closed