Windows RPC 与 135 端口
135 是 Windows 上的 DCE/RPC 端点映射器(EPM,由 RpcSs 服务提供)。客户端要调用某个 RPC 接口时,先向 135 查询该接口对应的动态端口,再前往该端口完成调用,WMI、DCOM、远程服务管理等一系列运维能力都建立在这个机制上。因此只封 135 而不封动态端口范围,攻击面依旧存在;历史上冲击波一类蠕虫正是利用 RPC 相关漏洞传播。
基本信息
| 服务 | Microsoft RPC(RpcSs 与端点映射器) |
|---|---|
| 协议 | TCP(UDP 135 亦存在) |
| 用途 | RPC 接口的端口查询,WMI 与 DCOM 的前置环节 |
| 动态端口 | 典型范围为 49152 至 65535,可按需收敛 |
| 权限要求 | 防火墙规则需管理员权限 |
| 安全等级 | 仅内网可达,禁止公网暴露 |
典型使用场景
- Windows 域内日常运维:远程查询服务状态、重启服务、读取事件日志
- 管理工具与监控采集:依赖 WMI 获取性能计数器与系统信息
- 批量部署与补丁分发:通过远程过程调用下发任务
- 资产盘点:查询目标主机的接口与监听情况
- 安全排查:确认异常连接是否来自 RPC 相关端口
本机 RPC 监听与连接检查
本机 RPC 监听与连接检查
Get-NetTCPConnection -LocalPort 135 | Select-Object LocalAddress,State,OwningProcess # 查看 135 监听范围
netstat -ano | findstr :135 # 传统命令核对 PID
Get-NetTCPConnection | Where-Object { $_.RemotePort -eq 135 } | Select-Object RemoteAddress # 谁在连本机 135
Test-NetConnection 192.0.2.10 -Port 135 # 连通性测试相关端口的角色
| 端口 | 说明 | 处置建议 |
|---|---|---|
| 135/tcp | 端点映射器,查询接口对应端口 | 仅放行内网管理网段 |
| 135/udp | 同类查询的 UDP 方式 | 与 TCP 一并收紧 |
| 49152-65535 | 动态 RPC 端口区间 | 按需收敛为固定范围并精确放行 |
| 445/tcp | 域内通信与文件共享 | 边界显式丢弃 |
| 593/tcp | RPC over HTTP | 仅在确有需求时启用并加强认证 |
按来源收紧 RPC 暴露(Windows 防火墙)
按来源收紧 RPC 暴露(Windows 防火墙)
New-NetFirewallRule -DisplayName 'RPC-EPM-Internal' -Direction Inbound -Protocol TCP -LocalPort 135 -RemoteAddress 10.0.0.0/8 -Action Allow # 只放内网
New-NetFirewallRule -DisplayName 'RPC-Dynamic-Internal' -Direction Inbound -Protocol TCP -LocalPort 49152-65535 -RemoteAddress 10.0.0.0/8 -Action Allow
Get-NetFirewallRule -DisplayName 'RPC-*' | Select-Object DisplayName,Enabled,Direction # 复核规则是否生效收敛动态端口范围(注册表)
收敛动态端口范围(注册表)
路径:HKLM\SOFTWARE\Microsoft\Rpc\Internet
新建 Ports(多字符串值):5000-5100
PortsInternetAvailable:Y
UseInternetPorts:Y
# 变更前导出备份注册表,改完重启相关服务,并在测试机验证业务调用正常边界设备必须同时封禁 135、139、445 与动态 RPC 区间,只封 135 会出现看似加固完但仍可被调用的空档。
收敛动态端口范围属于有业务影响的操作:范围过窄可能导致调用失败或端口耗尽,变更前先备份注册表并在测试环境验证,再安排窗口期灰度推进。
排查跨主机管理工具报错时,先确认 135 可达,再确认动态端口区间未被防火墙拦截;两步都通但仍失败时,才去看凭据与权限,否则容易在错误的方向上反复调整。