Брутфорс SSH с помощью Hydra

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

Введение

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

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

Установка Hydra

На этом этапе мы установим Hydra — мощный инструмент для взлома паролей, используемый для атак методом перебора на различные сетевые службы. Hydra особенно полезна при тестировании на проникновение, так как она может систематически перебирать различные комбинации имен пользователей и паролей для получения доступа к защищенным системам. Она поддерживает множество протоколов, включая SSH (который мы будем использовать в этой работе), FTP, HTTP и другие.

  1. Сначала откройте терминал в вашей виртуальной среде LabEx. Терминал — это ваш основной интерфейс для выполнения команд в Linux. Убедитесь, что вы находитесь в рабочей директории по умолчанию, где мы будем выполнять все наши действия:

    cd ~/project
  2. Перед установкой любого нового программного обеспечения рекомендуется обновить список пакетов. Это гарантирует, что вы получите последнюю доступную версию Hydra и всех её зависимостей:

    sudo apt update
  3. Теперь установим Hydra с помощью менеджера пакетов apt, который управляет установкой ПО в системах на базе Debian, таких как Ubuntu. Флаг -y автоматически подтверждает установку:

    sudo apt install -y hydra
  4. После установки проверим, правильно ли установлена Hydra, узнав её версию. Команда head -n 1 выводит только первую строку вывода, содержащую информацию о версии:

    hydra -h | head -n 1
    Вывод, показывающий версию Hydra

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

    Hydra v9.2 (c) 2022 by van Hauser/THC & David Maciejak - Please do not use in military or secret service organizations, or for illegal purposes.
  5. Hydra также предлагает версию с графическим интерфейсом для тех, кто предпочитает визуальные инструменты. Хотя в этой лабораторной работе мы будем использовать версию для командной строки, вы можете при желании установить версию GTK+ GUI с помощью команды:

    sudo apt install -y hydra-gtk
    Вывод, показывающий версию Hydra

Настройка целевого SSH-сервера

На этом этапе мы настроим локальный SSH-сервер, который будет служить нашей целью для взлома паролей на последующих этапах. Это позволит нам практиковать методы тестирования на проникновение в контролируемой среде. SSH (Secure Shell) — это протокол, используемый для безопасного удаленного входа между компьютерами, и мы настроим его уязвимую версию в учебных целях.

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

    cd ~/project
  2. Установите пакет сервера OpenSSH. Это программное обеспечение превратит вашу машину в SSH-сервер, способный принимать удаленные соединения:

    sudo apt install -y openssh-server
  3. Создайте специальную тестовую учетную запись пользователя со слабым паролем (исключительно в демонстрационных целях). В реальных сценариях именно такие слабые пароли и ищут злоумышленники:

    sudo useradd -m testuser
    echo "testuser:password123" | sudo chpasswd
  4. Настройте SSH для разрешения аутентификации по паролю (временно для этой лабораторной работы). По умолчанию во многих системах аутентификация по паролю отключена в целях безопасности, но мы включаем её здесь, чтобы продемонстрировать работу атак методом перебора:

    sudo sed -i 's/PasswordAuthentication no/PasswordAuthentication yes/' /etc/ssh/sshd_config
  5. Перезапустите службу SSH, чтобы изменения вступили в силу. Службы часто требуют перезапуска после изменения конфигурации:

    sudo service ssh restart
  6. Проверьте, запущен ли SSH-сервер. Эта команда проверяет, активен ли наш SSH-сервер и ожидает ли он соединений:

    sudo service ssh status

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

  7. Протестируйте SSH-соединение локально. Эта финальная проверка подтверждает, что всё работает, прежде чем мы перейдем к фазе атаки:

    ssh testuser@localhost -o StrictHostKeyChecking=no

    При появлении запроса введите пароль password123. После успешного входа введите exit, чтобы вернуться в основную сессию. Опция -o StrictHostKeyChecking=no предотвращает запрос SSH на проверку отпечатка сервера, что допустимо в данной лабораторной среде.

    Результат теста локального SSH-соединения

Подготовка списков имен пользователей и паролей

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

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

    cd ~/project
  2. Создайте файл со списком имен пользователей с помощью текстового редактора nano. Распространенные имена пользователей часто проверяются первыми при брутфорс-атаках, так как во многих системах используются стандартные или предсказуемые логины:

    nano usernames.txt

    Добавьте следующие распространенные имена пользователей (нажмите Ctrl+O для сохранения, затем Ctrl+X для выхода):

    admin
    root
    testuser
    user
    guest
  3. Создайте файл со списком паролей. Слабые пароли, подобные этим, используются часто и зачастую становятся первыми целями при тестировании безопасности:

    nano passwords.txt

    Добавьте следующие распространенные пароли:

    password
    password123
    123456
    qwerty
    letmein
  4. Убедитесь, что файлы созданы правильно, выведя их содержимое. Этот этап проверки гарантирует отсутствие опечаток или проблем с форматированием в ваших списках:

    cat usernames.txt
    cat passwords.txt

    Вы должны увидеть созданные вами списки в терминале.

  5. (Опционально) Сгенерируйте дополнительные варианты паролей с помощью crunch. Этот инструмент помогает создавать более полные списки паролей, автоматически генерируя комбинации на основе заданных шаблонов:

    sudo apt install -y crunch
    crunch 4 6 0123456789 -o num_passwords.txt

    Это создаст числовые пароли длиной от 4 до 6 символов. Команда задает минимальную длину (4), максимальную длину (6) и набор символов (цифры 0-9).

Запуск Hydra против SSH

На этом этапе мы будем использовать Hydra для выполнения атаки методом перебора на наш локальный SSH-сервер. Брутфорс — это метод перебора множества комбинаций логин/пароль до тех пор, пока не будет найдена верная. Мы будем использовать словари, подготовленные ранее, чтобы автоматизировать этот процесс.

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

    cd ~/project
  2. Теперь запустим Hydra со специфическими параметрами. Структура команды указывает Hydra, что атаковать и каким образом. Разберем её подробно:

    hydra -L usernames.txt -P passwords.txt ssh://localhost -t 4 -vV

    Пояснение параметров:

    • -L usernames.txt: Указывает на наш список возможных имен пользователей.
    • -P passwords.txt: Указывает на наш файл словаря паролей.
    • ssh://localhost: Целевой сервис SSH на этой машине.
    • -t 4: Контролирует скорость, ограничивая количество одновременных попыток до 4.
    • -vV: Отображает подробный прогресс выполнения в терминале.
  3. Во время работы Hydra будет отображать каждую попытку в режиме реального времени. Когда она найдет верные учетные данные, они четко появятся в выводе следующим образом:

    [22][ssh] host: localhost   login: testuser   password: password123
    Отображение результатов работы Hydra
  4. (Опционально) Чтобы сохранить результаты на постоянной основе, мы можем записать их в файл. Это полезно для документирования или дальнейшего анализа:

    hydra -L usernames.txt -P passwords.txt ssh://localhost -t 4 -o results.txt
  5. После завершения сканирования вы можете просмотреть сохраненные результаты с помощью команды:

    cat results.txt

Резюме

В этой лабораторной работе вы научились проводить атаку методом перебора на SSH с помощью Hydra — мощного инструмента для взлома паролей. Упражнение охватило установку Hydra, настройку SSH-сервера для тестирования и создание целевых списков имен пользователей и паролей.

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