Введение
В этом лабораторном практикуме вы узнаете, как атаковать 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, которая является мощным инструментом для управления сетевыми интерфейсами.
Добавление IPv6-адреса к интерфейсу
eth0:Откройте терминал в виртуальной машине LabEx. Выполните следующую команду:
sudo ip addr add 2001:db8:1::1/64 dev eth0Эта команда добавляет IPv6-адрес
2001:db8:1::1/64к интерфейсуeth0./64указывает длину префикса сети, определяющую размер подсети IPv6.Включение интерфейса
eth0:sudo ip link set dev eth0 upЭта команда активирует интерфейс
eth0, позволяя ему отправлять и получать сетевой трафик.Проверка конфигурации 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-адреса.
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 после нескольких пакетов.Понимание опции
-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-сервисе.
Запуск SSH-сервиса:
Сначала необходимо убедиться, что SSH-сервис запущен на системе. Выполните следующую команду для запуска SSH-сервиса:
sudo systemctl start sshВы можете проверить, что SSH-сервис запущен, проверив его состояние:
sudo systemctl status sshВывод должен показать, что служба активна и запущена.
Настройка 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).Создание списка паролей:
Откройте терминал в виртуальной машине LabEx. Вы находитесь в каталоге
~/project. Используйте редакторnano, чтобы создать файл с именемpasswords.txtв этом каталоге:nano passwords.txtДобавьте следующие пароли в файл, по одному паролю в строке:
password 123456 qwerty admin labexСохраните файл, нажав
Ctrl + X, затемYдля подтверждения сохранения иEnterдля подтверждения имени файла.Запуск 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-сервис, используя полученные учетные данные.
Просмотр вывода Hydra:
Внимательно изучите вывод команды Hydra из предыдущего шага. Поищите строку, указывающую на успешное взлома пароля. Вывод должен быть похожим на этот:
[22][ssh] host: 2001:db8:1::1 login: labex password: [found_password]Если вы видите эту строку, это означает, что Hydra успешно взломал пароль для пользователя
labex. Если пароль не был найден, это свидетельствует о том, что текущий список паролей не содержит правильного пароля, что на самом деле является хорошим признаком безопасности.Попытка входа в 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 смог подключиться к службе.
Рекомендации по безопасности:
Эта лаборатория продемонстрировала важность использования надежных паролей и внедрения лучших практик безопасности для защиты вашего 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-сервисов.


