Взлом паролей в Kali с помощью John the Ripper

КибербезопасностьBeginner
Практиковаться сейчас

Введение

В этой лабораторной работе вы изучите основы взлома паролей в Kali Linux, сосредоточившись на мощном инструменте John the Ripper. Основная цель — понять, как взламывать хеши паролей Linux, которые представляют собой зашифрованные версии паролей, обычно хранящиеся в файле /etc/shadow. Этот навык необходим при тестировании на проникновение для выявления слабых паролей и повышения безопасности системы.

При открытии терминала вы автоматически попадете в оболочку контейнера Kali Linux. Все команды в этой лабораторной работе должны выполняться в этой среде. Благодаря пошаговым инструкциям вы будете работать с примерами файлов хешей, создавать и использовать собственные словари, а также сохранять результаты взлома для последующего анализа. Лабораторная работа предназначена для начинающих и фокусируется на рабочем процессе с John the Ripper, который стабильно работает в предоставленной среде контейнера.

Настройка среды и установка инструментов

На первом этапе мы подготовим среду Kali Linux, установив основной инструмент для этой лабораторной работы. Как уже упоминалось, ваш сеанс терминала уже запущен внутри контейнера Kali Linux.

Мы будем использовать John the Ripper — универсальный и широко распространенный инструмент для взлома паролей, который надежно работает в предоставленном контейнере LabEx.

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

apt update

Затем установите John the Ripper с помощью следующей команды. Флаг -y автоматически подтверждает установку.

apt install -y john

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

john

Вы должны увидеть справочную информацию и версию программы, что подтверждает готовность инструмента. Вывод будет выглядеть примерно так:

John the Ripper 1.9.0-jumbo-1+bleeding-aec1328d6c 2021-11-02 10:45:52 +0100 OMP [linux-gnu 64-bit x86_64 AVX512BW AC]
Copyright (c) 1996-2021 by Solar Designer and others
Homepage: https://www.openwall.com/john/

Usage: john [OPTIONS] [PASSWORD-FILES]
...

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

Создание файла с примерами хешей

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

Все операции будут выполняться в каталоге /root контейнера Kali. Мы создадим файл хешей напрямую, используя заранее сгенерированные реальные хеши для простых и распространенных паролей, которые можно быстро взломать.

Создайте файл с примерами хешей с помощью следующей команды:

cd /root
echo -e "user1:\$6\$randomsalt\$WS2qjCQ1JrmZv8otdbtntIYu6lRzkk2aIVhgIMdMexOcvD9bEAoxtKcyZLXbR3wlhOOPBscJbLCPUU/fYjFhM0:18234:0:99999:7:::\nuser2:\$6\$anothersalt\$ZffCt8y5Hl8gLYS79/rhyT76C12kNhuOvkFR8Ll0RXcjQz2Nzuh3VUdT//e21HYfH6fP9btOp2aG22O3S7q1z/:18234:0:99999:7:::" > sample_hashes.txt

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

cd /root
cat > sample_hashes.txt << 'EOF'
user1:$6$randomsalt$WS2qjCQ1JrmZv8otdbtntIYu6lRzkk2aIVhgIMdMexOcvD9bEAoxtKcyZLXbR3wlhOOPBscJbLCPUU/fYjFhM0:18234:0:99999:7:::
user2:$6$anothersalt$ZffCt8y5Hl8gLYS79/rhyT76C12kNhuOvkFR8Ll0RXcjQz2Nzuh3VUdT//e21HYfH6fP9btOp2aG22O3S7q1z/:18234:0:99999:7:::
EOF

Префикс $6$ в каждой строке указывает на то, что хеш является SHA-512 crypt, что является общепринятым стандартом для современных систем Linux. Формат соответствует структуре файла shadow: username:hashed_password:last_change:min_age:max_age:warning:inactive:expire:reserved.

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

cat /root/sample_hashes.txt

Вывод должен показать две записи пользователей с реальными значениями хешей:

user1:$6$randomsalt$WS2qjCQ1JrmZv8otdbtntIYu6lRzkk2aIVhgIMdMexOcvD9bEAoxtKcyZLXbR3wlhOOPBscJbLCPUU/fYjFhM0:18234:0:99999:7:::
user2:$6$anothersalt$ZffCt8y5Hl8gLYS79/rhyT76C12kNhuOvkFR8Ll0RXcjQz2Nzuh3VUdT//e21HYfH6fP9btOp2aG22O3S7q1z/:18234:0:99999:7:::

