Введение
Добро пожаловать на лабораторную работу по использованию John the Ripper (JtR) в сценариях тестирования на проникновение. John the Ripper — это мощный и популярный инструмент с открытым исходным кодом для взлома паролей. Для пентестера это незаменимый инструмент для выявления и эксплуатации слабых паролей, которые остаются одной из наиболее распространенных уязвимостей безопасности.
В этой лабораторной работе вы научитесь интегрировать JtR в типичный рабочий процесс пентестинга. Вы начнете со взлома пароля пользователя из захваченного файла shadow, используете эту информацию в контексте повышения привилегий, а затем примените JtR для взлома пароля защищенного файла. Наконец, вы изучите важные шаги по документированию и отчетности о ваших находках заинтересованным сторонам.
Интеграция John the Ripper в рабочий процесс пентестинга
На этом этапе вы выполните первую фазу атаки на пароли: взлом хэшей, полученных во время разведки. Распространенной целью для локального повышения привилегий является файл /etc/shadow, который хранит хэши паролей пользователей в системах Linux. Мы уже смоделировали это, предоставив файл shadow.txt в вашем каталоге ~/project.
Сначала давайте запустим John the Ripper против файла shadow.txt, используя пользовательский список слов (wordlist). Список слов — это просто текстовый файл, содержащий потенциальные пароли.
Выполните следующую команду, чтобы начать процесс взлома:
john --wordlist=wordlist.txt shadow.txt
John загрузит хэши и протестирует каждый пароль из wordlist.txt против них. Поскольку пароль для weakuser находится в нашем списке слов, он будет быстро взломан.
Using default input encoding: UTF-8
Loaded 1 password hash (sha512, 512/512 AVX512BW 16x)
Cost 1 (iteration count) is 5000 for all loaded hashes
Will run 4 processing threads
Press 'q' or Ctrl-C to abort, almost any other key for status
password123 (weakuser)
1g 0:00:00:00 DONE (2023-10-27 10:30) 100.0g/s 100.0p/s 100.0c/s 100.0C/s password123
Use the "--show" option to display all of the cracked passwords reliably
Session completed
Как только пароль будет взломан, John сохранит его в файле john.pot, расположенном в каталоге ~/.john/. Чтобы просмотреть взломанные пароли для конкретного файла хэшей, вы можете использовать опцию --show.
Выполните эту команду, чтобы отобразить взломанный пароль:
john --show shadow.txt
Вы увидите имя пользователя и взломанный пароль.
weakuser:password123:19657:0:99999:7:::
1 password hash cracked, 0 left
Вы успешно взломали пароль пользователя, что является критически важным первым шагом во многих тестах на проникновение.
Использование John the Ripper для локального повышения привилегий
На этом этапе вы узнаете, как взломанный пароль может быть использован для повышения привилегий. После взлома пароля для weakuser следующим логичным шагом является проверка того, какой доступ предоставляет эта учетная запись. Если weakuser имеет привилегии sudo или доступ к конфиденциальным файлам, вы можете получить больший контроль над системой.
Давайте смоделируем это, попытавшись переключиться на учетную запись weakuser, используя только что взломанный пароль (password123).
Используйте команду su (substitute user) для переключения на weakuser:
su weakuser
Система запросит у вас пароль. Введите password123 и нажмите Enter.
Password:
Если пароль верный, ваш командный интерпретатор изменится, указывая на то, что вы теперь работаете как weakuser.
weakuser@...:/home/labex/project$
В реальном тесте на проникновение вы бы теперь исследовали систему с точки зрения этого пользователя, например, выполнив sudo -l для проверки прав sudo. Для этой лабораторной работы достаточно просто продемонстрировать, что вы можете получить доступ к учетной записи.
Теперь введите exit, чтобы вернуться в вашу исходную оболочку пользователя labex.
exit
Это упражнение демонстрирует прямое влияние слабого пароля: оно может привести к несанкционированному доступу к учетной записи, что является ступенькой для дальнейшего компрометации системы.
Применение John the Ripper в сетевых тестах на проникновение
На этом этапе вы увидите, как универсальность John the Ripper выходит за рамки хэшей паролей системы. Пентестеры часто находят файлы, защищенные паролем, такие как ZIP-архивы, в общих файловых ресурсах или во время постэксплуатации. JtR может взломать и их.
Мы предоставили защищенный паролем файл с именем protected.zip в вашем каталоге ~/project. Процесс состоит из двух этапов: сначала извлечение хэша из файла, который можно взломать, а затем использование John для взлома этого хэша.
Многие инструменты, связанные с JtR, помогают извлекать хэши из различных типов файлов. Для ZIP-файлов мы используем zip2john. Выполните следующую команду, чтобы извлечь хэш из protected.zip и сохранить его в файл с именем zip_hash.txt:
zip2john protected.zip > zip_hash.txt
Вы можете просмотреть содержимое zip_hash.txt, чтобы увидеть, как выглядит хэш.
cat zip_hash.txt
Теперь запустите John the Ripper на этом новом файле хэшей. На этот раз мы не будем указывать список слов и позволим John использовать свои режимы по умолчанию, которые включают режим одиночного взлома, пробующий распространенные вариации паролей.
john zip_hash.txt
John должен очень быстро взломать пароль.
Using default input encoding: UTF-8
Loaded 1 password hash (PKZIP, 32/64)
Cost 1 (iteration count) is 1000 for all loaded hashes
Will run 4 processing threads
Press 'q' or Ctrl-C to abort, almost any other key for status
supersecret (protected.zip)
1g 0:00:00:00 DONE (2023-10-27 10:35) 100.0g/s 12345p/s 12345c/s 12345C/s supersecret
Session completed
Как и раньше, используйте опцию --show, чтобы просмотреть взломанный пароль для ZIP-файла.
john --show zip_hash.txt
protected.zip:supersecret
1 password hash cracked, 0 left
Вы успешно восстановили пароль для ZIP-файла, продемонстрировав, как JtR может применяться к различным типам данных, обнаруженных во время теста на проникновение.
Документирование результатов атак с помощью John the Ripper
На этом этапе вы сосредоточитесь на критически важном, нетехническом аспекте тестирования на проникновение: документировании. Простого обнаружения уязвимостей недостаточно; вы должны четко их задокументировать, чтобы их можно было исправить. Хороший отчет подробно описывает уязвимость, ее влияние и рекомендацию по устранению.
Теперь вы создадите простой отчет о находках в файле markdown. Используйте текстовый редактор nano для создания файла с именем findings.md.
nano findings.md
В редакторе nano скопируйте и вставьте следующий текст. Этот шаблон документирует две уязвимости, которые вы обнаружили до сих пор.
## Результаты тестирования на проникновение - Слабые пароли
### Находка 1: Слабый пароль учетной записи пользователя
- **Уязвимость:** Слабый пароль для пользователя `weakuser`.
- **Пароль:** `password123`
- **Влияние:** Потенциал для локального повышения привилегий и несанкционированного доступа к системе.
- **Рекомендация:** Внедрить политику сильных паролей, требующую сложности и длины. Сбросить пароль для `weakuser`.
### Находка 2: Слабый пароль на защищенном архиве
- **Уязвимость:** Слабый пароль для архива `protected.zip`.
- **Пароль:** `supersecret`
- **Влияние:** Конфиденциальные данные внутри архива подвергаются риску для любого, кто найдет файл.
- **Рекомендация:** Использовать сильные, сложные пароли для всех зашифрованных файлов и архивов.
После вставки текста сохраните файл и выйдите из nano, нажав Ctrl+X, затем Y и, наконец, Enter.
Теперь вы создали четкую и краткую запись своих находок, что является неотъемлемой частью любого профессионального теста на проникновение.
Сообщение о слабых паролях заинтересованным сторонам
На этом заключительном этапе вы попрактикуетесь в создании краткого резюме, подходящего для заинтересованных сторон, таких как системные администраторы или руководство. В то время как подробный документ с находками предназначен для технических команд, сводный отчет более прямолинейно сообщает о риске и необходимости действий.
Вы создадите простой текстовый файл с именем report_summary.txt, который имитирует электронное письмо или сводку отчета.
Используйте редактор nano для создания файла:
nano report_summary.txt
В редакторе nano скопируйте и вставьте следующее резюме. Этот текст четко и лаконично сообщает о проблеме и требуемых действиях.
Кому: Системный администратор
От: Пентестер
Тема: Критическая уязвимость: обнаружены слабые пароли
В этом отчете обобщены критические уязвимости паролей, обнаруженные во время недавнего тестирования на проникновение.
1. Пользователь 'weakuser' имеет взламываемый пароль ('password123'), что создает риск повышения привилегий.
2. Защищенный файл 'protected.zip' использует слабый пароль ('supersecret'), что делает его содержимое уязвимым.
Требуются немедленные действия для внедрения более строгой политики паролей и сброса выявленных слабых паролей.
Сохраните файл и выйдите из nano, нажав Ctrl+X, затем Y и Enter.
Это завершает рабочий процесс тестирования на проникновение для данного сценария. Вы не только выявили и использовали уязвимости, но и задокументировали их и подготовили отчет, чтобы гарантировать их устранение. Это завершает цикл от обнаружения до устранения.
Резюме
Поздравляем с завершением этой лабораторной работы! Вы успешно прошли реалистичный рабочий процесс тестирования на проникновение с использованием John the Ripper.
В этой лабораторной работе вы научились:
- Интегрировать John the Ripper в процесс пентестинга путем взлома хэшей из файла
shadow. - Использовать взломанный пароль для имитации попытки локального повышения привилегий.
- Применять JtR к различным типам данных, взламывая пароль защищенного ZIP-архива.
- Понимать критическую важность документирования ваших находок в ясной и структурированной манере.
- Создавать сводный отчет для эффективного сообщения об уязвимостях заинтересованным сторонам.
Эти навыки являются основополагающими для любого специалиста по кибербезопасности, занимающегося этичным хакингом и аудитом безопасности.


