Атака на IPv6-цели с помощью Hydra

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

Введение

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

Лабораторный практикум начинается с настройки сервера с IPv6-адресом 2001:db8:1::1/64 на интерфейсе eth0 с помощью команды ip. Затем вы активируете интерфейс и проверите конфигурацию. Наконец, вы будете использовать Hydra с опцией -6 для атаки на IPv6 SSH-сервис и проверите результаты атаки.

Настройка сервера с IPv6-адресом

На этом шаге вы настроите виртуальную машину LabEx с IPv6-адресом. Это важный шаг для включения IPv6-связи и подготовки к последующей атаке на IPv6 SSH-сервис.

Сначала давайте разберёмся с основами адресации IPv6. IPv6-адреса имеют длину 128 бит и обычно представляются в шестнадцатеричном формате. Типичный IPv6-адрес выглядит так: 2001:0db8:85a3:0000:0000:8a2e:0370:7334.

Для упрощения настройки вы назначите адрес 2001:db8:1::1/64 интерфейсу eth0. Интерфейс eth0 — это общее имя сетевого интерфейса в системах Linux.

Теперь настроим IPv6-адрес. Вы будете использовать команду ip, которая является мощным инструментом для управления сетевыми интерфейсами.

  1. Добавление IPv6-адреса к интерфейсу eth0:

    Откройте терминал в виртуальной машине LabEx. Выполните следующую команду:

    sudo ip addr add 2001:db8:1::1/64 dev eth0

    Эта команда добавляет IPv6-адрес 2001:db8:1::1/64 к интерфейсу eth0. /64 указывает длину префикса сети, определяющую размер подсети IPv6.

  2. Включение интерфейса eth0:

    sudo ip link set dev eth0 up

    Эта команда активирует интерфейс eth0, позволяя ему отправлять и получать сетевой трафик.

  3. Проверка конфигурации IPv6-адреса:

    Чтобы проверить, что IPv6-адрес настроен правильно, снова используйте команду ip addr:

    ip addr show eth0

    Вывод должен содержать IPv6-адрес 2001:db8:1::1/64 в разделе inet6. Вы увидите что-то подобное:

    2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
        link/ether 00:16:3e:08:6d:7a brd ff:ff:ff:ff:ff:ff
        altname enp0s5
        altname ens5
        inet 172.16.50.97/24 metric 100 brd 172.16.50.255 scope global dynamic eth0
           valid_lft 1892159937sec preferred_lft 1892159937sec
        inet6 2001:db8:1::1/64 scope global
           valid_lft forever preferred_lft forever
        inet6 fe80::216:3eff:fe08:6d7a/64 scope link
           valid_lft forever preferred_lft forever

    Строка inet6 2001:db8:1::1/64 scope global подтверждает, что IPv6-адрес успешно настроен.

Подготовка к атаке на SSH по IPv6

На этом шаге вы подготовитесь к атаке на IPv6 SSH-сервис, изучив и используя опцию -6 с сетевыми инструментами. Опция -6 обычно используется для указания предпочтения IPv6 при взаимодействии с сетевыми службами. Это важно, потому что по умолчанию некоторые инструменты могут предпочесть IPv4, если доступны как IPv4, так и IPv6-адреса.

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

  1. Ping IPv6-адреса:

    Откройте терминал в виртуальной машине LabEx. Выполните следующую команду:

    ping -6 2001:db8:1::1

    Эта команда отправляет пакеты ICMP Echo Request на IPv6-адрес 2001:db8:1::1. Если сервер доступен через IPv6, вы должны увидеть ответы от сервера. Вывод должен быть похож на это:

    PING 2001:db8:1::1(2001:db8:1::1) 56 data bytes
    64 bytes from 2001:db8:1::1: icmp_seq=1 ttl=64 time=0.026 ms
    64 bytes from 2001:db8:1::1: icmp_seq=2 ttl=64 time=0.041 ms
    64 bytes from 2001:db8:1::1: icmp_seq=3 ttl=64 time=0.035 ms
    64 bytes from 2001:db8:1::1: icmp_seq=4 ttl=64 time=0.032 ms
    ^C
    --- 2001:db8:1::1 ping statistics ---
    4 packets transmitted, 4 received, 0% packet loss, time 3078ms
    rtt min/avg/max/mdev = 0.026/0.033/0.041/0.005 ms

    Нажмите Ctrl+C, чтобы остановить команду ping после нескольких пакетов.

  2. Понимание опции -6:

    Опция -6 сообщает команде ping, что необходимо использовать IPv6. Многие другие сетевые инструменты, такие как ssh, curl и wget, также поддерживают опцию -6. Использование этой опции гарантирует, что инструмент попытается подключиться к целевому хосту с использованием IPv6.

    На следующем шаге вы будете использовать Hydra для атаки на SSH-сервис. Вы будете использовать опцию -6 с Hydra, чтобы нацелиться именно на IPv6-адрес SSH-сервера. Это гарантирует, что вы тестируете безопасность конфигурации IPv6 SSH.

