Добавить в корзинуПозвонить
Найти в Дзене

Инструменты хакера. John the Ripper - тестируем (взламываем) пароли.

John the Ripper (часто сокращается как "John") — это популярный инструмент для взлома паролей, который используется IT-специалистами, пентестерами и исследователями кибербезопасности для проверки надежности паролей. Он был разработан для тестирования паролей на их устойчивость к атакам, а также для демонстрации того, как слабые или уязвимые пароли могут быть взломаны злоумышленниками. John the Ripper изначально создавался для Unix-систем, но со временем стал кроссплатформенным и поддерживает Windows, macOS и другие операционные системы. Это отличный инструмент с множеством функций, который можно использовать как в стандартной установке, так и с дополнительными модулями для расширения его возможностей. Подписывайтесь на мой канал в Телеграмм, чтобы ничего не пропустить. Давайте знакомиться с ним: 1. Поддержка множества форматов хешей: John поддерживает десятки различных типов хешей паролей, включая: 2. Режимы работы: 3. Модульная архитектура: John the Ripper поддерживает плагины и м
Оглавление

John the Ripper (часто сокращается как "John") — это популярный инструмент для взлома паролей, который используется IT-специалистами, пентестерами и исследователями кибербезопасности для проверки надежности паролей.

Он был разработан для тестирования паролей на их устойчивость к атакам, а также для демонстрации того, как слабые или уязвимые пароли могут быть взломаны злоумышленниками.

John the Ripper изначально создавался для Unix-систем, но со временем стал кроссплатформенным и поддерживает Windows, macOS и другие операционные системы. Это отличный инструмент с множеством функций, который можно использовать как в стандартной установке, так и с дополнительными модулями для расширения его возможностей.

Подписывайтесь на мой канал в Телеграмм, чтобы ничего не пропустить.

Давайте знакомиться с ним:

Основные характеристики John the Ripper:

1. Поддержка множества форматов хешей:

John поддерживает десятки различных типов хешей паролей, включая:

  • Unix-based хеши: DES, MD5, Blowfish, SHA-256, SHA-512;
  • Windows NTLM;
  • MD4, MD5, SHA1, SHA256, SHA512;
  • HMAC (MD5, SHA1 и другие);
  • Хеши, используемые в web-приложениях и базах данных (например, MySQL, PostgreSQL);
  • Форматы, специфичные для определенных приложений и систем.

2. Режимы работы:

  • Single Crack Mode: Использует информацию о пользователе и системе (например, имя пользователя) для попытки расшифровать пароль.
  • Dictionary Mode: Использует словарь паролей (список слов) для перебора возможных вариантов. Это один из наиболее часто используемых режимов.
  • Incremental Mode: Брутфорс-атака, которая перебирает все возможные комбинации символов. Этот режим наиболее универсален, но и самый медленный.
  • External Mode: Позволяет пользователям писать свои собственные правила для атак.

3. Модульная архитектура:

John the Ripper поддерживает плагины и модули, что позволяет расширять функциональность инструмента. Например, можно добавить поддержку новых форматов хешей или улучшить производительность.

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

John активно использует ресурсы процессора и оптимизирован для работы на многоядерных системах. Версия John Pro (коммерческая версия) и сообщество Openwall также предоставляют поддержку для GPU (с использованием OpenCL и CUDA), что значительно ускоряет процесс взлома.

5. Поддержка распределенных атак:

John может быть настроен для работы в распределенной системе, что позволяет использовать несколько машин для одновременной атаки. Это полезно для взлома сложных хешей, требующих больших вычислительных ресурсов.

6. Поддержка кастомных правил:

Используя встроенный язык правил John the Ripper, пользователи могут создавать собственные сценарии для модификации и обработки словарей паролей.

Установка и использование

Установка:

Для Linux:

sudo apt update
sudo apt install john

Для macOS:

Используйте Homebrew:

brew install john

Для Windows:

Можно загрузить бинарные файлы с официального сайта проекта Openwall: https://www.openwall.com/john/.

Пример использования:

1. Анализ файла с хешами:

Перед началом работы нужно предоставить John файл с хешами паролей. Например:

john hashes.txt

