Этичный хакинг и тестирование на проникновение, информационная безопасность
Инструкции по использованию John the Ripper
Программа John the Ripper создавалась для выявления слабых паролей пользователей операционных систем. При этом в настоящее время версия Jumbo (с расширенным функционалом от сообщества) превратилась в мощный комбайн, который может подбирать пароли для разнообразных архивов, документов, электронных кошельков и очень много чего ещё. Документация по этим возможностям программы является слабой и фрагментированной. Даже чтение справки и манула по John the Ripper мало чем вам помогут (тем не менее, начинать нужно со знакомства с ними).
В данном разделе мы устраним эти пробелы насколько это возможно. Будет рассказано о взломе разнообразных типов файлов, которые защищены паролями, о режимах взлома, о масках, словарях, правилах изменения слов и многом другом.
Взлом паролей пользователей Linux
Давайте всё-таки начнём с «базовой» функци по взлому паролей пользователей ОС, благо здесь всё элементарно.
Комбинирует файл passwd (/etc/passwd) и shadow (/etc/shadow) и перенаправляет их в файл (> unshadowed.txt):
Используем словарь (–wordlist=/usr/share/john/password.lst), применяя правила коверкания (–rules), пытаемся взломать пароли хешей в данном файле (unshadowed.txt):
Взлом в John the Ripper офисных документов, архивов, кошельков, зашифрованных дисков TrueCrypt и других файлов, зашифрованных паролем
John умеет взламывать только хеши — он не умеет напрямую работать с зашифрованными файлами. Программа не может открыть офисный документ, ввести туда пароль и т. п.
Это решаемая проблема — нам нужно получить (извлечь) хеш для интересующего нас файла. Сам John этого делать не умеет. Нужны вспомогательные утилиты. Ознакомиться с их списком можно, например, набрав команду:
Вот так выглядит список на машине, где я установил John из исходников:
Согласитесь, список впечатляющий!
А вот так он выглядит в Kali Linux:
Нам явно очень много чего не доложили! Поэтому если не можете в своей системе найти какой-то файл (это можно сделать командой locate), то скачайте их из исходных кодов: https://github.com/magnumripper/JohnTheRipper.
Для себя я собрал всю доступную информацию об этих файлах в таблицу. Если вы заметили неточности в моих данных или хотите их дополнить — то пишите в комментариях к этому разделу.
Файл для извлечения хеша
Взламываемые файлы
Описание / Комментарии
1password2john.py
Извлекает хеш для взлома пароля программы 1Password
Использование: ./1password2john.py
7z2john.py
Извлекает хеши из зашифрованных архивов 7-Zip
Использование: ./7z2john.py
aix2john.pl и aix2john.py
Этот скрипт конвертирует AIX /etc/security/passw
Использование: aixpasswd2john.pl Если пароль не задан, то aixpasswd2john.pl будет читать из стандартного ввода
androidfde2john.py
Программа для «конвертации» образов / дисков Android FDE в дружественный для JtR формат.
Использование: ./androidfde2john.py
apex2john.py
Дамп хешей APEX
Использование: ./apex2john.py
bitcoin2john.py
Извлекает хеш из кошельков Bitcon для подбора пароля
Можно использовать любой файл на выбор: dmg2john или dmg2john.py
ecryptfs2john.py
efs2john.py
Encrypting File System (EFS) — система шифрования данных, реализующая шифрование на уровне файлов в операционных системах Microsoft Windows NT (источник).
Для дополнительной функциональности рекомендуется установить пакет python-m2crypto:
PGP (англ. Pretty Good Privacy) — компьютерная программа, также библиотека функций, позволяющая выполнять операции шифрования и цифровой подписи сообщений, файлов и другой информации, представленной в электронном виде, в том числе прозрачное шифрование данных на запоминающих устройствах, например, на жёстком диске.
Использование: ./gpg2john [-d] [-S] если используется -d, тогда записывается отладочная информация декодирования типов объектов если используется -S, тогда также будут выведены подключи
hccap2john
HCCAP — это кастомный формат, специально разработанный для oclHashcat.
Сами данные не отличаются от обычного tcpdump формата. На самом деле, они абсолютно те же самые. Они просто немного реорганизованы.
Валидный файл hashcat cap (расширение файла: .hccap) содержит одну или больше экземпляров структуры.
htdigest2john.py
ikescan2john.py
ios7tojohn.pl
Взлом ограничительного ПИН кода IOS 7
Пример ввода (с com.apple.restrictionspassword.plist): RestrictionsPasswordKey
J94ZcXHm1J/F9Vye8GwNh1HNclA=
RestrictionsPasswordSalt
/RHN4A==
Пример вывода: $pbkdf2-hmac-sha1$1000.fd11cde0.27de197171e6d49fc5f55c9ef06c0d8751cd7250
1. Достаньте файл com.apple.restrictionspassword.plist из вашего телефона. Как сделать это — за пределами этого документа, просто погуглите это.
2. Запустите ios7tojohn на этот файл, Перенаправьте вывод в другой файл. К примеру:
Устанавливает порог для встраиваемых данных. По умолчанию это 1024 байт
Опции только для ‘старых’ зашифрованных файлов PKZIP:
-a
Это «известный» ASCII файл.
Использование режима ‘ascii’ даёт серьёзное ускорение, ЕСЛИ все файлы большие и вы ЗНАЕТЕ, что по карйней мере один из них начинается с «чистых» ASCII данных.
-o
Использовать только этот файл из .zip файла
-c
Это создаст хеш «только контрольная сумма». Если есть много зашифрованных файлов в файле .zip, то это может быть вариантом, и будет достаточно данных чтобы ложные срабатывания не были видны. Если .zip — это 2 байта контрольной суммы и их 3 и более, то мы имеем 48 бит знания, которые «могут» быть достаточными для взлома пароля без необходимости пользователю иметь в наличии .zip файл.
-m
Использование «файловой магии» в качестве известного простого текста, если это применимо. Это немного быстрее, но не во всех ситуациях на 100% безопасно.
-2
Принудительное двух байтовое исчисление контрольной суммы
HackWare.ru
Этичный хакинг и тестирование на проникновение, информационная безопасность
Полное руководство по John the Ripper. Ч.1: знакомство и установка John the Ripper
Оглавление
Что такое John the Ripper
John the Ripper — это популярный взломщик паролей, который умеет выполнять брут-форс как с использованием центрального процессора, так и видео карты, поддерживающий множество алгоритмов. Если быть более точным — это офлайн взломщик (онлайн взломщики брут-форсят службы подключаясь к ним, а офлайн взломщики работают с захваченными хешами (файлами) к которым подбирают пароль).
Даже если вы уже знакомы с Hashcat (а тем более, если НЕ знакомы с Hashcat), вам нужно изучить принципы работы John the Ripper, поскольку они отличаются.
Чем различаются John the Ripper и Hashcat
Hashcat для брут-форса может использовать видеокарту, центральный процессор (ЦП) или всё вместе.
John the Ripper может использовать что-то одно: или видеокарту, или видео ядро ЦП, или только ЦП.
Hashcat может использовать видеокарту для взлома любых поддерживаемых алгоритмов.
John the Ripper для взлома на видеокарте поддерживает только некоторые виды алгоритмов.
Если у вас несколько видеокарт, Hashcat «из коробки» поддерживает работу сразу с несколькими устройствами и по умолчанию разбивает задачу на нужное количество потоков и размер каждой этой задачи привязан к мощности видеокарты.
John the Ripper может работать с несколькими видеокартами, но по умолчанию разбивка задачи на несколько видеокарт поддерживается только для одного алгоритма.
Для Hashcat не имеет значение, как вы её установили: собрали из исходного кода или скачали бинарный файл.
Для John the Ripper очень важно самому собрать бинарный файл, поскольку в этом случае учитывается специфика вашей системы. В результате при компиляции будут указаны поддерживаемые процессором наборы команд, например, AVX2 вместо дефолтного AVX, что в конечном счёте очень значительно скажется на производительности — для некоторых алгоритмов благодаря этому достигается ускорение взлома в 2 раза! Либо напротив, скомпилированные на более новом железе исполнимые файлы John могут не работать на некоторых компьютерах
Для Hashcat обязательно нужно указать тип хеша.
John the Ripper определяет хеш самостоятельно, либо можно явно указать формат хеша.
Синтаксис команд и опций сильно различается.
О взломе пароля в John the Ripper на видеокарте нужно знать, что брут-форс на графической карте требует много времени для запуска — это заметно даже для бенчмарка. Поэтому если вам нужно выполнить множество коротких сессий, то иногда рациональнее использовать центральный процессор, взлом на котором запускается немедленно.
Преимущества John the Ripper:
Более гибкая работа с хешами — даже если в файле с хешами имеются хеши других типов, то John не завершает работу с ошибкой, а просто используют хеши того типа, который указан в команде запуска. К тому же, утилиты для вычисления хешей зачастую добавляют строки, которые в Hashcat могут вызвать ошибку «неправильный хеш». John the Ripper нормально работает с такой формой записи.
Более гибка Атака на основе правил. В John the Ripper и Hashcat имеется реализация Атаки на основе правил и синтаксис записи правил имеет много общего. Но в John the Ripper эта атака более мощная, поскольку имеет больше правил, а также позволяет использовать наборы символов в записи правил.
Поддержка нестандартных хешей. Hashcat может работать только с хешами, которые предусмотрели разработчики этой программы. А в John the Ripper имеется режим Dynamic, который позволяет указать формулу, по которой был вычислен хеш. То есть можно взламывать произвольные типы хешей.
Установка драйверов видеокарт для John the Ripper
Если вы хотите использовать GPU для взлома паролей (а это в десятки раз быстрее, чем на центральном процессоре), то нужно установить видео драйвера.
Для взлома могут использоваться:
центральный процессор
видео ядро центрального процессора
видео карта
Нужно выбрать что-то одно из этого — самым быстрым вариантом является видео карта.
Конечно, конкретные конфигурации компьютеров могут различаться: у кого-то нет дискретной видеокарты, у кого-то нет видео ядра у ЦП — надеюсь, вы в состоянии это проверить самостоятельно.
Установка видео драйверов в Windows
В этой ОС всё просто — скорее всего, видео драйверы для вашей графической карты уже установлены. Если нет — перейдите на сайт производителя, скачайте и установите драйвер.
Если вдруг вы хотите использовать видео ядро центрального процессора (это бессмысленно, если у вас есть хоть какая-то дискретная видео карта, тем не менее — возможно, у вас просто нет выделенной графической карты), то вам нужно установить «OpenCL Runtime for Intel Core and Intel Xeon Processors». Если вам это действительно надо, что нужные ссылки вы найдёте в этой статье по Hashcat, которая также исполььзует этот драйвер.
Установка видео драйверов в Linux
В Kali Linux
Предварительное полное обновление системы и перезагрузка:
Установка видео драйверов для NVIDIA в Linux
Включение OpenCL для Intel
Если ваш центральный процессор поддерживает OpenCL, то установите следующие пакеты:
В Arch Linux, BlackArch
Включение OpenCL для NVIDIA
Удалите xf86-video-nouveau есть он есть:
Установите проприетарный драйвер NVIDIA, CUDA и другие необходимые пакеты:
Включение OpenCL для Intel
Друзья, нужна ваша поддержка — если у вас другой дистрибутив или видеокарта AMD, напишите в комментариях, как вы установили видео драйвер — я добавлю эту информацию сюда.
Установка John the Ripper в Linux из исходного кода
Как уже было сказано, важно самому собрать John the Ripper чтобы он использовал все возможности вашего процессора. Ещё один плюс такого подхода — мы получим самую свежую версию John the Ripper.
Установка необходимых зависимостей в Kali Linux:
Установка необходимых зависимостей в Arch Linux, BlackArch:
Далее одинаково в любом дистрибутиве:
Обратите внимание, в последней команде вы можете использовать опцию -j после которых указать количество (логических) ядер вашего процессора, например, у меня 12 логических ядер, тогда я использую:
Теперь перейдите в папку run:
И запустите тест:
Вам необязательно выполнять установку John the Ripper на уровне системы — переместите папку run в удобное вам место и запускайте John оттуда. Кроме исполнимого файла John the Ripper, в папке run собрано много скриптов для извлечения хешей — о них мы поговорим позже.
Помните, что если в терминале набрать
то запустится предустановленная в системе версия, а не та, которую вы скомпилировали.
Установка 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».
Распакуйте содержимое этого архива в папку C:\cygwin64\home\ИМЯ-ПОЛЬЗОВАТЕЛЯ, например, у меня пользователь MiAl, поэтому я распаковываю в папку C:\cygwin64\home\MiAl\.
На самом деле в 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.
Трюк с подменой файла может сработать не для всех систем — но в любом случае вы можете использовать для взлома центральный процессор или встроенную графику.
Откройте консоль Cygwin для выполнения команд.
Запустите тест установки::
Запустите бенчмарк вашей системы:
Но всё-таки JtR это одна из тех программ, которая в первую очередь предназначена для Linux. Дальше вы увидите, что мы будем запускать скрипты для генерации (извлечения) хешей из файлов и, например, для некоторых из вспомогательных программ/скриптов нужно, например, установленное окружение Python, которое в Linux присутствует по умолчанию.
Проверка John the Ripper
В этом разделе мы проверим, какие устройства видит John the Ripper для использования во время брут-форса.
Опции на любой системе одинаковые, но помните, что в Windows для запуска John the Ripper нужно открыть Cygwin и в качестве исполнимого файла указывать
Если вы запускаете в Linux установленный из стандартных репозиториев файл, то достаточно писать просто
Если вы запускаете скомпилированный из исходного кода файл, то перейдите в каталог с исполнимым файлом (в папке программы это директория run) и в качестве исполнимого файла указывайте
Для просмотра устройств OpenCL используйте опцию —list=opencl-devices:
Как вы можете увидеть, у меня три устройства:
1 — видео ядро центрального процессора:
2 — дискретная видео карта
3 — центральный процессор
Аналогично в Windows:
Как уже было сказано, John the Ripper не может просто работать с любыми поддерживаемыми алгоритмами на OpenCL — необходимо, чтобы для них был создан модуль. Поэтому некоторые алгоритмы можно взламывать только на центральном процессоре, а некоторые алгоритмы можно взламывать на видео карте или на центральном процессоре.
Список алгоритмов может различаться от ОС и от установленных зависимостей.
Чтобы посмотреть список поддерживаемых алгоритмов:
Список уместился не весь:
Чтобы посмотреть смотреть список алгоритмов для взлома на OpenCL:
Намного меньше, но Wi-Fi там есть.
Как использовать видеокарту для взлома в John the Ripper
По умолчанию JtR использует центральный процессор, даже если все необходимые драйвера для OpenCL установлены.
Чтобы включить видеокарту, нужно использовать опцию —format и явно указать алгоритм, который поддерживает OpenCL.
Например, для бенчмарка алгоритма wpapsk на видеокарте:
Чтобы взламывать wpapsk на центральном процессоре, нужно запускать примерно так:
Как можно увидеть на скриншотах: 114975/17385=6,61, то есть скорость перебора паролей увеличилась более чем в 6 раз.
Как использовать видео ядро центрального процессора в JtR
Как вы уже знаете, устройствами OpenCL является дискретная видеокарта и интегрированная графика (видео ядро центрального процессора). По умолчанию запускается взлом на дискретной видеокарте.
С помощью опции -dev вы можете явно указать устройство для выполнения вычислений: gpu (дискретная графика) или cpu (интегрированная графика).
Запуск проверки скорости на видео ядре процессора:
Запуск проверки скорости на видео ядре выделенной видеокарты (по умолчанию):
Как запустить бенчмарк John the Ripper
Чтобы проверить скорость перебора паролей в JtR используется опция —test.
Эту опцию можно использовать с числом — количество секунд, которое будет выполняться тест.
Если вы хотите проверить скорость только определённого алгоритма, то используйте опцию —format.
Пример теста скорости взлома пароля Wi-Fi центральным процессором:
Пример теста скорости взлома пароля Wi-Fi дискретной видеокартой:
Если нужно только проверить работу расшифровки различных алгоритмов без запуска бенчмарка, то укажите 0 в качестве значения опции —test:
Как настроить John the Ripper
У John the Ripper есть файл настроек с большим количеством опцией. Этот файл называется john.conf и находится в той же папке, что и исполнимый файл john.
Обеспечьте хорошее охлаждение; следите за температурой. Если среда выполнения OpenCL поддерживает это, температура графического процессора будет отслеживаться и отображаться в строках состояния, а в john.conf есть изменяемый пользователем предел, который завершит работу при 95 °C.
Эта настройка устанавливается директивой:
Температура указывается в градусах Цельсия — °C.
Вместо прерывания, можно остановить программу на это количество секунд, чтобы охладить GPU, когда температура достигнет значения AbortTemperature, затем программа повторно проверит температуру и либо продолжит работу, либо останется на паузе. Установите значение 0 чтобы просто завершить работу.
Если указано SleepOnTemperature = 1 (одна секунда), то не будут выводиться сообщения о паузе/возобновлении работы, поскольку такое короткое значение интерпретируется как желание держать температуру видеокарты около крайнего значения. Значение директивы по умолчанию:
Различие компиляции с AVX2 и AVX для John the Ripper
Чтобы посмотреть параметры сборки используйте опцию —list=build-info:
Бенчмарк двух версий программ:
1 . На этой половине скриншота бенчмарк последней версии JtR, которую я скомпилировал из исходного кода. Поскольку мой ЦП поддерживает AVX2, то John the Ripper также это поддерживает.
2 . А эту я установил из стандартного репозитория своего дистрибутива — она скомпилирована с AVX.
Разница весьма значительная.
Итог по первой части
Итак, это первая часть по John the Ripper — популярному офлайн брут-форсеру. В ней мы узнали хитрости по установке JtR, а также научились тестировать скорость перебора паролей, включать для использования видео карту и контролировать действия при перегреве.
При запуске подобных программ (John the Ripper и Hashcat) нужно заботиться о должном охлаждении. Если ваш компьютер/ноутбук перегревается, то скорость взлома будет очень значительно падать.
В следующих частях будет ещё интереснее! Мы научимся извлекать хеши паролей и запускать атаки по словарю и по маске, а также многое другое!
Связанные статьи:
Полное руководство по John the Ripper. Ч.2: утилиты для извлечения хешей (67.2%)
Полное руководство по John the Ripper. Ч.3: как запустить взлом паролей в John the Ripper (как указать маски, словари, хеши, форматы, режимы) (65.3%)
Полное руководство по John the Ripper. Ч.5: атака на основе правил (60.4%)
Инструкции по использованию John the Ripper (59.7%)
Полное руководство по John the Ripper. Ч.4: практика и примеры использования John the Ripper (59.7%)
Взлом рукопожатий в Pyrit — самый быстрый способ с использованием графических процессоров и предварительного расчёта хешей (RANDOM — 2.9%)
Рекомендуется Вам:
2 комментария to Полное руководство по John the Ripper. Ч.1: знакомство и установка John the Ripper
Спасибо за статью!
В последнее время всё чаще начал замечать в статьях на HackWare различные ошибки в русском языке. Возможно ли о них куда-то сообщить?
Приветствую! Пишите в комментариях под статьями — буду поправлять.