Атака на SMB - сервисы с использованием Hydra

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

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

Введение

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

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


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL hydra(("Hydra")) -.-> hydra/HydraGroup(["Hydra"]) hydra/HydraGroup -.-> hydra/installation("Installation and Setup") hydra/HydraGroup -.-> hydra/password_creation("Password List Creation") hydra/HydraGroup -.-> hydra/username_creation("Username List Creation") hydra/HydraGroup -.-> hydra/target_ip("Target IP Specification") hydra/HydraGroup -.-> hydra/target_service("Target Service Selection") hydra/HydraGroup -.-> hydra/multiple_targets("Multiple Targets Attack") hydra/HydraGroup -.-> hydra/success_detection("Login Success Detection") hydra/HydraGroup -.-> hydra/troubleshooting("Basic Troubleshooting") subgraph Lab Skills hydra/installation -.-> lab-550761{{"Атака на SMB - сервисы с использованием Hydra"}} hydra/password_creation -.-> lab-550761{{"Атака на SMB - сервисы с использованием Hydra"}} hydra/username_creation -.-> lab-550761{{"Атака на SMB - сервисы с использованием Hydra"}} hydra/target_ip -.-> lab-550761{{"Атака на SMB - сервисы с использованием Hydra"}} hydra/target_service -.-> lab-550761{{"Атака на SMB - сервисы с использованием Hydra"}} hydra/multiple_targets -.-> lab-550761{{"Атака на SMB - сервисы с использованием Hydra"}} hydra/success_detection -.-> lab-550761{{"Атака на SMB - сервисы с использованием Hydra"}} hydra/troubleshooting -.-> lab-550761{{"Атака на SMB - сервисы с использованием Hydra"}} end

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

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

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

sudo apt update
sudo apt install samba -y

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

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

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

Теперь создадим новый упрощенный файл конфигурации. Используем nano для редактирования файла конфигурации.

sudo nano /etc/samba/smb.conf

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

[global]
   workgroup = WORKGROUP
   server string = Samba Server %v
   netbios name = fileserver
   security = user
   map to guest = bad user
   name resolve order = bcast host lmhosts wins

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

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

Теперь создадим общий каталог.

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

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

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

sudo smbpasswd -a labex

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

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

sudo systemctl restart smbd nmbd

Важное примечание: Команда systemctl может не работать напрямую в среде Docker - контейнера. Если вы столкнетесь с ошибкой, вы можете попробовать перезапустить службы Samba с помощью следующих команд:

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

Теперь ваш локальный SMB - сервер настроен. Вы создали общий каталог с именем share и добавили пользователя labex с паролем Samba.

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

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

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

nano ~/project/users.txt

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

labex
admin
guest
user

Нажмите 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 - сервера.

Запуск атаки на SMB с использованием Hydra

На этом этапе мы используем 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 - сервер, используя имена пользователей и пароли из предоставленных вами списков. Он попробует каждую комбинацию имени пользователя и пароля, пока не найдет правильную или не исчерпает все возможные варианты.

В выводе будут показаны предпринимаемые попытки. Если Hydra найдет правильную комбинацию имени пользователя и пароля, он отобразит ее в выводе.

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

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

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

На этом этапе мы проанализируем вывод атаки на SMB с использованием Hydra, чтобы определить, были ли какие - либо учетные данные успешно взломаны.

После выполнения команды Hydra на предыдущем этапе внимательно изучите вывод в терминале. Hydra отобразит все найденные правильные комбинации имени пользователя и пароля.

Если удалось успешно войти, вывод будет выглядеть примерно так:

[smb] host: 127.0.0.1   login: labex   password: <the_password>

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

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

Если вы успешно взломали пароль, запишите имя пользователя и пароль. Затем вы можете использовать эти учетные данные для доступа к SMB - шару, который мы создали на первом этапе.

Для проверки взломанных учетных данных можно использовать команду smbclient. Сначала установите ее, если она еще не установлена:

sudo apt update
sudo apt install smbclient -y

Затем используйте следующую команду для подключения к SMB - шару, заменив <the_password> взломанным паролем:

smbclient //127.0.0.1/share -U labex -p <the_password>

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

Если вы не смогли взломать пароль, вы можете попробовать добавить больше распространенных паролей в файл passwords.txt и снова запустить команду Hydra. Помните, что эффективность брутфорс - атаки зависит от качества и размера списка паролей.

Резюме

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

Конфигурация включала установку рабочей группы, строки сервера, NetBIOS - имени, параметров безопасности и определение пути к общему каталогу, его видимости, доступа на запись и доступа для гостей. Мы также создали общий каталог и установили для него разрешения 777 для простоты, при этом отметили, что в реальных сценариях рекомендуются более строгие разрешения. Следующим этапом является добавление пользователя Samba.