Короткий ответ
Административные шары C$, ADMIN$, IPC$ нужны для управления, но приём подключений с любой WS-042 под локальным/доменным админом — путь бокового перемещения. Сужайте: кто может ходить на remote SAM и admin shares (группа jump-хостов / «Remote SAM» SDDL), сеть (firewall 445 только admin-VLAN), уникальные локальные пароли (LAPS), меньше NTLM. Не ставьте AutoShareServer=0 на всём парке вслепую — умрут агенты backup/инвентаризации.
IPC$ полностью «закрыть» нельзя без поломки SMB. Цель — не уничтожить шары, а кто и откуда.
Симптомы и как отличить
- С пользовательского ПК
dir \\SRV-APP01\C$открывается под helpdesk-учёткой. - Инструменты инвентаря тянут локальных админов со всех станций (remote SAM).
- 5140/5145 к ADMIN$ с неожиданных IP.
- Сканер: administrative shares enabled — само по себе не finding без контекста.
| Картина | Иное |
|---|---|
| Пользовательская шара Finance | NTFS/share ACL, не C$ |
| WinRM вместо SMB | WinRM |
| SMBv1 | SMBv1 |
| Domain Users в Administrators | права |
Возможные причины
- Любой локальный админ парка с общим паролем.
- Domain Admins на ежедневных ПК.
- Нет RestrictRemoteSAM / «Network access: Restrict clients allowed to make remote calls to SAM».
- Firewall 445 Any на Domain профиле.
- Агенты требуют C$ и их поставили как «все компьютеры = админы».
Диагностика
На сервере:
Get-SmbShare | Format-Table Name, Path, Description
Get-SmbSession | Format-Table ClientComputerName, ClientUserName, ShareName, Dialect
Get-SmbShareAccess -Name 'C$','ADMIN$' -ErrorAction SilentlyContinueПолитика Remote SAM (реестр RestrictRemoteSAM в HKLM\SYSTEM\CurrentControlSet\Control\Lsa — SDDL; задавайте через GPO Security Options, не руками без бэкапа):
Get-ItemProperty 'HKLM:\SYSTEM\CurrentControlSet\Control\Lsa' | Select-Object RestrictAnonymous, RestrictRemoteSAM, ForceGuest
Get-ItemProperty 'HKLM:\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters' |
Select-Object AutoShareWks, AutoShareServer, NullSessionPipes, NullSessionSharesFirewall:
Get-NetFirewallRule -DisplayGroup 'File and Printer Sharing' | Get-NetFirewallAddressFilter |
Format-Table InstanceID, RemoteAddressАудит доступа к шарам (если включён Object Access / detailed share): ищите 5140 с WS-042 на ADMIN$.
Решение
Сценарий A. Ограничить источник 445
На серверах: inbound 445/135/RPC только с admin-подсети jump (10.0.10.0/24 подставьте). Пользовательские шары — отдельные правила на 445 с пользовательских VLAN, если файловый сервер должен служить людям. Не открывайте ADMIN$ с пользовательского VLAN.
# идея: сузить прежние Any-правила File and Printer Sharing, не выключать профиль
Get-NetFirewallRule -DisplayGroup 'File and Printer Sharing' | Set-NetFirewallRule -RemoteAddress 10.0.10.0/24На файловом сервере с пользовательскими шарами так нельзя тупо для всей группы правил — разделите правила: пользовательские share vs admin. Иначе отрежете \\fs01\Finance.
Сценарий B. RestrictRemoteSAM
GPO: Computer Configuration → Windows Settings → Security Settings → Local Policies → Security Options → Network access: Restrict clients allowed to make remote calls to SAM.
Значение — SDDL, разрешающий Administrators и вашу группу CONTOSO\SAM-Remote-Readers (jump/сканеры инвентаря). Эталон SDDL берите из документации Microsoft «Restrict clients allowed to make remote calls to SAM» / Security Baseline для вашей ОС, не из случайного комментария.
Пилот OU станций: злоумышленник с одной WS-042 не перечисляет локальных админов соседа.
Сценарий C. Не выключать AutoShareServer без списка
AutoShareServer=0 убирает C$/ADMIN$. SCCM/некоторые backup/Remote Registry сценарии падают. Если политика «никаких admin shares»: замените управление на WinRM HTTPS и агенты без C$, проверьте вендоров, затем пилот.
Сценарий D. Учётные данные
Даже узкий firewall бесполезен, если с jump работают DA-учётки с пользовательских ПК. Совместите с разделением учёток и уникальным LAPS (PTH против C$).
На DC01 не оставляйте 445 с пользовательских VLAN на интерфейсе, где живёт LDAP: разведите NIC/правила. С WS-042 проверка \\DC01\C$ должна быть отказом; с jump — успех только для уполномоченных. RestrictRemoteSAM на станциях режет инвентарь, который ходил «под каждым локальным админом»: переведите инвентарь на jump-учётку в SDDL. Backup-сервер вне allow-list 445 — типичная причина «починили шары, умер Veeam»: добавьте CIDR медиа, не Any. Не ставьте AutoShareServer=0 на FS, пока агенты явно не мигрировали на WinRM.
Проверяйте оба пути: SMB к пользовательской шаре с VLAN пользователей жив, SMB к C$ с WS-042 мёртв. Если оба мертвы — вы сузили не те правила на файловом сервере contoso.example.
Как проверить, что проблема устранена
С WS-042 под обычным админом станции:
Get-SmbShare -CimSession SRV-APP01 -ErrorAction SilentlyContinue
dir \\SRV-APP01\C$Ожидание: отказ. С jump-сервера в admin-сети — успех для уполномоченной учётки. Remote SAM enumeration с станции — отказ, с jump — успех. Backup job зелёный. Пользовательские шары на FS живы.
Если не помогло
- Агент backup ходит с медиа-сервера вне allow-list — добавьте CIDR, не Any.
- RestrictRemoteSAM сломал легитимный инвентарь — добавьте его компьютер/группу в SDDL, не удаляйте политику.
- Пользователи потеряли
\\fs\share— вы сузили не те правила; верните пользовательский 445 на FS. - IPC$ в сканере как finding — объясните риск vs функциональность, сужайте SAM/учётки.
Профилактика
- Мониторинг 5140 ADMIN$ с Workstations OU.
- Новые серверы в GPO Remote SAM + firewall admin-VLAN.
- Запрет админских консолей на
WS-042. - Часть hardening.
FAQ
Нужны ли PRINT$ / IPC$?
PRINT$ — для печати. IPC$ — именованные каналы SMB. Не выключайте IPC$ «как admin share».
Remote Registry
Часто рядом по риску. Если не нужен — служба Manual, доступ узкий. Не путайте с RestrictRemoteSAM, но планируйте вместе.
UAC remote restrictions (LocalAccountTokenFilterPolicy)
Фильтр удалённых локальных админов (кроме RID 500) — слой против PTH локальными учётками. Не ставьте LocalAccountTokenFilterPolicy=1 на парк «чтобы скрипты жили», это ослабление. Предпочтительны доменные учётки jump + LAPS для консоли.
Можно ли оставить C$ только на DC?
На DC admin shares тоже сужайте сетью. Не открывайте C$ DC пользовательскому VLAN.
Event 5140 нет
Нужен аудит File Share. Включите точечно, иначе будете слепы.
WinRM вместо C$
Да как цель управления. Пока агенты на C$ — двойной мир, документируйте.