Важные примечания:

  • Это реальные, правильно отформатированные хеши SHA-512, которые может обработать John the Ripper.
  • Пароли — password и 123456 — очень простые и распространенные, которые гарантированно есть в словаре по умолчанию.
  • Это обеспечивает быстрый взлом для демонстрационных целей, обычно в течение нескольких секунд.

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

Взлом хешей в режиме по умолчанию

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

Выполните следующую команду, чтобы начать процесс взлома файла sample_hashes.txt.

john /root/sample_hashes.txt

John загрузит хеши и начнет сеанс взлома. Вы увидите вывод, указывающий на прогресс. Поскольку мы создали реальные хеши с очень простыми и распространенными паролями (password и 123456), John должен быстро взломать их, используя режим словаря по умолчанию.

Using default input encoding: UTF-8
Loaded 2 password hashes with 2 different salts (sha512crypt, crypt(3) $6$ [SHA512 512/512 AVX512BW 8x])
Cost 1 (iteration count) is 5000 for all loaded hashes
Will run 2 OpenMP threads
Proceeding with single, rules:Single
Press 'q' or Ctrl-C to abort, almost any other key for status
Almost done: Processing the remaining buffered candidate passwords, if any.
Proceeding with wordlist:/usr/share/john/password.lst
...

Вы можете позволить John работать некоторое время или остановить процесс с помощью Ctrl-C, если хотите проверить результаты раньше. Чтобы просмотреть взломанные пароли, используйте параметр --show.

john --show /root/sample_hashes.txt

Если пароли успешно взломаны, вывод должен выглядеть так:

user1:password:18234:0:99999:7:::
user2:123456:18234:0:99999:7:::

2 password hashes cracked, 0 left

Поскольку мы использовали очень простые пароли (password и 123456), которые почти наверняка есть в словаре John по умолчанию, эти хеши должны быть взломаны очень быстро — часто за считанные секунды. Успех демонстрирует, что John the Ripper правильно работает с нашим файлом хешей, и показывает, как быстро могут быть скомпрометированы слабые пароли.

На следующем этапе мы рассмотрим, как предоставлять John пользовательские словари и настраивать различные параметры для повышения эффективности взлома.

Использование пользовательского словаря

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

Создайте файл с именем custom_wordlist.txt в каталоге /root с несколькими распространенными паролями, включая те, которые, как мы знаем, есть в нашем файле хешей.

echo -e "password\n123456\nadmin123\ntest1234\nqwerty\npassword123" > /root/custom_wordlist.txt

Проверьте содержимое вашего нового словаря.

cat /root/custom_wordlist.txt

Вывод должен отобразить шесть паролей, которые вы только что добавили:

password
123456
admin123
test1234
qwerty
password123

Теперь снова запустите John the Ripper, но на этот раз укажите ваш пользовательский словарь с помощью параметра --wordlist.

john --wordlist=/root/custom_wordlist.txt /root/sample_hashes.txt

Эта команда говорит John протестировать каждый пароль из custom_wordlist.txt на соответствие хешам в sample_hashes.txt. Поскольку наш словарь содержит реальные пароли (password и 123456), соответствующие хешам в нашем файле, John должен взломать их очень быстро.

После завершения процесса снова проверьте результаты.

john --show /root/sample_hashes.txt

Поскольку наш словарь содержит правильные пароли, вывод теперь должен показать взломанные учетные данные:

user1:password:18234:0:99999:7:::
user2:123456:18234:0:99999:7:::

2 password hashes cracked, 0 left

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

Сохранение взломанных паролей

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

Используйте john --show, чтобы отобразить восстановленные пароли, а затем перенаправьте этот вывод в файл /root/cracked_passwords.txt.

john --show /root/sample_hashes.txt > /root/cracked_passwords.txt

Выведите содержимое сохраненного отчета, чтобы убедиться, что он содержит взломанные учетные данные.

cat /root/cracked_passwords.txt

Вывод должен выглядеть примерно так:

user1:password:18234:0:99999:7:::
user2:123456:18234:0:99999:7:::

2 password hashes cracked, 0 left

Если файл еще не содержит взломанных паролей, повторно выполните команду john --wordlist=/root/custom_wordlist.txt /root/sample_hashes.txt из предыдущего шага, а затем снова сохраните результаты.

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

Резюме

В этой лабораторной работе вы получили практический опыт использования фундаментальных методов взлома паролей в среде Kali Linux. Вы начали с настройки рабочего пространства и установки John the Ripper. Затем вы научились подготавливать целевые данные, создав пример файла хешей, имитирующий формат /etc/shadow в Linux.

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