John the Ripper – це утиліта, основне призначення якої полягає в оцінці надійності паролів. Продукт поширюється безкоштовно без графічного інтерфейсу користувача, який необхідно завантажувати і встановлювати окремо.
Механізм роботи програми будується на обчисленні хешів. Іншими словами, John the Ripper намагається підібрати таке значення хешу, яке б в точності відповідало результату виконання хеш-функції при введенні реального пароля. При цьому утиліта використовує кілька методів визначення паролів, як то брутфорс або повний перебір всіх можливих варіантів, підбір із застосуванням словника, а також їх комбінацію. У разі успішного підбору паролів можна судити про їх низьку надійність.
Можливості утиліти можна використовувати не тільки для оцінки складності, але й для відновлення власних паролів. Крім того, функціонал John the Ripper активно застосовується хакерами для отримання доступу до системи, архівів і документів.
З коробки програма пропонує користувачам лише інтерфейс командного рядка. Приклади використання команд і параметрів можна знайти в текстових файлах, які розповсюджуються разом з утилітою, однак навичок рядових користувачів ПК навряд чи вистачить для освоєння John the Ripper.
Переваги John the Ripper
Безкоштовне розповсюдження продукту.
Підтримка декількох методів підбору паролів.
Недоліки John the Ripper
Відсутність графічного інтерфейсу користувача з коробки.
Висновок
Програма представляє собою надзвичайно потужний інструмент, який в хороших руках може стати в нагоді при організації власних захищених систем. А от в руках недоброзичливців утиліта здатна завдати непоправної шкоди не тільки окремому користувачеві, але й цілим підприємствам.
Зміни в останній версії
Збільшено чергування для bcrypt на x86-64 з 2x до 3x для значного прискорення на ЦП без SMT. На жаль, це іноді призводить до незначного зниження продуктивності під час виконання кількох потоків на ЦП із SMT.
Розпізнайте префікс $2b$ bcrypt.
У загальному форматі crypt(3) виявляйте дешифрування за допомогою дійсних і недійсних солей як окремих ідентифікаторів для нашої евристики щодо підтримуваних типів хешування.
Представлено низку оптимізацій для швидшої обробки великих хеш-файлів паролів, включаючи завантаження, злом і "--show". Деякі з них використовують більше пам’яті, ніж раніше, але ефективніше.
Тестуйте за замовчуванням, використовуючи всі різні паролі-кандидати довжиною 7.
Вилучено недокументовану спеціальну обробку "Mc" у командах правил "c" і "C".
Вилучено недокументоване обмеження команд правил «M» і «Q», коли вони іноді запам’ятовували/перевіряли лише до обмеження довжини поточного типу хешу, але ця оптимізація не обов’язково була б прозорою (наприклад, якщо наступна команда вилучатиме підрядок вище ліміту довжини типу хешу та довести його до ліміту).
Реалізована спеціальна обробка повторюваних команд правила '$', '^', '[', ']', '{' і '}', а також швидша обробка команди 'D'.
Якщо створено з підтримкою "--fork", заборонити назви сеансів із суфіксами, які складаються лише з цифр, оскільки вони конфліктують із тими, які створює "--fork".
Переслати SIGTERM до дітей із --fork'ed.
Встановіть stdout на рядкову буферизацію (а не на потенційно повну буферизацію), за винятком "--stdout", "--show" і допоміжних програм, таких як "unshadow".
У Windows відновіть нормальну обробку Ctrl-C, якщо наш батько (наприклад, Джонні GUI) вимкнув її.
Додано цілі linux-x86*-avx512 і linux-x86*-avx2 make, які використовують відповідно AVX-512 і AVX2 для бітового DES.
Додано linux-mic make target для Intel MIC (першого покоління Xeon Phi, також відомого як Knights Corner), який використовує свою 512-бітну технологію SIMD для бітового DES. (Для Xeon Phi другого покоління, також відомого як Knights Landing, використовуйте linux-x86-64-avx512.)
Додано цілі створення linux-arm64le, linux-arm32le-neon і linux-arm32le. (Перші два з них використовують ASIMD або NEON для бітового DES.)
Додано linux-sparc64 make target.
Зроблено незначну оптимізацію коду складання MMX і SSE2 для хешу LM.
Припинено підтримку Ultrix і SCO.
Не шукайте альтернативні імена конфігураційних файлів (наприклад, john.ini, коли працюєте в Unix).
Зразок зовнішнього режиму «DokuWiki» додано до типового john.conf.
Виправлено пріоритет операторів у компіляторі зовнішнього режиму, щоб бути таким же, як і в C.
Виправлено помилку запису поза межами у віртуальній машині зовнішнього режиму.
Виправлено помилку, представлену у версії 1.7.4 у системі правил списку слів, через яку деякі послідовності команд правила могли переповнювати буфер слів.
Виправлено помилку, через яку GCC 4.6+ без потреби генерував інструкції доступу SSE/AVX у розрядному коді DES у збірках, не пов’язаних з OpenMP.
Виправлено помилку, через яку «Попередження: немає підтримки OpenMP для цього типу хешу» в режимі «--stdout».
Зроблено ряд інших виправлень помилок, покращено портативність і документацію.
Бажаєте поділитися враженнями або поставити запитання?
Розпочніть обговорення, залишивши коментар зі своїми думками про John the Ripper!