Атака на IPv6 SSH-сервис

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

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

  1. Запуск SSH-сервиса:

    Сначала необходимо убедиться, что SSH-сервис запущен на системе. Выполните следующую команду для запуска SSH-сервиса:

    sudo systemctl start ssh

    Вы можете проверить, что SSH-сервис запущен, проверив его состояние:

    sudo systemctl status ssh

    Вывод должен показать, что служба активна и запущена.

  2. Настройка SSH для прослушивания на IPv6:

    По умолчанию SSH может прослушивать только IPv4-адреса. Вам необходимо настроить его для прослушивания и IPv6-адресов. Сначала проверьте, на каких адресах SSH в настоящее время прослушивает:

    ss -tlnp | grep :22

    Вы должны увидеть вывод, похожий на LISTEN 0 128 0.0.0.0:22 0.0.0.0:*, что означает, что SSH прослушивает только IPv4-адреса.

    Теперь отредактируйте конфигурационный файл SSH, чтобы включить прослушивание IPv6:

    sudo nano /etc/ssh/sshd_config

    Найдите строку, содержащую #AddressFamily any или AddressFamily inet, и измените её на:

    AddressFamily any

    Если такой строки нет, добавьте её. Это указывает SSH на прослушивание как IPv4, так и IPv6-адресов.

    Сохраните файл, нажав Ctrl + X, затем Y для подтверждения сохранения и Enter для подтверждения имени файла.

    Перезапустите SSH-сервис, чтобы применить изменения:

    sudo systemctl restart ssh

    Проверьте, что SSH теперь прослушивает как IPv4, так и IPv6:

    ss -tlnp | grep :22

    Теперь вы должны увидеть, что SSH прослушивает как 0.0.0.0:22 (IPv4), так и [::]:22 (IPv6).

  3. Создание списка паролей:

    Откройте терминал в виртуальной машине LabEx. Вы находитесь в каталоге ~/project. Используйте редактор nano, чтобы создать файл с именем passwords.txt в этом каталоге:

    nano passwords.txt

    Добавьте следующие пароли в файл, по одному паролю в строке:

    password
    123456
    qwerty
    admin
    labex

    Сохраните файл, нажав Ctrl + X, затем Y для подтверждения сохранения и Enter для подтверждения имени файла.

  4. Запуск Hydra для атаки на IPv6 SSH-сервис:

    Теперь вы будете использовать Hydra для атаки на SSH-сервис. Вы будете использовать опцию -6, чтобы указать, что вы хотите нацелиться на IPv6-адрес. Вы также укажете имя пользователя для атаки (например, labex), список паролей, который вы создали (passwords.txt), и IPv6-адрес SSH-сервера (2001:db8:1::1).

    Выполните следующую команду:

    hydra -6 -l labex -P passwords.txt ssh://[2001:db8:1::1]

    Разберём эту команду:

    • hydra: Команда для запуска инструмента Hydra.
    • -6: Указывает Hydra использовать IPv6.
    • -l labex: Указывает имя пользователя для атаки. В данном случае вы атакуете пользователя labex.
    • -P passwords.txt: Указывает список паролей для использования. В данном случае вы используете файл passwords.txt, который вы создали в текущем каталоге ~/project.
    • ssh://[2001:db8:1::1]: Указывает целевой SSH-сервис. Префикс ssh:// указывает, что вы атакуете SSH-сервис, а [2001:db8:1::1] — это IPv6-адрес сервера, заключённый в квадратные скобки (необходимо для IPv6-адресов в Hydra).

    Hydra начнёт перебирать пароли из файла passwords.txt для SSH-сервиса. Если Hydra найдёт правильный пароль, он отобразит учётные данные. Вывод может выглядеть так, если пароль не найден:

    ... (вывод Hydra) ...

    Если пароль не найден, вы можете добавить больше распространённых паролей в файл passwords.txt. Вы также можете использовать опцию -V, чтобы увидеть подробный вывод, показывающий каждую попытку.

    Если Hydra успешно найдёт пароль, вывод будет похож на это:

    ... (вывод Hydra) ...

    Этот вывод указывает, что Hydra успешно взломал пароль для пользователя labex.

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

