Назад | Перейти на главную страницу

Как узнать, какая версия SMB включена на удаленном хосте?

Моя локальная машина работает под управлением Windows 7, которая поддерживает последнюю выпущенную версию протокола SMB (SMB 2.1). У меня также есть удаленный хост, и я не знаю, какая операционная система или программное обеспечение для поддержки SMB установлено на этом удаленном хосте; Я знаю только, что удаленный хост поддерживает некоторые версия протокола SMB.

Как я могу узнать из командной строки (или PowerShell) моего компьютера с Windows 7, какая версия SMB поддерживается этим удаленным хостом?

Изменить: хотя я упоминал Windows 7 выше, я уверен, что этот вопрос актуален для многих системных / сетевых администраторов или сотрудников службы поддержки настольных компьютеров, поэтому я публикую вопрос здесь, а не на superuser.com.

В Windows 8 и более поздних версиях вы можете использовать команду powershell Get-SmbConnection чтобы проверить, какая версия SMB используется для каждого соединения.

Самый простой способ - установить WireShark и захватывать пакеты, он их декодирует и должен показать вам версию протокола. У них есть Запись SMBv2 на их вики, поэтому последняя версия WireShark должна декодировать его при захвате пакета.

Есть только два возможных способа определить версию SMB удаленного хоста.

Первый это захват баннера с помощью telnet. Даже в этом случае вам не гарантировано, что что-нибудь полезное вернется. Я могу успешно подключиться к одному из моих SMB-серверов, но не получаю полезной баннерной информации.

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

Вот что нужно сделать, чтобы получить версию SMB:

  1. Откройте Powershell от имени администратора. Щелкните правой кнопкой мыши значок и произнесите «открыть от имени администратора».
  2. Перейдите к c: \ с помощью "cd \", а затем "c:"
  3. Теперь вы собираетесь выполнить две команды в течение 10 секунд друг друга, иначе Windows закроет порты как неиспользуемые.

    3а. Запустите "dir \ SERVERNAME \ C $"

    3b. Запустите «Get-SmbConnection», и вы увидите, что столбец «Диалект» - это версия вашего SMB.

  4. Проверьте матрицу по этой ссылке, чтобы убедиться, что ОС соответствует правильной версии ОС, в противном случае вам потребуется обновить SMB.

https://blogs.technet.microsoft.com/josebda/2013/10/02/windows-server-2012-r2-which-version-of-the-smb-protocol-smb-1-0-smb-2- 0-smb-2-1-smb-3-0-or-smb-3-02-are-you-using /

Матрица стека SMB