2. Использование словаря (Dictionary Mode):

Если у вас есть файл-словарь (например, passwords.txt), вы можете использовать его так:

john --wordlist=passwords.txt hashes.txt

3. Проверка уже взломанных паролей:

Чтобы посмотреть, какие пароли уже были взломаны:

john --show hashes.txt

4. Инкрементальный режим (брутфорс):

Этот режим перебирает все возможные комбинации символов:

john --incremental hashes.txt

5. Указание формата хеша: Если инструмент не может автоматически определить формат хеша, можно указать его вручную:

john --format=raw-md5 hashes.txt

Примеры использования

  • Проверка надежности паролей: Системные администраторы могут использовать John для проверки паролей пользователей на слабость. Например, если пароли хранятся в виде хешей (например, в /etc/shadow на Unix-системах), их можно проверить через John.
  • Исследования в области кибербезопасности: Пентестеры и исследователи используют John для тестирования безопасности приложений, сетей и систем. Это позволяет выявлять слабости до того, как ими смогут воспользоваться злоумышленники.
  • Обучение и эксперименты: John популярный инструмент в образовательной среде, так как позволяет изучать, как работают хеши и какие методы атак на них существуют.

Что такое хеши?

Хеши — это зашифрованные представления данных, которые создаются с использованием хеш-функций. В контексте паролей, хеш — это результат работы хеш-функции, которая преобразует пароль пользователя (обычно в виде строки текста) в уникальный фиксированный набор символов.

Основные свойства хешей:

1. Односторонность: Имея хеш, невозможно (или чрезвычайно сложно) восстановить исходные данные (пароль).

2. Фиксированная длина: Независимо от длины исходного пароля, хеш всегда имеет фиксированную длину.

3. Детерминированность: Один и тот же вход всегда дает одинаковый хеш.

Пример:

  • Исходный пароль: password123
  • Хеш (MD5): 482c811da5d5b4bc6d497ffa98491e38

Для проверки пароля система сравнивает хеш введенного пароля с уже сохраненным хешем. Если хеши совпадают, доступ предоставляется.

Где берутся хеши?

Хеши паролей обычно хранятся в защищенных файлах, базах данных или системных файлах. Например:

  • В Linux-системах хеши паролей пользователей хранятся в файле /etc/shadow.
  • В Windows хеши паролей хранятся в базе SAM (Security Account Manager), которая защищена и зашифрована.

Если вы работаете с тестовой системой или проводите аудит, вам нужно извлечь хеши из соответствующего файла или базы данных для их дальнейшего анализа.

Какие хеши поддерживает John the Ripper?

John the Ripper поддерживает множество различных типов хешей для паролей. Вот некоторые из наиболее популярных форматов:

1. Unix/Linux хеши

  • DES-based (старый формат, длина хеша — 13 символов).
  • MD5-based (более современный, используется в некоторых конфигурациях).
  • SHA-256 и SHA-512 (современные и более безопасные).
  • Пример хеша (SHA-512):
$6$rounds=5000$saltstring$wE3E4HrX1BqnA3RzSYsmK9U....

2. Windows хеши

  • LM (LAN Manager): Устаревший формат, используется в Windows до XP. Очень слабый и легко взламываемый.
  • NTLM (NT LAN Manager): Более современный и популярный формат в современных Windows-системах.
  • Пример NTLM-хеша:
5d41402abc4b2a76b9719d911017c592

3. Web-приложения

Хеши, используемые в веб-приложениях и базах данных:

  • MD5: Очень распространен, но устаревший.
  • SHA-1: Более надежный, но также уязвим к атакам.
  • bcrypt: Современный алгоритм с использованием соли, который труднее взломать.

Пример bcrypt-хеша:

$2y$12$eXyQfoO2G8kFJkB9Q1jYquFpIMbJzAw5F9F1J0Q9tq0M...

4. Хеши баз данных

  • MySQL: MySQL использует свои собственные форматы хеширования (например, MD5, SHA1).
  • PostgreSQL: Использует MD5-хеширование.
  • Пример MySQL-хеша:
*2470C0C06DEE42FD1618BB99005ADCA2EC9D1E19

