~/posts/2026/08/12/exposed-surface-scan.md
一次扫描 8000 个端口之后:聊聊公网暴露面
攻击者不需要”黑进”你的系统,他只需要找到一个你忘了关的门。
一切从 nmap 开始
红队评估的第一步永远是侦察(Reconnaissance)。拿到授权后,我对目标的一个 /24 网段做了全端口扫描:
|
结果:**254 个 IP,开放端口 8000+**,其中高价值目标(80/443/22/3389/3306/6379 等)集中在 37 个主机上。
⚠️ 免责声明:以下所有内容均为攻防演练场景,请勿对未授权目标执行任何扫描。
高价值目标画像
把 8000 个端口按服务类型归类,大致是这样:
| 服务 | 端口 | 数量 | 风险等级 |
|---|---|---|---|
| SSH | 22 | 23 | 中 |
| HTTP/HTTPS | 80/443 | 31 | 高 |
| RDP | 3389 | 6 | 高 |
| MySQL/Redis | 3306/6379 | 4 | 严重 |
| 打印机/摄像头 | 9100/554 | 11 | 低 |
| 其他 | 随机高位端口 | 7900+ | 需甄别 |
最扎眼的几个发现:
- Redis 无认证直接暴露公网 —— 经典未授权访问,
redis-cli -h x.x.x.x ping直接回PONG - 一个 Jenkins 开在 8080,管理后台弱口令 admin/admin
- 摄像头 RTSP 流未加密,
ffplay rtsp://...就能看画面
为什么会出现这么多暴露面
和运维聊完,暴露面失控的原因基本是这四类:
1. 默认端口 + 无认证
|
2. 临时开的口子忘了关
线上排查问题临时 iptables -A INPUT -p tcp --dport 9000 -j ACCEPT,问题解决后没人回收规则。
3. 云安全组规则太宽
0.0.0.0/0 的入站规则是重灾区,尤其是一些”图省事”的运维。
4. 资产清单缺失
很多团队根本没有资产台账,自己都不知道公网挂了哪些服务——扫描结果比运维自己的记录还全。
暴露面收敛清单
给这位运维同学的整改建议,也是通用最佳实践:
|
更系统的做法:
- 资产台账:所有公网服务登记 IP/端口/负责人/用途,用 CMDB 或简单的 CSV 都行
- 收敛默认策略:云安全组默认拒绝,按需放行,并加上来源 IP 白名单
- 周期性扫描:每月一次 nmap + Nuclei 自动扫,结果和台账比对
- SSO 统一认证:所有管理后台接入 SSO,禁止本地弱口令
复盘
|
安全不是买来的,是数出来的——先把公网暴露面数清楚,再谈防火墙和 WAF。你连自己暴露了什么都不知道,攻击者可是知道的。