Введение
Общественная организация закрыла портал сотрудников. В упражнении по реагированию появилась синтетическая копия старой выгрузки паролей, а текущий архив продолжает работать. Определите, что действительно восстанавливается предложенными кандидатами, не теряя связь старой записи с человеком.
Вы воспользуетесь работающим архивом, запустите John the Ripper в Kali Linux и создадите закрытый перечень результатов восстановления. Все личности вымышлены. Контейнеры аудитора и цели изолированы и используют общее ядро одной VM. Разрешены только предоставленные файлы и сервис; установка и программирование не нужны.
Требуется уметь вводить команды и распознавать пути. Параметры и файловые операции объясняются в работе. Примерное время с чтением и обычными ошибками — 45 минут; это оценка автора. Следующая пошаговая работа начинается в независимой среде и проверяет текущие последствия.
Откройте архив и защитите результаты
На этом шаге вы увидите обычный доступ до исследования выгрузки. Откройте Auditor. Терминал входит в контейнер аудита Kali под пользователем auditor, в /home/auditor/project. Архив работает в другом контейнере.
SSH — протокол зашифрованного удалённого входа. Этот архив принимает пароли и возвращает только имя аутентифицированного аккаунта, не предоставляя обычную оболочку. Начните с несекретного демонстрационного аккаунта. -p выбирает порт сервиса. Два параметра -o выбирают подготовленный файл ключей сервера и требуют совпадения ключа. Ключ хоста идентифицирует сервер, пароль аутентифицирует вас. Завершающий whoami запрашивает имя удалённого аккаунта.
ssh -o UserKnownHostsFile=/etc/reuse/known_hosts -o StrictHostKeyChecking=yes -p 12222 demo@staff-archive whoami
При запросе demo@staff-archive's password: введите welcome-7 и нажмите Enter. Символы пароля не отображаются. Ожидайте demo, затем локальное приглашение. Не вводите пароль как команду оболочки. При опечатке отмените ввод через Ctrl+C и повторите команду SSH. Ошибка соединения или ключа хоста не означает отказ в учётных данных; не отключайте проверку ключа.
Прочитайте разрешённую область. cat показывает файл; относительный путь начинается в текущем каталоге. В inputs находятся оригиналы только для чтения.
cat inputs/scope.tsv
Разделённые табуляцией столбцы — employee_id, current_login, host и port. Разрешены только эти текущие аккаунты на staff-archive:12222 и demo. Не подбирайте дополнительные имена, хосты или списки кандидатов.
Восстановленные пароли конфиденциальны даже здесь. umask 077 убирает доступ группы и остальных к новым файлам этой терминальной сессии. mkdir -m 700 создаёт каталог, вход в который разрешён только владельцу. Выполните отдельно:
umask 077
mkdir -m 700 findings
findings — ваша область для записи результатов. Если она уже существует после переподключения, сохраните её; в новой сессии повторите umask 077. Команда pwd показывает текущий каталог, а cd /home/auditor/project возвращает сюда при ошибке относительного пути. Сохраняйте все входные файлы, аккаунты архива и их текущие пароли на протяжении аудита.
Восстановите совпадения из предоставленного словаря
На этом шаге вы проверите пять кандидатов по четырём настоящим хешам паролей. Хеш — значение, односторонне полученное из пароля. Автономное восстановление вычисляет хеши кандидатов с сохранёнными настройками и сравнивает их; оно не расшифровывает пароли и не входит в архив.
Оставайтесь в Auditor, в /home/auditor/project. Прочитайте каждый небольшой входной файл:
cat inputs/legacy.txt
cat inputs/candidates.txt
Старые строки имеют формат record_id:hash. $6$ обозначает SHA-512 crypt. Сохранённое значение включает соль, благодаря которой одинаковые пароли дают разные сохранённые значения. Не теряйте идентификатор записи. Этот крошечный синтетический словарь ускоряет упражнение; по его скорости нельзя оценивать стойкость паролей в реальной системе.
Параметр John --format=sha512crypt выбирает формат, а --wordlist читает предоставленных кандидатов. Файл pot хранит восстановленные пары хеш/пароль. --pot выбирает закрытый файл вместо общего по умолчанию. --session задаёт расположение файлов возобновления и журнала запуска. OMP_NUM_THREADS=2 ограничивает рабочие потоки только для этой команды. В этих путях нет пробелов, поэтому кавычки не нужны.
OMP_NUM_THREADS=2 john --format=sha512crypt --wordlist=inputs/candidates.txt --pot=/home/auditor/project/findings/audit.pot --session=/home/auditor/project/findings/recovery inputs/legacy.txt
Дождитесь приглашения. Должны восстановиться три хеша; время и порядок могут отличаться. При повторе No password hashes left to crack может означать, что результаты уже есть в pot, а не что входной файл пуст. --show читает сохранённые результаты без нового запуска восстановления:
john --show --format=sha512crypt --pot=/home/auditor/project/findings/audit.pot inputs/legacy.txt
Ожидайте следующие соответствия, возможно в ином порядке:
portal-17:cedar42
portal-23:pebble7
portal-41:birch81
3 password hashes cracked, 1 left
Экспортируйте реальный вывод. > перенаправляет стандартный вывод в файл, заменяя этот файл результатов при повторе. Хеши не изменяются.
john --show --format=sha512crypt --pot=/home/auditor/project/findings/audit.pot inputs/legacy.txt > findings/recovered.txt
cat findings/recovered.txt
Экспорт должен сохранять идентификаторы записей и восстановленные пароли. Исправьте опечатку в пути и повторите затронутую команду. Если результат доступен другим, chmod 600 findings/recovered.txt вернёт чтение и запись только владельцу; так же можно исправить другой файл результатов. Не распространяйте pot или открытый текстовый экспорт как сводку об инциденте.
Сохраните связь с личностью и неопределённость
На этом шаге вы создадите перечень восстановления без паролей. Оставайтесь в Auditor и прочитайте старый список сотрудников:
cat inputs/legacy-roster.tsv
Он связывает record_id с постоянным employee_id и отображаемым именем. Двух людей зовут Morgan Rivera: portal-17 принадлежит E101, а portal-41 — E103. Имя не позволяет надёжно связать старую запись с текущим логином.
Здесь recovered означает, что исходный хеш совпал с предоставленным кандидатом. not-recovered означает, что ни один кандидат не совпал в этом завершённом ограниченном запуске. Это не означает стойкость, безопасность, отсутствие или отсутствие повторного использования. Принимает ли текущий сервис эти данные, пока неизвестно для каждой записи.
Создайте findings/recovery.tsv со столбцами record_id, employee_id, recovery. printf трактует \t как табуляцию, а \n как перевод строки. Одинарные кавычки сохраняют эти последовательности до чтения командой printf; > создаёт или заменяет этот перечень без паролей.
printf 'record_id\temployee_id\trecovery\nportal-17\tE101\trecovered\nportal-23\tE102\trecovered\nportal-41\tE103\trecovered\nportal-58\tE104\tnot-recovered\n' > findings/recovery.tsv
cat findings/recovery.tsv
Проверьте, что все четыре записи встречаются ровно раз с идентификаторами из списка: три восстановлены, одна остаётся неизвестной за пределами бюджета. Исправьте нужное значение в тексте printf и выполните команду снова. Закрытые pot и экспорт позволяют продолжить разрешённую работу; этот перечень сообщает результат без раскрытия паролей.
Резюме
Вы воспользовались работающим SSH-сервисом, восстановили три синтетических старых пароля с John и сохранили исходные связи с людьми. Закрытые результаты и перечень без паролей отделяют успешные автономные совпадения от ограничений исчерпанного словаря. Пока не доказано, что какой-либо восстановленный пароль работает для текущего аккаунта сотрудника. Следующая пошаговая работа делает этот отдельный вывод с точными разрешёнными парами.



