Перечисление служб SMB в Nmap

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

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

Введение

В этом лабе мы исследуем, как перечислять SMB (Server Message Block) службы с использованием Nmap. SMB - это протокол сетевого файлового разделения, и идентификация доступных разделов может раскрыть ценную информацию о целевой системе. Мы будем использовать скрипт smb-enum-shares из Nmap Scripting Engine (NSE), чтобы достичь этого.

В лабе требуется выполнить команды Nmap для перечисления SMB-разделов на целевой машине, указать целевой IP-адрес (например, 192.168.1.1 или 127.0.0.1 для локального хоста), и интерпретировать вывод, чтобы определить доступные разделы, их типы и связанные комментарии. Мы также исследуем добавление подробности, сохранение результатов в файл и сравнение вывода с баннерным сканированием.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL nmap(("Nmap")) -.-> nmap/NmapGroup(["Nmap"]) nmap/NmapGroup -.-> nmap/save_output("Save Output to File") nmap/NmapGroup -.-> nmap/port_scanning("Port Scanning Methods") nmap/NmapGroup -.-> nmap/target_specification("Target Specification") nmap/NmapGroup -.-> nmap/verbosity("Verbosity Levels") nmap/NmapGroup -.-> nmap/os_version_detection("OS and Version Detection") nmap/NmapGroup -.-> nmap/service_detection("Service Detection") nmap/NmapGroup -.-> nmap/scripting_basics("Scripting Engine Basics") nmap/NmapGroup -.-> nmap/script_management("Script Categories and Updating") subgraph Lab Skills nmap/save_output -.-> lab-547099{{"Перечисление служб SMB в Nmap"}} nmap/port_scanning -.-> lab-547099{{"Перечисление служб SMB в Nmap"}} nmap/target_specification -.-> lab-547099{{"Перечисление служб SMB в Nmap"}} nmap/verbosity -.-> lab-547099{{"Перечисление служб SMB в Nmap"}} nmap/os_version_detection -.-> lab-547099{{"Перечисление служб SMB в Nmap"}} nmap/service_detection -.-> lab-547099{{"Перечисление служб SMB в Nmap"}} nmap/scripting_basics -.-> lab-547099{{"Перечисление служб SMB в Nmap"}} nmap/script_management -.-> lab-547099{{"Перечисление служб SMB в Nmap"}} end

Запуск перечисления SMB с помощью nmap --script smb-enum-shares 192.168.1.1

В этом шаге мы будем использовать Nmap с скриптом smb-enum-shares для перечисления SMB-разделов на целевой машине. SMB (Server Message Block) - это протокол сетевого файлового разделения, и перечисление разделов может раскрыть ценную информацию о целевой системе, такой как доступные ресурсы и потенциальные уязвимости.

Сначала разберем команду, которую мы будем использовать:

  • nmap: Это утилита для сканирования сети, которую мы будем использовать.
  • --script smb-enum-shares: Это говорит Nmap использовать скрипт smb-enum-shares из Nmap Scripting Engine (NSE). Этот скрипт специально предназначен для перечисления SMB-разделов.
  • 192.168.1.1: Это целевой IP-адрес. Важно: Вам нужно заменить это фактическим IP-адресом целевой машины, которую вы хотите сканировать. Если у вас нет конкретной цели, вы можете использовать 127.0.0.1 (локальный хост) для тестирования, но помните, что это будет сканировать только вашу собственную машину.

Теперь выполним команду. Откройте терминал Xfce и введите следующую команду, затем нажмите Enter:

nmap --script smb-enum-shares 192.168.1.1

Важно: Замените 192.168.1.1 фактическим IP-адресом вашей цели. Если вы тестируете локально, вы можете использовать 127.0.0.1.

Вывод покажет результаты перечисления SMB-разделов. Он может выглядеть примерно так (точный вывод зависит от целевой системы):

