针对CentOS服务器的“端口 + 服务 + 两高一弱“扫描思路 📅 2026/6/26 6:14:58 下面给你一套针对 CentOS 服务器的端口 服务 两高一弱扫描思路分**远程视角外网攻击者怎么看你和本机视角服务器自己漏了啥**两条线正好对上你列的三类隐患。一、先搞清楚这台机器开了哪些口1本机看监听端口第一步必做# 看 IPv4/IPv6 监听ss-lntup# 或老命令netstat-lntup# 只看对外0.0.0.0的ss-lntup|grep0.0.0.0重点关注0.0.0.0:22正常0.0.0.0:3306/6379/11211/9200这些就危险了DB/缓存裸奔陌生端口 →ps -fp pid反查是哪个进程2本机看防火墙实际放行# firewalldCentOS 7 默认firewall-cmd --list-all# 如果换成 iptables 了iptables-LINPUT-n--line-numbers常见坑ss显示监听了但 firewalld 没放行 → 外面其实进不来不算暴露反过来 firewalld 放行了但服务没起 → 也不算。要两边对得上才算真暴露。二、远程端口扫描模拟攻击者视角1nmap 全端口 版本识别核心# 基础TOP 1000 端口nmap-sV-sC服务器公网IP# 全端口慢但全推荐护网前做一次nmap-sV-p---openIP# 加脚本扫弱口令/未授权重点nmap--scriptauth,vuln,defaultIP-sV把端口号 → 真实服务版本对上后面查 CVE 要用。2UDP 别漏DNS/NTP/SNMP 常被忘nmap-sU--top-ports100IP三、两高一弱逐类对号入座扫描① 弱口令 —— 端口暴露 协议猜解服务端口扫描/验证方式SSH22hydra -l root -P pass.txt ssh://IP或查/var/log/secure有无大量 FailedMySQL3306mysql -h IP -u root -p空密码试nmap--script mysql-empty-passwordRedis6379redis-cli -h IP能直接连 未授权 MongoDB27017mongosh --host IP无鉴 未授权 PostgreSQL5432psql -h IP -U postgres空密码FTP21anonymous 登录试Tomcat/管理口8080/8009manager 弱口令一键脚本感的做法nmap-p22,3306,6379,27017,5432,11211,9200,5601\--scriptmysql-empty-password,redis-info,mongodb-info\IP② 高危漏洞 —— 版本 → CVE 映射CentOS 7 本机先拉版本清单# 服务版本快照rpm-qa--last|head-30nginx-v;httpd-v;php-v;mysql--version;redis-server-v# 用 vulners 插件nmapnmap-sV--scriptvulnersIP# 或离线把 rpm 清单喂给 https://vulners.com 或国产 NESSUS/绿盟/ openVAS高危常客CentOS 7 老组件OpenSSL 1.1.1→ Heartbleed / CVE-2022-3786glibc→ GHOST (CVE-2015-0235) 老系统常见sudo→ CVE-2021-3156Baron SameditRedis 5.0.14 / 6.x→ 主从 RCENginx 老版本→ 整数溢出 / 请求走私Docker 老版本→ runc / containerd CVE 一堆⚠️ CentOS 7 本身2024-06-30 EOLyum 源官方已迁 vault即使yum update也拿不到新补丁——这属于底层高危必须写在报告里建议迁 Alma/Rocky。③ 未授权访问 —— 端口一探便知# Redisredis-cli-hIPping# PONG 裸奔# MongoDBmongosh--hostIP--evaldb.adminCommand(ping)# Elasticsearchcurlhttp://IP:9200/_cat/indices# Docker daemon若开了 2375curlhttp://IP:2375/version# K8s API server若开了 6443 对外curl-khttps://IP:6443/api这些都是端口开着 没鉴权 直接进护网扣分重灾区。四、老旧框架组件扫描你对的第 2 点1Web 框架版本Tomcat / Spring / Struts / Weblogic# 抓 bannercurl-Ihttp://IP:8080# 精准点# Tomcat: catalina.jar MANIFEST.MF# Spring Boot: /actuator/info如果开着# Struts: 看报错页或 header高危常客Struts2→ 多个 RCES2-045 / S2-061Spring Cloud / Spring Boot→ CVE-2022-22965Spring4ShellTomcat 8.5.85 / 9.0.65→ 多个绕过Weblogic→ 反序列化老演员2中间件 / 语言运行时java-versionpython--versionphp-vnode-v老 JDK 8u20x、Python 2.7、PHP 5.6 这些都是框架没老、运行时先老。3docker 镜像里的组件容易被忘dockerimagesdockerinspect镜像|grep-iversion很多 “CentOS 7 docker 跑老镜像” 的场景宿主机 CentOS 7 老 容器里 OpenSSL/glibc 也老双层老化。五、“端口暴露过多 / 多系统暴露互联网”你对的第 3 点1先画资产清单把前面ss -lntupnmap结果整理成表端口服务版本是否需暴露公网当前是否暴露风险22SSHOpenSSH 7.4是但应限IP是弱口令扫3306MySQL5.7.44否是0.0.0.0裸库 6379Redis5.0.3否是未授权 8080Tomcat8.0.53是是Struts2 老2收敛原则整改方向DB / 缓存 / ES / 消息队列→绝不公网暴露走 VPC / 内网 / VPN管理口Tomcat manager、Kibana、RabbitMQ UI→ 要么关要么加 IP 白名单 强口令 HTTPSSSH→ 改非 22 / 限源 IP / 禁 root 密码 / 仅密钥多余端口→ firewalld 直接 drop服务停掉firewalld 限源示例只让办公网 SSHfirewall-cmd--permanent--add-rich-rule rule familyipv4 source address1.2.3.4/32 port protocoltcp port22 acceptfirewall-cmd--reload六、一条龙自动化工具不想手搓就用这些工具用途备注nmap vulners端口 版本 CVE轻量首选Nessus商业漏扫两高一弱全覆盖护网/等保交差利器OpenVAS/GVM开源版 Nessus自建可用goby国产端口漏洞未授权弱口令界面友好hydra medusa弱口令专用配合用户名字典redis-unauth / mongo-unauth 脚本专扫未授权单点快七、给你这台 CentOS 7 的隐患画像预判结合前面对话按你前面那台机器CentOS 7 Docker SSH 日志迁/homeCentOS 7 本身 EOL→ 所有 rpm 漏洞yum 修不了这是根因必须写在报告高危第一条Docker daemon / 容器端口映射→ 你之前 18000 → 8000 那段说明有端口映射习惯要重点查docker ps哪些容器端口-p映射到 0.0.0.0 了SSH→ 你前面 sudoers / ssh 远程那轮确认下PasswordAuthentication yes PermitRootLogin yes是不是还在是的话就是弱口令靶子Redis / MySQL / ES→ 如果 docker-compose 里没显式设密码 bind 127.0.0.1基本中招八、交付用 checklist扫描完填这张表[资产] - 公网IP / 内网IP - 开放端口清单nmap - 对应服务 版本 [两高一弱] □ 弱口令SSH / MySQL / Redis / Mongo / Tomcat-manager 逐项测 □ 高危漏洞nmap --script vulners / rpm 清单 → CVE 库 □ 未授权Redis / Mongo / ES / Docker 2375 / K8s 6443 [老旧组件] □ OSCentOS 7 EOL → 迁 Alma/Rocky □ Web框架Tomcat/Struts/Spring 版本 □ 中间件Nginx/Apache/PHP/Java 版本 □ 容器镜像docker images 版本链 [暴露面] □ 端口是否过多 □ DB/缓存是否公网可达 □ 管理口是否裸奔顺着这台机器可以写一条具体命令链从ss -lntup→nmap→vulners→docker ps→ 弱口令试一路 pipe 出一张 Excel 能吃的清单。告诉我这台机器哪些是公网 IP、docker 跑了什么我可以帮你把扫描范围缩到最小、不打盲拳。