По-умолчанию в Windows Server 2016/2019 и Windows 10 (начиная с билда 1709) отключена поддержка сетевого протокола для общего доступа к файлам в сетевых папках Server Message Block 1.0 (SMBv1). Этот протокол в большинстве случаев нужно только для обеспечения работы устаревших систем, например снятых с поддержки Windows XP, Windows Server 2003 и т.д. В этой статье мы рассмотрим, как включить или корректно отключить поддержку клиента и сервера SMBv1 в Windows 10 и Windows Server 2016/2019.
В одной из предыдущих статей мы приводили таблицу совместимости версий протокола SMB на стороне клиента и сервера. Согласно этой таблице, старые версии клиентов (XP, Server 2003 и некоторые устаревшие *nix клиенты) могут использовать для доступа к файловым ресурсам только протокол SMB 1.0. Если таких клиентов в сети не осталось, можно полностью отключить SMB 1.0 на стороне файловых серверов (в том числе контролерах домена AD) и клиентских станциях.
В Windows 10 и Windows Server 2016 протокол SMBv1 разделен на два отдельных компонента – SMB клиент и SMB сервер, которые можно включать/отключать отдельно.
Аудит доступа к файловому серверу по SMB v1.0
Перед отключением и полным удалением драйвера SMB 1.0 на стороне файлового SMB сервера желательно убедится, что в сети не осталось устаревших клиентов, которые используют для подключения протокол SMB v1.0. Для этого, нужно включить аудит доступа к файловому серверу по SMB1 протоколу с помощью команды PowerShell:
Set-SmbServerConfiguration –AuditSmb1Access $true
Через пару дней откройте на сервере журнал событий Applications and Services -> Microsoft -> Windows -> SMBServer -> Audit и проверьте, были ли зафиксированы попытки доступа к ресурсам сервера по протоколу SMB1.
Get-WinEvent -LogName Microsoft-Windows-SMBServer/Audit
В нашем примере в журнале обнаружено событие с EventID 3000 от источника SMBServer, в котором указано что клиент 192.168.1.10 пытается обратиться к сервереу по протоколу SMB1.
SMB1 access Client Address: 192.168.1.10 Guidance: This event indicates that a client attempted to access the server using SMB1. To stop auditing SMB1 access, use the Windows PowerShell cmdlet Set-SmbServerConfiguration.
Вам нужно найти в сети этот компьютер или устройство, при необходимости обновить ОС или прошивку, до версии поддерживающий, более новые протоколы SMB: SMBv2 или SMBv3.
В данном случае, мы проигнорируем эту информацию, но нужно учитывать тот факт, что в дальнейшем данный клиент не сможет получить SMB доступ к общим папкам на этом сервере.
Включение/отключение SMB 1.0 в Windows Server 2016/2019
В Windows Server 2016, начиная с билда 1709, и Windows Server 2019 по умолчанию отключен протокол SMBv1. Чтобы включить поддержку клиентского протокола SMBv1в новых версиях Windows Server, нужно установить отдельный компонент SMB 1.0/CIFS File Sharing Support.
Вы можете установить компонент поддержки клиента SMBv1 с помощью Server Manager, или через PowerShell.
Проверить, что SMBv1 включен можно командой PowerShell:
Get-WindowsFeature | Where-Object {$_.name -eq "FS-SMB1"} | ft Name,Installstate
Чтобы установить компонент FS-SMB1, выполните:
Install-WindowsFeature FS-SMB1
Для удаления SMBv1 клиента (понадобится перезагрузка), выполните:
Uninstall-WindowsFeature –Name FS-SMB1 –Remove
Disable-WindowsOptionalFeature -Online -FeatureName SMB1Protocol -Remove
Чтобы ваш сервер мог обрабатывать доступ клиентов по протоколу SMBv1, кроме компонента FS-SMB1 нужно, чтобы поддержка протокола SMBv1 была включена на уровне файлового сервера SMB. Чтобы проверить, что на вашем сервере включен доступ по SMBv1 к сетевым папкам, выполните:
Get-SmbServerConfiguration
Строка “
EnableSMB1Protocol: True
” говорит о том, что у вас разрешен доступ по протоколу SMBv1 к сетевым папкам на сервере. Чтобы отключить поддержку сервера SMBv1 в Windows Server, выполните команду:
Set-SmbServerConfiguration -EnableSMB1Protocol $false -Force
Теперь с помощью командлета
Get-SmbServerConfiguration
убедитесь, что протокол SMB1 отключен.
Чтобы включить поддержку протокола SMBv1 на сервере, выполните команду:
Set-SmbServerConfiguration -EnableSMB1Protocol $True -Force
sc.exe config lanmanworkstation depend= bowser/mrxsmb20/nsi
sc.exe config mrxsmb10 start= disabled
Включить/отключить SMB 1.0 в Windows 10
Как мы уже говорили, начиная с Windows 10 1709, во всех новых билдах поддержка протокола SMB1 отключена (также отключен гостевой доступ по протоколу SMBv2).
В Windows 10 вы можете проверить статус компонентов SMBv1 протокола командой DISM:
Dism /online /Get-Features /format:table | find "SMB1Protocol"
В нашем примере видно, что все компоненты SMBv1 отключены:
SMB1Protocol | Disabled SMB1Protocol-Client | Disabled SMB1Protocol-Server | Disabled SMB1Protocol-Deprecation | Disabled
В Windows 10 также можно управлять компонентами SMB 1 из панели управления компонентами (
optionalfeatures.exe
). Разверните ветку Поддержка общего доступа к файлам SMB 1.0 /CIFS. Как вы видите здесь также доступны 3 компонента:
- Клиент SMB0/CIFS
- Сервер SMB0/CIFS
- Автоматическое удаление протокола SMB0/CIFS
Вы можете включить клиент и сервер SMBv1 в Windows 10 из окна управления компонентами или командой:
Dism /online /Enable-Feature /FeatureName:"SMB1Protocol"
Dism /online /Enable-Feature /FeatureName:"SMB1Protocol-Client"
Dism /online /Enable-Feature /FeatureName:"SMB1Protocol-Server"
Enable-WindowsOptionalFeature -Online -FeatureName SMB1Protocol-Server
Enable-WindowsOptionalFeature -Online -FeatureName SMB1Protocol-Client
Если после включения SMBv1 клиента, он не используется более 15 дней, он автоматически отключается.
Чтобы отключить поддержку клиента и сервера SMB1 в Windows 10, выполните следующие команды DISM:
Dism /online /Disable-Feature /FeatureName:"SMB1Protocol"
Dism /online /Disable-Feature /FeatureName:"SMB1Protocol-Client"
Dism /online /Disable-Feature /FeatureName:"SMB1Protocol-Server"
Если вы отключили поддержку SMBv1 клиента в Windows 10, то при доступе к сетевой папке на файловом сервере, который поддерживает только SMBv1 (протоколы SMBv2 и v3 отключены или не поддерживаются), появятся ошибки вида:
- 0x80070035 — не найден сетевой путь;
-
Вы не можете подключиться к общей папке, так как она небезопасна. Эта общая папка работает по устаревшему протоколу SMB1, который небезопасен и может подвергнуть вашу систему риску атаки. Вашей системе необходимо использовать SMB2 или более позднюю версию.
Unable to connect to file shares because it is not secure. This share requires the obsolete SMB1 protocol, which is not secure and could expose your system to attacks
;
-
Вы не можете подключиться к общей папке, так как она небезопасна. Эта общая папка работает по устаревшему протоколуSMB1, который небезопасен и может подвергнуть вашу систему риску атаки. Вашей системе необходимо использовать SMB2 или более позднюю версию.
You can’t connect to the file share because it’s not secure. This share requires the obsolete SMB1 protocol, which is unsafe and could expose your system to attack. Your system requires SMB2 or higher).
Подробнее это написано в статье Не открываются общие сетевые папки в Windows 10.
Также при отключении клиента SMBv1 на компьютере перестает работать служба Computer Browser (Обозреватель компьютеров), которая используется устаревшим протоколом NetBIOS для обнаружения устройств в сети. Для корректгого отобрражения соседних компьютеров в сети Windows 10 нужно настроить службу Function Discovery Provider Host (см. статью).
Отключение SMBv1 с помощью групповых политик
В доменной среде Active Directory вы можете отключить протокол SMBv1 на всех серверах и компьютеров с помощью групповой политики. Т.к. в стандартных политиках Windows нет политики настройки компонентов SMB, придется отключать его через политику реестра.
- Откройте консоль управления Group Policy Management (gpmc.msc), создайте новый объект GPO (disableSMBv1) и назначьте его на OU с компьютерами, на которых нужно отключить SMB1;
- Перейдите в режим редактирования политики. Выберите Computer Configuration -> Preferences -> Windows Settings -> Registry;
- Создайте новый параметр реестра (Registry Item) со следующими настройками:
Action:Update
Hive:HKEY_LOCAL_MACHINE
Key Path:SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters
Value name:SMB1
Value type:REG_DWORD
Value data:0
Данная политика отключит через реестр поддержку компонента сервер SMBv1 на всех компьютерах.Если в вашем домене остались компьютеры с Windows XP/Server 2003, можно использовать отдельный WMI фильтр политики, чтобы исключить эти версии Windows из-под действия политики.
Если вы хотите через GPO отключить на компьютерах SMB клиент, создайте дополнительно два параметра реестра:
- Параметр Start (типа REG_DWORD) со значением 4 в ветке реестра HKLM\SYSTEM\CurrentControlSet\services\mrxsmb10;
- Параметр DependOnService (типа REG_MULTI_SZ) со значением Bowser, MRxSmb20, NSI (каждое значение с новой строки) в ветке реестра HKLM\SYSTEM\CurrentControlSet\Services\LanmanWorkstation.
Осталось обновить настройки групповых политик на клиентах и после перезагрузки проверить, что компоненты SMBv1 полностью отключены.
- Configure SMB v1 server;
- Configure SMB v1 client driver.
Как раз прочитал до масштабной атаки)
Уязвимость используемая в массовой атаке 12.05.17 была закрыта MS еще в обновлении от 14 марта (https://support.microsoft.com/en-us/help/4013389/title).
Но эпичность атаки видимо была настолько высока, что оперативно выпустили патчи даже для не поддерживаемых Xp/2003: https://blogs.technet.microsoft.com/msrc/2017/05/12/customer-guidance-for-wannacrypt-attacks/
Автор будто знал про будущую атаку «wannacry», и решил подстраховать своих читателей выпустив статью.) Причем за 2 дня до вторжения! Совпадение?
Небольшой постобзор по атаке https://winitpro.ru/index.php/2017/05/15/zashhita-windows-ot-virusa-shifrovalshhika-wana-decrypt0r/
На правах рекламы.
Не хочешь пропустить очередную атаку и сохранить свой офис? Подписывайся на обновления на сайте winitpro.ru !
Форма справа
Реклама работает.)
Да тут не надо было быть семи пядей во лбу что бы это предвидеть. Для тех кто следит за новостями кибербезопасности всё было заранее понятно. Вот например аналитики Касперского предсказывали это еще 25-го апреля (пруф: . Причём именно тот сценарий который произошел.
По команде:
Get-WindowsOptionalFeature –Online FeatureName SMB1Protocol
Выходит сообщение:
Get-WindowsOptionalFeature : Не удается найти позиционный параметр, принимающий аргумент «FeatureName».
строка:1 знак:1
+ Get-WindowsOptionalFeature –Online FeatureName SMB1Protocol
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : InvalidArgument: (:) [Get-WindowsOptionalFeature], ParameterBindingException
+ FullyQualifiedErrorId : PositionalParameterNotFound,Microsoft.Dism.Commands.GetWindowsOptionalFeatureCommand
Остальные команды прошли успешно, в чем может быть проблема?
Get-WindowsOptionalFeature –Online -FeatureName SMB1Protocol
Дефис пропущен перед FeatureName.
Здравствуйте! Подскажите, если я на своём компьютере расшарил ресурс, через вкладку «Доступ» то используется smb, если да то какой версии? Я сейчас отключил для клиента, но в компонентах Windows всё равно вижу что установлена птичка против smb v1. Есть ещё команда dism /online /norestart /disable-feature /featurename:SMB1Protocol, она отключает что сервера и клиента или что? Я так понял чтоб зараза которая сейчас идёт опасна для клиента? У меня в сети есть устройства (медиапроигрыватели), которые по самбе могут читать/проигрывать файлы, боюсь что там может быть старая версия клиента и отключать для сервера не вариант. Да правильно ли я понял, если каталог расшарен через «Доступ», то мой ПК работает как сервер? Или там не smb используется
Влад, если ты задаешь такие вопросы, то видно, что ты не очень в тебе разбираешься (без обид). На самом деле все эти технические подробности (сервер, клиент, протоколы…) не надо знать обычному человеку. Надо знать одну простую вещь — уязвимость, которую использует WannaCry для проникновения, была закрыта Майкрософтом _еще в марте_. Поэтому надо установить на винду все обновления и жить спокойно дальше. И впредь оперативно ставить все выходящие обновления. Если скажешь какая у тебя конкретно версия винды, то мы тебе подскажем какое конкретно обновления нужно поставить (но лучше поставить все).
Уязвимость на стороне SMB сервера. Расшарен ли у вас каталог или нет, не имеет значения, в Windows все равно запущен сервис, слушающий 445 порт. При доступе клиента к серверу они согласуют и используют максимальную версия SMB, поддерживаемую одновременно и клиентом и сервером (ссылка есть в статье).
А в общем, Сергей прав, все зависит от версии ОС на сервере и прошивок медиапроигрывателей.
А что делать если файлопомойка на Вин2003 а клиенты как ХР так и Вин7.
Вин2003 умеет выше SMBv1 ??
Мигрировать. Windows 2003 и XP умеют только SMBv1
Народ! Вы хоть бы комментарии почитали. MS ВЫПУСТИЛА ПАТЧ ДЛЯ XP И 2003 (ссылка есть выше).
А в целом itpro прав — пора уже мигрировать на более современную версию.
Про патч знаю.
Речь о том что на всех ПК был отключен СМБв1
и лишь потом оказалось что есть некий файловый сервер на Вин2003 и к нему нужен ВСЕМ доступ 🙂
Накатить на сервер патч и жить дальше. Или речь о том, что везде отключили клиентскую часть SMB1? Лично на мой взгляд отключение клиентской части бессмысленно, т.к. атаки идут через серверную часть (я имею в виду не конкретно эту атаку, а вообще). Хотя можно гипотетически представить сценарий атаки через клиентскую часть. Но это надо заставить пользователя зайти по какой-то ссылке. Т.е. это уже не так просто провернуть.
Лучше конечно переустановить сервер на новую ОС. В принципе задача сисадмина вовремя слезать с ОС поддержка которой прекратилась. Я понимаю конечно, что лень 🙂 Ну а что делать?
Да, на всех ПК отключили клиентскую часть SMB1.
Патч на сервере установлен.
Включай обратно, обновляй сервер, потом выключишь опять.
Или включи и на этом остановись. Как я уже написал, что бы атаковать через клиентскую часть нужно заставить пользователя зайти по ссылке. Очевидно, что ссылка будет внешняя (потому что иначе надо внутри сети развернуть сервер). Но пользователи по умолчанию не должны иметь возможность заходить на внешние ссылки по SMB. Ну надо по крайней мере стремиться к тому что бы это было так 🙂
Правильно ли я понимаю, что АНБ использовало эту уязвимость со времен появление SMBv1. Оно могло подключиться к любому компьютеру по 445 порту, зная его лишь ip-адрес.
Не «использовало» а «могло использовать».. со времён появления SMBv1. Широкой общественности ведь не известно когда именно уязвимость была найдена. А может конечно уязвимость была сделана специально в качестве бэкдора.
И всё таки не к любому компьютеру, а нужно что бы оный компьютер имел белый IP + открытый порт + SMBv1. Само это сочетание факторов не является нормальным априори. Белый IP конечно не обязательный фактор, но тогда предварительно нужно попасть в сеть где компьютер стоит, т.е. атака уже не напрямую из интернета.
Добрый день! Подскажите не работает команда повершелл
Set-SmbServerConfiguration –AuditSmb1Access $true
на 2012 r2 сервере ?
Добрый день! Помогите решить обратную задачу — установить SMBv1. После того как проделал действия по вашей статье и полностью удалить драйвер на одном из серверов понадобился доступ по SMBv1. Установка с помощью «Добавить роли и компоненты» и выполнение в PowerShell команды Install-WindowsFeature FS-SMB1 заканчивается ошибкой «Не удалось найти исходные файлы.»
Тоже столкнулся с такой проблемой. Как включить SMBv1 обратно?
Какая версия Windows? Как именно отключали (команда, gpo)?
У вас так получилось?
https://social.msdn.microsoft.com/Forums/en-US/7f45624e-c1e5-49f2-a298-daac4014efcd/smb1protocol-payload-removed
Или так https://social.technet.microsoft.com/Forums/lync/en-US/ed450592-383d-4c83-a999-5959c6b0c414/how-to-restore-windows-2016-removed-feature
Добрый день
Аудит включил, посмотрел результаты и никак не пойму теперь, как его выключить ))
Подскажите пожалуйста
Так пробовали?
Set-SmbServerConfiguration –AuditSmb1Access $false