sqlsrv 是什么
sqlsrv 是 IANA 登记的 SQL Service 服务,TCP 与 UDP 同名,登记人为 Craig Rogers,与 118(sqlserv)等条目并列于数据库网络服务的早期名录。它只是那个年代的一笔注册记录,没有对应任何主流数据库产品。需要特别区分的是:Microsoft SQL Server 的默认端口是 1433,与 156 号没有关系,检索时很容易被相似的服务名误导。
基本信息
| 服务名 | sqlsrv(SQL Service) |
|---|---|
| 端口号 | 156(TCP/UDP 同名登记) |
| IANA 登记说明 | SQL Service |
| 登记人 | Craig Rogers |
| 同批条目 | sqlserv(118)、sql-net(150)、sql*net(66) |
| 易混产品 | Microsoft SQL Server(默认 1433) |
| 现状 | 无主流实现 |
| 处置口径 | 按未知服务核实进程与业务归属 |
现网出现时怎么处置
- 先排除真实数据库:确认主机是否运行 SQL Server 或其它数据库,其真实监听端口可以用 ss 直接看到
- 核对应用连接串:应用配置里往往写着数据库地址与端口,比对即可判断 156 是否被使用
- 看是否有客户端尝试:历史连接串指向已下线的端口时,会留下周期性失败连接
- 检查监听地址:数据库类监听若绑定到全部地址,需要与安全基线比对
- 结论入库:把端口的最终定性写进资产台账,附上证据与时间
定位占用进程
定位占用进程
ss -lntup 'sport = :156' # 列出 156 的 TCP/UDP 监听进程
sudo lsof -i :156 # 进程、用户与文件
ss -lntup '( sport = :1433 )' # 对照真实数据库端口是否在监听
grep -rn '156' /etc/my.cnf /etc/postgresql 2>/dev/null # 查数据库配置中的端口
netstat -ano | findstr :156 # Windows:端口与 PID
tasklist /FI "PID eq 1234" # Windows:PID 反查进程易混对照
| 标识 | 含义 | 是否同一件事 |
|---|---|---|
| 156 | SQL Service 历史注册 | 本条条目 |
| 1433 | SQL Server 默认实例端口 | 不同,属产品默认端口 |
| 1434 | SQL Server 实例探查(UDP) | 不同,常被忽略的一侧 |
| 118 | SQL Services 历史注册 | 不同条目,编号不同 |
数据库类审计要同时看三件事:监听地址、认证方式和账号清单。端口号本身很少是风险来源,真正的风险来自可达范围与弱凭据的组合。
真实数据库端口(如 1433)若被暴露到不受控网段,口令爆破与数据导出会在很短时间内发生。审计历史注册号时顺手确认一下数据库的真实监听范围,这一步往往比排查历史条目更有价值。