5. Криптографические ключи

  • Хеши, используемые в криптографических системах, например, HMAC (MD5, SHA-1 и другие).

6. Другие форматы

  • ZIP, RAR, PDF (шифрованные файлы).
  • Форматы, используемые в Wi-Fi (например, WPA/WPA2 хеши).

Как подготовить хеши для работы с John the Ripper?

Чтобы использовать John для взлома паролей, вы должны предоставить хеши в правильном формате. Ниже приведены основные шаги:

1. Извлечение хешей

Linux: Вы можете извлечь хеши из файла /etc/shadow (только с правами суперпользователя):

sudo cat /etc/shadow > hashes.txt

Пример строки из /etc/shadow:

username:$6$rounds=5000$salt$hash:18031:0:99999:7:::

Windows: Извлечение хешей NTLM/SAM требует специальных утилит, например:

  • Mimikatz: Для извлечения хешей из оперативной памяти.
  • pwdump: Для извлечения хешей из SAM.
  • impacket-secretsdump: Python-утилита для получения хешей.

Пример NTLM-хеша:

Administrator:500:aad3b435b51404eeaad3b435b51404ee:5d41402abc4b2a76b9719d911017c592:::

Web-приложения:

Хеши иногда хранятся в базах данных (например, MySQL, PostgreSQL). Вы можете извлечь их с помощью SQL-запросов:

SELECT username, password_hash FROM users;

2. Форматирование файла с хешами

John the Ripper ожидает, что хеши будут представлены в текстовом файле, каждая строка которого — это один хеш.

Например:

$6$rounds=5000$salt$hash
5d41402abc4b2a76b9719d911017c592
$2y$12$eXyQfoO2G8kFJkB9Q1jYquFpIMbJzAw5F9F1J0Q9tq0M...

3. Выбор формата хеша

Если John не может автоматически определить формат хеша, укажите его вручную с помощью опции --format. Например:

john --format=nt hashes.txt

Пример работы с хешами

1. Создадим хеш пароля:

Например, хеш MD5 для пароля password123:

482c811da5d5b4bc6d497ffa98491e38

2. Запустим John для взлома:

Создайте файл hashes.txt с этим хешем и выполните команду:

john --format=raw-md5 --wordlist=passwords.txt hashes.txt

Где:

  • --format=raw-md5: Указывает, что это MD5-хеш.
  • --wordlist=passwords.txt: Использование файла-словаря для перебора.

3. Результат:

Если пароль был найден в словаре, John покажет:

password123

Полезные советы

  • Обновите словари: Используйте актуальные словари паролей, которые можно найти в интернете. Например, популярные списки на GitHub или базы вроде RockYou.
  • Используйте GPU для ускорения: Если у вас есть мощная видеокарта, используйте версии John с поддержкой GPU (например, версии из пакета Hashcat или John Jumbo).
  • Не забывайте об этике и законе: Используйте John только для легальных целей, связанных с тестированием безопасности и образовательными задачами. Взлом паролей без разрешения является незаконным.

Версии John the Ripper

  • Community Edition: Это бесплатная и популярная версия, доступная для всех. Включает базовый набор функций и поддержку большинства хешей.
  • Jumbo Edition: Расширенная версия с дополнительными функциями, поддержкой большего числа форматов хешей и GPU. Это версия с открытым исходным кодом, которую обычно выбирают продвинутые пользователи.
  • Pro версии: Коммерческие версии, предлагаемые Openwall, с еще большим набором функций и профессиональной поддержкой.

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

Поддержать блог можно лайком и комментарием. А если хочется сделать больше, можно кинуть монетку сове на кофе.

Раз вы прочитали эту статью, скорее всего вам будет интересен весь раздел про Анонимность в сети, а также статья Даркнет в культуре: фильмы, сериалы и книги о скрытой сети

Если Вам интересно, что еще можно найти на канале QA Helper, прочитайте статью: Вместо оглавления. Что вы найдете на канале QA Helper - справочник тестировщика?

Не забудьте подписаться на канал, чтобы не пропустить полезную информацию: QA Helper - справочник тестировщика

Пишите в комментариях что еще было бы интересно рассмотреть более подробно.

-2