Проверка результатов атаки на IPv6

На этом шаге вы проверите результаты атаки Hydra на IPv6 SSH-сервис. Вы проверите, удалось ли Hydra взломать пароль, и, если да, попробуете войти в SSH-сервис, используя полученные учетные данные.

  1. Просмотр вывода Hydra:

    Внимательно изучите вывод команды Hydra из предыдущего шага. Поищите строку, указывающую на успешное взлома пароля. Вывод должен быть похожим на этот:

    [22][ssh] host: 2001:db8:1::1   login: labex   password: [found_password]

    Если вы видите эту строку, это означает, что Hydra успешно взломал пароль для пользователя labex. Если пароль не был найден, это свидетельствует о том, что текущий список паролей не содержит правильного пароля, что на самом деле является хорошим признаком безопасности.

  2. Попытка входа в SSH-сервис (если пароль был найден):

    Если Hydra успешно нашел пароль, вы можете попробовать войти в SSH-сервис, используя команду ssh. Вы будете использовать опцию -6, чтобы указать, что вы хотите подключиться к IPv6-адресу.

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

    ssh -6 labex@2001:db8:1::1

    При запросе пароля введите найденный пароль. Если вход успешен, вы войдете в SSH-сервер.

    Если Hydra не нашел пароль, вы все равно можете проверить подключение к SSH IPv6, попытавшись подключиться (будет запрошен пароль, но вы можете нажать Ctrl+C, чтобы отменить):

    ssh -6 labex@2001:db8:1::1

    Тот факт, что вам предлагается ввести пароль, подтверждает, что SSH правильно настроен для IPv6 и Hydra смог подключиться к службе.

  3. Рекомендации по безопасности:

    Эта лаборатория продемонстрировала важность использования надежных паролей и внедрения лучших практик безопасности для защиты вашего SSH-сервиса. Вот некоторые рекомендации:

    • Используйте надежные пароли: Используйте пароли длиной не менее 12 символов, содержащие комбинацию заглавных и строчных букв, цифр и символов.
    • Отключите аутентификацию по паролю: Рассмотрите возможность отключения аутентификации по паролю и использования SSH-ключей вместо этого. SSH-ключи более безопасны, чем пароли, потому что их гораздо сложнее взломать.
    • Внедрите ограничение скорости: Используйте инструменты, такие как fail2ban, для внедрения ограничения скорости на попытки входа в SSH. Это предотвратит попытки злоумышленников перебрать слишком много паролей за короткий промежуток времени.
    • Держите свое программное обеспечение в актуальном состоянии: Убедитесь, что ваше программное обеспечение SSH-сервера обновлено с последними исправлениями безопасности.

Резюме

В этой лабораторной работе вы настраивали сервер с IPv6-адресом, что является важным шагом для обеспечения IPv6-связи. Это включало в себя понимание основ адресации IPv6 и использование команды ip для назначения адреса 2001:db8:1::1/64 интерфейсу eth0.

Затем вы активировали интерфейс и проверили конфигурацию с помощью ip addr show eth0, убедившись, что IPv6-адрес был правильно назначен. Вы также настраивали SSH для прослушивания IPv6-адресов, изменяя конфигурационный файл SSH и перезапуская службу.

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