Starting Nmap 7.80 ( https://nmap.org ) at 2023-10-27 10:00 UTC
Nmap scan report for 192.168.1.1
Host is up (0.00043s latency).
Not shown: 999 filtered ports
PORT    STATE SERVICE
445/tcp open  microsoft-ds

Host script results:
| smb-enum-shares:
|   account_used: guest
|   \\192.168.1.1\IPC$:
|     type: STYPE_IPC_HIDDEN
|     comment: Remote IPC
|     flags: 0x80000000
|   \\192.168.1.1\ADMIN$:
|     type: STYPE_DISKTREE
|     comment: Remote Admin
|     flags: 0x0
|_  \\192.168.1.1\C$:
|     type: STYPE_DISKTREE
|     comment: Default share
|     flags: 0x0

Nmap done: 1 IP address (1 host up) scanned in 2.54 seconds

Этот вывод показывает SMB-разделы, которые Nmap смог обнаружить на целевой системе. Вы можете увидеть имена разделов (например, IPC$, ADMIN$, C$), их типы, комментарии и флаги. Эта информация может быть полезной для идентификации потенциальных векторов атаки или неправильной настройки.

Сканирование порта 445 с помощью nmap --script smb-enum-shares -p 445 127.0.0.1

В этом шаге мы сосредоточимся на сканировании конкретного порта 445, который обычно связан с SMB. Задав порт, мы можем сузить сканирование и, возможно, получить результаты быстрее. Мы будем использовать тот же скрипт smb-enum-shares, что и раньше, но на этот раз мы укажем Nmap сканировать только порт 445.

Разберём команду:

  • nmap: Утилита для сканирования сети.
  • --script smb-enum-shares: Указывает скрипт NSE для перечисления SMB-разделов.
  • -p 445: Эта опция告诉 Nmap только сканировать порт 445. Без неё Nmap бы сканировал диапазон часто используемых портов.
  • 127.0.0.1: Это целевой IP-адрес, в данном случае - локальный хост. Это означает, что мы сканируем службу SMB, работающую на нашей собственной машине.

Теперь откройте терминал Xfce и выполните следующую команду:

nmap --script smb-enum-shares -p 445 127.0.0.1

Вывод покажет результаты перечисления SMB-разделов конкретно на порту 445. Он может выглядеть примерно так:

Starting Nmap 7.80 ( https://nmap.org ) at 2023-10-27 10:05 UTC
Nmap scan report for localhost (127.0.0.1)
Host is up (0.00014s latency).

PORT    STATE SERVICE
445/tcp open  microsoft-ds

Host script results:
| smb-enum-shares:
|   account_used: guest
|   \\127.0.0.1\IPC$:
|     type: STYPE_IPC_HIDDEN
|     comment: Remote IPC
|     flags: 0x80000000
|   \\127.0.0.1\ADMIN$:
|     type: STYPE_DISKTREE
|     comment: Remote Admin
|     flags: 0x0
|_  \\127.0.0.1\C$:
|     type: STYPE_DISKTREE
|     comment: Default share
|     flags: 0x0

Nmap done: 1 IP address (1 host up) scanned in 1.23 seconds

Заметьте, что вывод похож на предыдущий шаг, но на этот раз мы специально указали порт 445. Это может быть полезно, когда вы знаете, что SMB работает на конкретном порту и хотите избежать ненужного сканирования других портов.

Добавление подробности в сканирование с помощью nmap -v --script smb-enum-shares 192.168.1.1

В этом шаге мы добавим подробность в наш сканирование с помощью Nmap. Подробность обеспечивает более детальный вывод, который может быть полезен для понимания того, что делает Nmap, и для устранения любых проблем. Параметр -v увеличивает уровень подробности.

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

  • nmap: Утилита для сканирования сети.
  • -v: Эта опция увеличивает уровень подробности. Добавление дополнительных параметров -v (например, -vv) увеличивает подробность ещё больше.
  • --script smb-enum-shares: Указывает скрипт NSE для перечисления SMB-разделов.
  • 192.168.1.1: Целевой IP-адрес. Не забудьте заменить это фактическим IP-адресом вашей цели.

Теперь откройте терминал Xfce и выполните следующую команду:

nmap -v --script smb-enum-shares 192.168.1.1

Важно: Замените 192.168.1.1 фактическим IP-адресом вашей цели. Если вы тестируете локально и не активировали SMB, вы, возможно, не заметите большого различия в выводе.

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

Starting Nmap 7.80 ( https://nmap.org ) at 2023-10-27 10:10 UTC
NSE: Loaded 1 script for scanning.
Initiating Ping Scan at 10:10
Scanning 192.168.1.1 [4 ports]
Completed Ping Scan at 10:10, 0.00s elapsed (1 total hosts)
Initiating Parallel DNS resolution of 1 host. at 10:10
Completed Parallel DNS resolution of 1 host. at 10:10, 0.00s elapsed
Initiating Connect Scan at 10:10
Scanning 192.168.1.1 [1000 ports]
Discovered open port 445/tcp on 192.168.1.1
Completed Connect Scan at 10:10, 0.12s elapsed (1000 total ports)
Initiating Service scan at 10:10
Scanning 1 service on 192.168.1.1
Completed Service scan at 10:10, 6.41s elapsed (1 service total)
NSE: Starting runlevel 1 (of 1) scan.
NSE: Running script smb-enum-shares on 192.168.1.1.
Nmap scan report for 192.168.1.1
Host is up (0.00038s latency).
Not shown: 999 filtered ports
PORT    STATE SERVICE
445/tcp open  microsoft-ds
Host script results:
| smb-enum-shares:
|   account_used: guest
|   \\192.168.1.1\IPC$:
|     type: STYPE_IPC_HIDDEN
|     comment: Remote IPC
|     flags: 0x80000000
|   \\192.168.1.1\ADMIN$:
|     type: STYPE_DISKTREE
|     comment: Remote Admin
|     flags: 0x0
|_  \\192.168.1.1\C$:
|     type: STYPE_DISKTREE
|     comment: Default share
|     flags: 0x0

NSE: Script Post-scanning.
Nmap done: 1 IP address (1 host up) scanned in 7.01 seconds

Подробный вывод показывает различные этапы сканирования с помощью Nmap, включая сканирование пингов, DNS-разрешение, сканирование подключений, сканирование служб и выполнение скрипта smb-enum-shares. Этот уровень детализации может быть бесценен для отладки и понимания процесса сканирования.

Сохранение результатов SMB с помощью nmap --script smb-enum-shares -oN smb.txt 127.0.0.1

В этом шаге мы узнаем, как сохранить результаты сканирования с помощью Nmap в файл. Это полезно для последующего анализа или для передачи результатов другим. Мы будем использовать параметр -oN, чтобы сохранить вывод в "обычном" формате, который читается человеком.

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

  • nmap: Утилита для сканирования сети.
  • --script smb-enum-shares: Указывает скрипт NSE для перечисления SMB-разделов.
  • -oN smb.txt: Эта опция告诉 Nmap сохранить вывод в обычном формате в файл с именем smb.txt. Файл будет сохранён в текущей директории, которая равна ~/project.
  • 127.0.0.1: Это целевой IP-адрес, в данном случае - локальный хост.

Теперь откройте терминал Xfce и выполните следующую команду:

nmap --script smb-enum-shares -oN smb.txt 127.0.0.1

После завершения сканирования вывод не будет отображаться в терминале. Вместо этого результаты будут сохранены в файл с именем smb.txt в директории ~/project.

Для проверки того, что файл был создан и содержит результаты сканирования, вы можете использовать команду cat, чтобы отобразить содержимое файла:

cat smb.txt

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

## Nmap 7.80 scan initiated Fri Oct 27 10:15:00 2023 as: nmap --script smb-enum-shares -oN smb.txt 127.0.0.1
Nmap scan report for localhost (127.0.0.1)
Host is up (0.00014s latency).
PORT    STATE SERVICE
445/tcp open  microsoft-ds
Host script results:
| smb-enum-shares:
|   account_used: guest
|   \\127.0.0.1\IPC$:
|     type: STYPE_IPC_HIDDEN
|     comment: Remote IPC
|     flags: 0x80000000
|   \\127.0.0.1\ADMIN$:
|     type: STYPE_DISKTREE
|     comment: Remote Admin
|     flags: 0x0
|_  \\127.0.0.1\C$:
|     type: STYPE_DISKTREE
|     comment: Default share
|     flags: 0x0
## Nmap done at Fri Oct 27 10:15:01 2023 -- 1 IP address (1 host up) scanned in 1.23 seconds

Вы также можете использовать команду ls -l, чтобы проверить размер файла и дату модификации:

ls -l smb.txt

Это покажет вам информацию о файле smb.txt, включая его размер, дату модификации и права доступа.

Просмотр SMB-разделов в терминале Xfce

В этом шаге мы рассмотрим SMB-разделы, идентифицированные на предыдущих шагах. Мы будем использовать команду cat, чтобы просмотреть содержимое файла smb.txt, в котором находятся результаты сканирования с помощью Nmap. Затем мы обсудим, как интерпретировать вывод и выявить потенциальные уязвимости безопасности.

Сначала откройте терминал Xfce и используйте команду cat, чтобы отобразить содержимое файла smb.txt:

cat smb.txt

Вывод будет показывать результаты сканирования с помощью Nmap, включая идентифицированные SMB-разделы. Например, вы можете увидеть вывод подобный этому:

## Nmap 7.80 scan initiated Fri Oct 27 10:20:00 2023 as: nmap --script smb-enum-shares -oN smb.txt 127.0.0.1
Nmap scan report for localhost (127.0.0.1)
Host is up (0.00014s latency).
PORT    STATE SERVICE
445/tcp open  microsoft-ds
Host script results:
| smb-enum-shares:
|   account_used: guest
|   \\127.0.0.1\IPC$:
|     type: STYPE_IPC_HIDDEN
|     comment: Remote IPC
|     flags: 0x80000000
|   \\127.0.0.1\ADMIN$:
|     type: STYPE_DISKTREE
|     comment: Remote Admin
|     flags: 0x0
|_  \\127.0.0.1\C$:
|     type: STYPE_DISKTREE
|     comment: Default share
|     flags: 0x0
## Nmap done at Fri Oct 27 10:20:01 2023 -- 1 IP address (1 host up) scanned in 1.23 seconds

Рассмотрим вывод:

  • \\127.0.0.1\IPC$: Это раздел для межпроцессного взаимодействия, который используется для коммуникации между процессами на одном компьютере или по сети. Обычно он скрыт (STYPE_IPC_HIDDEN) и используется для системных функций.
  • \\127.0.0.1\ADMIN$: Это административный раздел, который предоставляет доступ к директории системы Windows. Обычно его используют администраторы для удаленного управления.
  • \\127.0.0.1\C$: Это стандартный раздел для диска C. Он позволяет администраторам получать удаленный доступ ко всему диску C.

Эти разделы часто присутствуют на системах Windows. Однако важно проверить их права доступа и убедиться, что они надежно защищены. Например, разделы ADMIN$ и C$ обычно должны быть доступны только администраторам. Если эти разделы доступны несанкционированным пользователям, это может привести к уязвимостям безопасности.

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

Сравнение с сканированием баннера в терминале Xfce

В этом шаге мы проведём сканирование баннера с использованием Nmap и сравним результаты с результатами перечисления SMB-разделов из предыдущих шагов. Сканирование баннера позволяет определить операционную систему и службы, запущенные на целевом объекте, что может дать ценную информацию для выявления потенциальных уязвимостей.

Сначала проведём сканирование баннера на порту 445 с использованием Nmap. Откройте терминал Xfce и выполните следующую команду:

nmap -p 445 -sV 127.0.0.1

Рассмотрим состав команды:

  • nmap: Утилита для сканирования сети.
  • -p 445: Указывает порт 445, который используется для SMB.
  • -sV: Включает определение версии, которое пытается определить информацию о службе и версии, запущенной на целевом порту.
  • 127.0.0.1: Это целевой IP-адрес, в данном случае - локальный хост.

Вывод команды покажет службу, запущенную на порту 445, и информацию о её версии. Например, вы можете увидеть такой вывод:

Starting Nmap 7.80 ( https://nmap.org ) at Fri Oct 27 10:25:00 2023
Nmap scan report for localhost (127.0.0.1)
Host is up (0.00014s latency).

PORT    STATE SERVICE      VERSION
445/tcp open  microsoft-ds Windows 10 Pro 19042 microsoft-ds

Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 5.23 seconds

В этом примере сканирование баннера показывает, что на целевом объекте запущена Windows 10 Pro 19042. Эта информация может быть использована для выявления потенциальных уязвимостей, специфичных для этой версии операционной системы.

Теперь сравним эту информацию с результатами перечисления SMB-разделов из предыдущего шага. В предыдущем шаге мы определили следующие SMB-разделы: IPC$, ADMIN$ и C$. Также мы знаем, что на целевом объекте запущена Windows 10 Pro 19042.

Объединяя эти данные, мы можем начать составлять более полное представление о целевой системе и её потенциальных уязвимостях. Например, мы можем изучить известные уязвимости в Windows 10 Pro 19042, связанные с SMB-разделами, и определить, является ли целевая система уязвимой.

Это сравнение помогает нам устанавливать приоритеты и сосредоточиться на наиболее вероятных векторах атаки. Например, если мы обнаружили известную уязвимость в Windows 10 Pro 19042, которая позволяет несанкционированному доступу к разделу ADMIN$, мы можем сосредоточиться на эксплуатации этой уязвимости.

Резюме

В этом практическом занятии мы изучили, как использовать Nmap с сценарием smb-enum-shares для перечисления SMB-разделов на целевой машине. Мы узнали, что SMB - это протокол сетевого файлового разделения, и что перечисление разделов может раскрыть ценную информацию о целевой системе, включая доступные ресурсы и потенциальные уязвимости. Основная команда nmap --script smb-enum-shares <target_ip> использовалась для выполнения перечисления.

Помимо этого, мы практиковали указание целевого порта (445), повышение подробности с помощью флага -v и сохранение вывода в файл с использованием опции -oN. Наконец, мы проверили SMB-разделы в терминале Xfce и сравнили результаты с сканированием баннера, демонстрируя разные методы сбора информации о SMB-службах.