Взломать пароли ZIP в John the Ripper

HydraHydraBeginner
Практиковаться сейчас

💡 Этот учебник переведен с английского с помощью ИИ. Чтобы просмотреть оригинал, вы можете перейти на английский оригинал

Введение

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

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


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL nmap(("Nmap")) -.-> nmap/NmapGroup(["Nmap"]) wireshark(("Wireshark")) -.-> wireshark/WiresharkGroup(["Wireshark"]) hydra(("Hydra")) -.-> hydra/HydraGroup(["Hydra"]) nmap/NmapGroup -.-> nmap/installation("Installation and Setup") wireshark/WiresharkGroup -.-> wireshark/installation("Installation and Setup") hydra/HydraGroup -.-> hydra/installation("Installation and Setup") subgraph Lab Skills nmap/installation -.-> lab-549930{{"Взломать пароли ZIP в John the Ripper"}} wireshark/installation -.-> lab-549930{{"Взломать пароли ZIP в John the Ripper"}} hydra/installation -.-> lab-549930{{"Взломать пароли ZIP в John the Ripper"}} end

Установка John the Ripper

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

Виртуальная среда LabEx уже предустановлена со всеми необходимыми зависимостями, что делает процесс установки простым. Мы будем использовать пакетный менеджер Ubuntu (apt), который управляет установкой и обновлением программного обеспечения.

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

    sudo apt update

    Команда sudo предоставляет вам права администратора, а apt update обновляет список доступных пакетов.

  2. Теперь установите John the Ripper с помощью следующей команды:

    sudo apt install john -y

    Флаг -y автоматически подтверждает установку, не требуя от вас вводить 'yes' в процессе.

  3. После завершения установки убедимся, что все работает правильно, проверив установленную версию:

    john --version

    Вы должны увидеть вывод, похожий на следующий:

    John the Ripper 1.9.0-jumbo-1

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

Создание парольного ZIP - архива

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

  1. Сначала создадим пример текстового файла для защиты. Мы будем использовать простой текстовый файл в демонстрационных целях:

    echo "This is a secret file" > secret.txt

    Эта команда создает новый файл с именем secret.txt, содержащий текст "This is a secret file". Символ > перенаправляет вывод команды echo в файл.

  2. Теперь создадим парольный ZIP - архив с помощью утилиты zip. Флаг -e включает шифрование. В учебных целях мы используем "password123" в качестве примера пароля (учтите, что это слабый пароль и его никогда не следует использовать в реальных сценариях):

    zip -e secret.zip secret.txt

    Команда попросит вас дважды ввести и подтвердить пароль. Эта двойная проверка помогает избежать опечаток в пароле:

    Enter password:
    Verify password:
  3. Убедимся, что ZIP - архив был успешно создан. Команда ls -l показывает подробную информацию о файлах в текущем каталоге:

    ls -l secret.zip

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

    -rw-r--r-- 1 labex labex 210 May 10 10:00 secret.zip
  4. Наконец, проверим парольную защиту, попробовав извлечь файл без предоставления пароля. Это подтверждает, что наш ZIP - архив надежно защищен:

    unzip secret.zip

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

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

Извлечение хэша ZIP - архива

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

  1. Сначала перейдем в наш рабочий каталог и убедимся, что ZIP - архив существует. Это гарантирует, что мы работаем с правильным файлом в нужном месте:

    cd ~/project
    ls secret.zip
  2. Теперь мы будем использовать специальный инструмент John the Ripper под названием zip2john. Эта утилита извлекает хэш пароля из ZIP - архивов в формате, который John может взломать. Символ > перенаправляет вывод в новый файл:

    zip2john secret.zip > zip_hash.txt
  3. Посмотрим на извлеченный хэш, чтобы понять, какую информацию он содержит. Команда cat отображает содержимое файла в терминале:

    cat zip_hash.txt

    Вы должны увидеть вывод, похожий на этот пример (ваш фактический хэш будет отличаться):

    secret.zip:$pkzip$1*2*2*0*1c*1a*5e9b8f7d*0*42*0*1c*5e9b*55dc*secret.txt*$/pkzip$
  4. Хэш содержит несколько важных компонентов:

    • secret.zip: Имя исходного ZIP - архива
    • $pkzip$: Указывает, что это хэш в формате PKZIP
    • Длинная строка цифр и букв: Фактические зашифрованные данные пароля
    • secret.txt: Имя файла внутри ZIP - архива

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

Запуск John the Ripper для взлома пароля

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

  1. Сначала убедитесь, что вы находитесь в правильном каталоге с файлом хэша. Это важно, так как John должен иметь доступ к файлу хэша, который мы создали на предыдущем этапе:

    cd ~/project
    ls zip_hash.txt

    Команда ls просто выводит список файлов, чтобы подтвердить, что zip_hash.txt существует в текущем каталоге.

  2. Теперь запустим John the Ripper с указанным форматом PKZIP, так как мы работаем с ZIP - архивом. Флаг --format=PKZIP сообщает John, какого типа шифрование ожидать:

    john --format=PKZIP zip_hash.txt
  3. John будет отображать информацию о текущем прогрессе, пытаясь подобрать различные комбинации паролей. В нашем случае, так как мы использовали слабый пароль ("password123"), взлом должен быть завершен практически мгновенно. Вот как выглядит успешный вывод:

    Loaded 1 password hash (PKZIP [32/64])
    Will run 2 OpenMP threads
    Press 'q' or Ctrl - C to abort, almost any other key for status
    password123      (secret.zip)
    1g 0:00:00:00 DONE (2023 - 05 - 10 10:00) 50.00g/s 50.00p/s 50.00c/s 50.00C/s password123
    Use the "--show" option to display all of the cracked passwords reliably
    Session completed

    "1g" означает, что John проверил 1 вариант, а "password123" - это взломанный пароль.

  4. Чтобы просмотреть взломанный пароль в удобном формате, используем опцию --show. Эта команда отображает все успешно взломанные пароли из файла хэша:

    john --show zip_hash.txt

    Вы увидите вывод, похожий на следующий:

    secret.zip:password123:secret.txt:secret.zip

    Этот вывод содержит четыре части информации, разделенные двоеточиями: имя ZIP - архива, взломанный пароль, файл, содержащийся в архиве, и имя архива снова.

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

Подтверждение пароля

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

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

    john --show zip_hash.txt

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

    secret.zip:password123:secret.txt:secret.zip
  2. Теперь проверим, работает ли этот пароль, пытаясь извлечь ZIP - архив. Команда unzip - это стандартный инструмент для извлечения ZIP - архивов в Linux:

    unzip secret.zip

    Система попросит вас ввести пароль. Введите "password123" (тот, который мы только что взломали):

    Archive:  secret.zip
    [secret.zip] secret.txt password:
  3. После ввода правильного пароля мы должны проверить два момента: что файл был извлечен и что его содержимое соответствует нашим ожиданиям. Эти команды выводят список файлов в каталоге и отображают содержимое секретного файла:

    ls
    cat secret.txt

    Вы должны увидеть следующее, подтверждающее успешное извлечение:

    This is a secret file
  4. Наконец, хорошей практикой является удаление извлеченных файлов после завершения тестирования. Это помогает сохранить чистоту рабочей области и предотвращает случайное использование тестовых файлов в будущих упражнениях:

    rm secret.txt

Успешное извлечение подтверждает, что John the Ripper правильно взломал пароль ZIP - архива. В реальной оценке безопасности этот этап проверки является обязательным перед представлением результатов. Он доказывает, что взломанный пароль не просто теоретически подходит, но и дает доступ к защищенному контенту.

Резюме

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

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