Введение
В этой лабораторной работе вы научитесь выполнять перечисление (enumeration) по протоколу Server Message Block (SMB) с использованием Metasploit Framework. SMB — это сетевой протокол, используемый для предоставления общего доступа к файлам, принтерам и последовательным портам между узлами в сети. Определение версии SMB является важным первым шагом в тестировании на проникновение, поскольку оно помогает идентифицировать конкретное программное обеспечение и его версию, работающие на цели, которые затем могут быть сопоставлены с известными уязвимостями.
Мы будем использовать один из вспомогательных сканирующих модулей Metasploit, а именно auxiliary/scanner/smb/smb_version, для сканирования цели и определения ее версии SMB. Metasploit — это мощный фреймворк для тестирования на проникновение, который упрощает поиск, эксплуатацию и проверку уязвимостей.
К концу этой лабораторной работы вы будете знакомы с запуском Metasploit, поиском модулей, настройкой параметров модулей и запуском сканера для сбора информации о целевой системе.
Поиск вспомогательного модуля smb_version
На этом шаге мы запустим консоль Metasploit Framework и найдем подходящий модуль для сканирования версии SMB. msfconsole является основным интерфейсом для взаимодействия с Metasploit.
Сначала откройте терминал и запустите консоль Metasploit, выполнив следующую команду. Инициализация может занять некоторое время.
msfconsole -q
Флаг -q делает стартовый баннер тихим. После загрузки вы увидите приглашение Metasploit, которое выглядит как msf6 >.
Теперь найдем модуль сканирования версии SMB. Мы можем использовать команду search для поиска модулей, связанных с smb_version.
search smb_version
Вы увидите список совпадающих модулей. Тот, который нас интересует, является вспомогательным сканером. Вывод должен выглядеть примерно так:
Matching Modules
================
## Name Disclosure Date Rank Check Description
- ---- --------------- ---- ----- -----------
0 auxiliary/scanner/smb/smb_version normal No SMB Version Detection
1 exploit/windows/smb/smb_doublepulsar_eternalblue 2017-04-14 extraordinary Yes SMBv1/SMBv2 DoublePulsar/EternalBlue Unauthenticated RCE
Из вывода видно, что auxiliary/scanner/smb/smb_version — это модуль, который нам нужен.
Выбор модуля smb_version
На этом шаге мы выберем модуль, найденный на предыдущем шаге. После идентификации правильного модуля вам нужно загрузить его в контекст фреймворка с помощью команды use.
В приглашении msfconsole введите следующую команду, чтобы выбрать сканер smb_version:
use auxiliary/scanner/smb/smb_version
Вы заметите, что ваше приглашение изменится, отражая текущий загруженный модуль:
msf6 auxiliary(scanner/smb/smb_version) >
Это означает, что модуль теперь активен. Чтобы увидеть, какие параметры мы можем настроить для этого модуля, используйте команду show options:
show options
Это отобразит таблицу параметров, которые вы можете установить для модуля.
Module options (auxiliary/scanner/smb/smb_version):
Name Current Setting Required Description
---- --------------- -------- -----------
RHOSTS yes The target host(s), range CIDR identifier, or hosts file with syntax 'file:<path>'
THREADS 1 yes The number of concurrent threads (max one per host)
Обратите особое внимание на параметры RHOSTS и THREADS, поскольку мы настроим их на следующих шагах. Столбец Required показывает, что RHOSTS должен быть установлен перед запуском сканера.
Установка опции RHOSTS на диапазон IP-адресов цели
На этом шаге мы настроим цель для нашего сканирования. Опция RHOSTS (Remote Hosts) указывает Metasploit, какие машины сканировать. Для этой лаборатории мы установили сервер Samba на локальной машине, чтобы он служил нашей целью. Поэтому мы установим RHOSTS на IP-адрес обратной петли, 127.0.0.1.
Используйте команду set для присвоения значения RHOSTS:
set RHOSTS 127.0.0.1
Metasploit подтвердит изменение:
RHOSTS => 127.0.0.1
Вы можете проверить, что опция установлена правильно, снова выполнив show options. Вы увидите, что 127.0.0.1 теперь указан как Current Setting для RHOSTS. Это обязательный шаг, так как сканеру необходимо знать свою цель.
Установка опции THREADS для более быстрого сканирования
На этом шаге мы настроим опцию THREADS. Эта опция контролирует, сколько параллельных потоков сканирования будет использовать Metasploit. Увеличение количества потоков может значительно ускорить сканирование при работе с большим количеством хостов.
Хотя сканирование одного хоста (127.0.0.1) не даст прироста производительности от нескольких потоков, это хорошая практика для изучения настройки этой опции. Давайте установим количество потоков равным 50.
Используйте команду set еще раз, чтобы изменить значение THREADS:
set THREADS 50
Metasploit подтвердит настройку:
THREADS => 50
Теперь сканер настроен на использование до 50 потоков, что будет очень эффективно для сканирования диапазона сети, такого как 192.168.1.0/24.
Запуск сканера и анализ вывода
На этом шаге, после настройки всех опций, мы готовы запустить сканер. Команда run (или ее псевдоним exploit) запустит модуль против указанной цели.
В вашем приглашении msfconsole выполните сканер:
run
Модуль теперь попытается подключиться к порту 445 на 127.0.0.1 и определить версию SMB. Вывод будет выглядеть примерно так:
[*] 127.0.0.1:445 - Sending SMBv1 request
[+] 127.0.0.1:445 - Host is running Samba 4.15.13-Ubuntu (Samba 4.15.13-Ubuntu)
[*] 127.0.0.1:445 - Scanned 1 of 1 hosts (100% complete)
[*] Auxiliary module execution completed
Проанализируем вывод:
- Символ
[+]указывает на успешный результат. - Строка
Host is running Samba 4.15.13-Ubuntuсообщает нам точную версию программного обеспечения сервера SMB. Эта информация чрезвычайно ценна для пентестера, который теперь может искать уязвимости, специфичные для этой версии. - Последние строки подтверждают завершение сканирования.
Вы успешно перечислили версию SMB на цели. Чтобы выйти из консоли Metasploit, просто введите exit.
exit
Резюме
В этой лаборатории вы успешно использовали вспомогательный сканер Metasploit для выполнения перечисления SMB. Вы изучили основной рабочий процесс использования модулей в Metasploit Framework.
Вы отработали следующие ключевые навыки:
- Запуск консоли Metasploit (
msfconsole). - Поиск модулей с помощью команды
search. - Выбор и загрузка модуля с помощью команды
use. - Просмотр и настройка опций модуля, таких как
RHOSTSиTHREADS, с помощьюshow optionsиset. - Выполнение модуля с помощью команды
run. - Анализ вывода для сбора критически важной информации о цели.
Этот процесс сбора информации является основополагающим элементом любой оценки безопасности или пентеста. Поздравляем с завершением лаборатории!


