SMB 服务暴露是什么
SMB 是 Windows 文件与打印共享协议,默认使用 445 端口,早期环境还有 139。它在攻防中的意义不只是文件共享:多个历史远程代码执行漏洞都以它为入口,勒索软件也把它当作内网批量传播通道。暴露风险通常来自三点同时成立:共享对非必要网段开放、仍保留 SMBv1、Guest 可访问且未强制签名。因此加固要同时处理协议版本、共享权限与网络可达性,缺一项都可能被其他路径绕过。
基本信息
| 默认端口 | 445(早期 NetBIOS over TCP 为 139) |
|---|---|
| 系统平台 | Windows 为主,Samba 承担 Linux 侧同类角色 |
| 主要风险 | 远程代码执行漏洞、凭据窃取与中继、勒索软件横向传播 |
| 加固要点 | 关闭 SMBv1、强制签名、禁用 Guest、共享权限最小化 |
| 网络要求 | 445 不暴露公网,内网按网段与业务需要限制 |
| 常见入口 | 管理共享、历史遗留共享、部门自建共享 |
典型暴露场景
- 部门自建文件共享长期存在,无台账也无人维护
- 为兼容老旧打印与扫描设备保留 SMBv1
- 停产系统仍在内网运行,无法安装补丁只能靠网络隔离
- 跨网段访问放通 445,形成横向移动通道
- 服务器管理共享对普通员工网段可达
- 共享权限用 Everyone 放行,仅靠目录隐藏做保护
加固要点
加固要点
1. 关闭 SMBv1,评估并逐步淘汰依赖
2. 启用 SMB 签名(服务器与客户端)
3. 禁止 Guest 访问共享;共享权限最小化
4. 445 不暴露公网;内网按业务网段限制
5. 及时安装 SMB 相关安全更新
6. 清理无人维护的共享与失效账号,纳入台账定期复核核查命令
核查命令
Get-SmbServerConfiguration | Select EnableSMB1Protocol, RequireSecuritySignature
Get-SmbShare | Select Name, Path
Get-SmbShareAccess -Name <共享名> # 核对共享级权限
# 输出可用于核对共享列表与签名状态
# 客户端侧可核对 ConnectionSecurityInformation 的签名要求加固项与作用
| 加固项 | 挡住的问题 | 注意事项 |
|---|---|---|
| 关闭 SMBv1 | 以旧协议实现缺陷为入口的利用 | 先确认打印与老旧设备依赖 |
| 强制签名 | 凭据中继类攻击 | 客户端侧也要开启才完整 |
| 禁用 Guest | 匿名读取共享内容 | 检查映射盘与脚本使用的账号 |
| 限制 445 可达 | 横向移动与批量扫描 | 网段划分后需复核规则 |
| 清理冗余共享 | 缩小暴露面与被利用入口 | 保留台账与责任人 |
Windows 默认管理共享(C$、ADMIN$)用于管理,应结合环境评估其可达范围。
签名的作用是防止凭据中继,但它不等于加密:需要传输内容机密性时,应评估 IPSec 或改用其他文件传输方式。