Web 渗透实战:服务器系统识别、端口与中间件全量探测
-
- 前言
- [1. 根据 TTL 判断服务器操作系统](#1. 根据 TTL 判断服务器操作系统)
-
- [1.1 判断原理](#1.1 判断原理)
- [1.2 主流系统默认初始 TTL 对照表](#1.2 主流系统默认初始 TTL 对照表)
- [1.3 ping 实操判断](#1.3 ping 实操判断)
- [1.4 识别误区与注意事项](#1.4 识别误区与注意事项)
- [2. 真实IP地址收集](#2. 真实IP地址收集)
-
- [2.1 多地区Ping判断CDN](#2.1 多地区Ping判断CDN)
- [2.2 绕过CDN获取真实IP](#2.2 绕过CDN获取真实IP)
-
- [2.2.1 查询子域名的IP](#2.2.1 查询子域名的IP)
- [2.2.2 MX记录邮件服务](#2.2.2 MX记录邮件服务)
- [2.2.3 查询历史DNS记录](#2.2.3 查询历史DNS记录)
- [2.2.4 国外访问](#2.2.4 国外访问)
- [2.3 同C段旁站资产探测](#2.3 同C段旁站资产探测)
-
- [2.3.1 C段范围计算](#2.3.1 C段范围计算)
- [2.3.2 工具介绍:御剑高速 TCP 端口扫描工具](#2.3.2 工具介绍:御剑高速 TCP 端口扫描工具)
- [2.3.3 实战:Vulhub 靶机C段扫描](#2.3.3 实战:Vulhub 靶机C段扫描)
- [2.3.4 旁站识别方法](#2.3.4 旁站识别方法)
- [2.3.5 注意事项与误区](#2.3.5 注意事项与误区)
- [3. 端口信息收集](#3. 端口信息收集)
-
- [3.1 端口扫描基础概念](#3.1 端口扫描基础概念)
-
- [3.1.1 核心原理](#3.1.1 核心原理)
- [3.1.2 端口状态分类](#3.1.2 端口状态分类)
- [3.1.3 端口扫描能获取的关键信息](#3.1.3 端口扫描能获取的关键信息)
- [3.2 主流扫描工具:Nmap](#3.2 主流扫描工具:Nmap)
-
- [3.2.1 工具下载与安装](#3.2.1 工具下载与安装)
- [3.2.2 图形界面 Zenmap 介绍](#3.2.2 图形界面 Zenmap 介绍)
- [3.2.3 常用扫描模板](#3.2.3 常用扫描模板)
- [3.2.4 实战:Vulhub 靶机深度扫描](#3.2.4 实战:Vulhub 靶机深度扫描)
- [3.2.5 扫描结果深度分析](#3.2.5 扫描结果深度分析)
- [3.2.6 进阶:自定义扫描命令](#3.2.6 进阶:自定义扫描命令)
- [3.2.7 小结](#3.2.7 小结)
- 总结
前言
上一篇我们聊完了站点层面的信息收集 ------ 指纹识别摸清了目标用了什么技术栈,目录扫描挖出了隐藏路径和接口,被动插件补充了更多细节。到这里,我们对 "网站长什么样" 已经有了比较清晰的认识。
但渗透测试的信息收集远不止于此。知道了应用层的信息,我们还得往下挖一层:这个网站跑在什么样的服务器上?
是 Windows 还是 Linux?开了哪些端口?跑着什么服务?中间件具体是什么版本?这些信息看似基础,却直接决定了后续漏洞利用的方向 ------ 比如你知道了目标是 Nginx 某个存在解析漏洞的版本,就能直接对症下药;知道了服务器开了 3389 端口,那 RDP 爆破就可以安排上了。
这一篇,我们继续基于 Vulhub 本地靶场实操,从操作系统识别、端口扫描、中间件探测三个维度,把服务器层面的信息收集彻底讲透。
⚠️ 合规强制提醒:仅允许在自有本地靶场、已获取书面授权的服务器执行端口探测;对公网无授权主机扫描、爆破端口,违反《网络安全法》,存在法律风险。
1. 根据 TTL 判断服务器操作系统
1.1 判断原理
TTL(Time To Live,生存时间)是 IP 数据包中的一个字段,表示数据包在网络中最多能经过多少个路由器转发。每经过一台路由器,TTL 数值自动减 1,减到 0 时数据包会被丢弃,防止数据包在网络中无限循环。
不同操作系统出厂时预设的初始 TTL 值是固定的,我们通过 ping 命令获取返回包的 TTL,结合路由跳数就能反向推断服务器的操作系统类型。
1.2 主流系统默认初始 TTL 对照表
| 系统类型 | 默认初始 TTL |
|---|---|
| Windows 全系列(XP/7/10/Server) | 128 |
| Linux / CentOS / Debian / Ubuntu | 64 |
| 路由器、防火墙、Unix 设备 | 255 |
判断逻辑:
- 本地靶场 / 同网段:无跨网段路由跳转,返回 TTL 等于初始值,直接对应系统
- 公网环境:TTL 会有小幅衰减,差值在 10~30 跳内仍可判定为对应系统
- 返回 TTL 在 55~64 之间 → Linux
- 返回 TTL 在 100~128 之间 → Windows
- 返回 TTL 在 230~255 之间 → Unix / 网络设备
1.3 ping 实操判断
打开终端,执行 ping 命令:
bash
ping 192.168.200.131
返回结果:

返回 TTL = 64,匹配 Linux 预设初始值,可直接判定靶场服务器为 Linux 系统。
Windows 靶场对比示例:
bash
ping 192.168.0.100

返回 TTL = 128,匹配 Windows 预设初始值,判定为 Windows 服务器。
1.4 识别误区与注意事项
- TTL 可被修改:管理员可以手动修改系统默认 TTL 值用于迷惑攻击者,仅靠 ping 判断容易误判,必须搭配 Nmap TCP 指纹识别等方法交叉验证
- 容器 / 云服务器:Docker 容器、云服务器可能会篡改协议栈特征,TTL 判断结果仅作参考
- 防火墙拦截:部分服务器防火墙会屏蔽 ICMP 数据包,ping 无返回不代表服务器不存活,需换用其他方式探测
2. 真实IP地址收集
2.1 多地区Ping判断CDN
工具:站长工具https://ping.chinaz.com/
操作:输入目标域名,全国多节点同时解析,对比返回IP


- 图1/图2:csdn.net 所有地区节点统一返回同一IP,IP固定无多节点分流,**无公共CDN/自有BGP静态节点**,解析IP即为服务器真实IP

- 图3/图4:baidu.com 多地Ping返回多个不同归属地IP,节点分散,**确认部署CDN**,返回的均为CDN节点IP而非源站真实IP
判断结论:多地解析出现多个不同IP = 存在CDN;全部节点返回同一个IP = 无公共CDN,解析IP大概率为真实服务器IP
2.2 绕过CDN获取真实IP
2.2.1 查询子域名的IP
原理:CDN流量收费高,很多站长只会给主站或流量大的子站点开CDN,小站点、测试站、后台站一般不做CDN,而且这些子域名跟主站常在同一台服务器或同一个C段内。
操作步骤:
- 爆破目标域名的所有子域名
- 批量查询每个子域名的解析IP
- 找到没有走CDN的子域名,它的IP大概率就是主站源站IP
工具:
- 子域名爆破:Subfinder、OneForAll
- 批量IP查询:站长工具
ip.tool.chinaz.com/ipbatch
示例:百度域名查询
- 主域名
www.baidu.com→ 走CDN,多地ping返回不同IP - 子域名
xxx.baidu.com→ 可能没走CDN,返回固定IP - 这个子域名的IP很可能就是百度服务器的真实源站IP
2.2.2 MX记录邮件服务
适用条件:网站自己搭建邮件服务器,且邮件服务和Web服务在同一台服务器上
操作步骤:
- 在目标网站触发一次邮件发送(注册、找回密码、联系我们等)
- 收到邮件后,打开原始邮件/邮件源码
- 查找
Received、X-Originating-IP、X-Sender-IP字段 - 字段中的公网IP就是邮件服务器IP,大概率也是Web源站IP
原理:如果网站在与web相同的服务器和IP上托管自己的邮件服务器,那么原始服务器IP会出现在邮件头中,且邮件流量不走CDN。
示例:QQ邮箱查找IP
打开收到的邮件 --->点击"更多操作"--->选择"显示邮件原文"--->在邮件头中查找IP信息

2.2.3 查询历史DNS记录
原理:网站不是一上线就接CDN的,接入CDN之前域名直接解析到源站IP,这些历史解析记录有平台存档。
工具:ip138、微步在线、SecurityTrails
判断方法:出现时间早、长期稳定不变的IP地址,更可能是真实源站IP。
示例:IP138查询网站
- 打开ip138.com,输入目标域名
- 查看历史解析记录列表
- 找CDN上线前长期使用的那个IP,大概率就是真实源站

例如这里当前解析和历史解析都是一样的ip,那么大概率就是原始IP
2.2.4 国外访问
原理:有些网站的CDN只覆盖国内节点,没有部署国外节点,国外访问会直接回源到真实服务器。
方法:用国外节点ping目标域名
工具 :https://ping.sx/ping
示例:国外访问网站
- 打开ping.sx,输入目标域名
antvsion.com - 选择美国、欧洲等国外节点ping
- 如果国外节点返回的IP和国内CDN节点不一样,且多个国家返回同一个IP,那这个IP大概率就是真实源站IP

2.3 同C段旁站资产探测
原理 :同一台服务器或同一机房内网环境中,往往部署了多个网站或业务系统,它们共享同一个C类网段(如 192.168.200.x)。通过扫描目标IP所在C段的全部存活主机,可以发现旁站、备用系统、测试环境等关联资产,扩大攻击面。
核心价值:主站防护严密时,旁站往往存在漏洞,可通过旁站横向渗透获取同服务器权限,进而拿下主站。
2.3.1 C段范围计算
判断方法 :取目标IP前三段,第四段替换为 0/24,即为完整C段范围。
示例:
- 目标IP:
192.168.200.131 - 对应C段:
192.168.200.0/24 - 扫描范围:
192.168.200.1~192.168.200.254,共254个主机位
快速记忆:C段 = IP前三段不变,最后一段从1扫到254
2.3.2 工具介绍:御剑高速 TCP 端口扫描工具
御剑端口扫描工具是 Windows 平台常用的 C 段扫描工具,支持批量端口探测,速度快、操作简单,适合内网旁站快速排查。

界面功能说明:
| 区域 | 功能说明 |
|---|---|
| 开始 IP / 结束 IP | 输入扫描网段范围,C 段扫描填 192.168.200.1 到 192.168.200.254 |
| 超时 / 秒 | 单个端口响应超时时间,默认 1 秒,内网可适当调小 |
| 缓冲区 | 并发扫描线程数,数值越大速度越快,默认 15000 |
| 全端口 65535 | 扫描全部 65535 个 TCP 端口,耗时久,信息最全 |
| 指定端口 | 仅扫描预置的常用端口,速度快,推荐日常使用 |
| 指定端口列表 | 自定义扫描端口,支持逗号分隔和范围(如 80,8080,8090-8100) |
| 开放端口 | 扫描结果显示区,列出所有探测到的开放端口 |
2.3.3 实战:Vulhub 靶机C段扫描
以目标 192.168.200.131 为例,演示完整 C 段扫描流程:
步骤一:填写扫描范围
- 开始 IP:
192.168.200.1 - 结束 IP:
192.168.200.254
步骤二:选择扫描模式
- 日常快速排查:勾选【指定端口】,使用默认端口列表
- 全面资产探测:勾选【全端口 65535】,耗时较长但无遗漏
步骤三:调整参数(可选)
- 内网环境:超时设为
1秒,缓冲区保持默认 - 公网环境:超时设为
2-3秒,避免漏报
步骤四:开始扫描
点击【扫描】按钮,底部状态栏实时显示:
- 速度 / 每秒:当前扫描速率
- 完成进度:已扫描 IP 占比
- 扫描耗时:已用时间
- 扫描结果:已发现的开放端口数量
步骤五:查看结果
扫描完成后,在【开放端口】区域查看所有存活主机及其开放端口,逐一排查旁站业务。

结果解读:
- 192.168.200.1(网关 / 宿主机)
- 开放端口:135、139、445、3389
- 端口特征:Windows 系统典型端口(SMB、远程桌面)
- 判断:为 VMware 虚拟网卡网关或 Windows 宿主机
- 其他存活 IP
- 同网段内存在多台虚拟机主机
- 需逐一访问对应端口,确认业务类型与旁站关联性
扫描效率说明:指定端口模式下,扫完整个 C 段仅需 2 秒左右,适合快速资产探测;全端口模式耗时较长,适合深度排查。
2.3.4 旁站识别方法
发现同C段存活IP后,判断是否为旁站的三种方法:
方法一:HTTP 访问验证
直接在浏览器访问存活IP的80/443端口,查看网站内容是否与目标站点相关。
方法二:反向IP查询
使用站长工具、微步在线等平台,查询IP对应的绑定域名,判断是否为同一公司/组织的业务。
方法三:端口服务对比
对存活IP进行端口扫描,对比开放端口与服务版本,判断是否为同一套环境模板。
2.3.5 注意事项与误区
- C段不等于同服务器:同C段可能是同一机房不同服务器,也可能是不同租户,需进一步验证关联性
- CDN场景失效:目标走CDN时,拿到的是CDN节点IP,其C段均为CDN集群,无旁站价值
- 法律合规边界:未经授权扫描公网C段属于网络探测行为,可能违反法律法规,仅限授权测试或本地靶场练习
- 内网优先使用:C段探测在内网渗透中价值最高,可快速横向定位域内主机与业务系统
本章所有演示均基于本地 Vulhub 靶场环境,仅限安全研究与学习使用,请勿用于未授权的真实环境测试。
3. 端口信息收集
完成站点应用层信息收集后,需要下沉至服务器基础设施层,通过端口扫描获取主机开放服务、操作系统、中间件真实版本等底层信息。
3.1 端口扫描基础概念
3.1.1 核心原理
基于TCP/UDP协议,向目标主机不同端口发送探测数据包,根据主机返回报文判断端口状态,进一步识别端口上运行的服务程序、版本、漏洞特征。
渗透测试高频常用端口对照表
(1)Web类端口(网站服务,渗透核心入口)
Web 端口是渗透测试的首要目标,数量多、漏洞类型丰富,建议先扫出所有 Web 端口,再结合上一章的指纹识别和目录扫描逐个深入测试。非常规端口(如 8090、9000)往往是管理后台,容易被忽略但价值很高。
| 端口 | 服务 | 渗透利用点 |
|---|---|---|
| 80 | HTTP普通网页 | 指纹识别、目录爆破、SQL注入、XSS、文件上传 |
| 443 | HTTPS加密网页 | SSL漏洞、证书信息泄露、同80所有Web漏洞 |
| 8080 | Tomcat/代理/备用Web | Tomcat后台弱口令、war包上传、管理页面未授权访问 |
| 8000/8008 | Python、Node、小程序后台 | 源码泄露、调试接口暴露、未授权API |
| 8090/9000 | 后台管理、面板服务 | 各类国产建站面板、后台登录弱口令 |
| 81 | IIS备用站点、小型管理后台 | 二级站点、备份页面泄露 |
| 7001/7002 | WebLogic | 大量远程命令执行CVE、未授权访问 |
| 8069 | JBoss | 反序列化漏洞、后台部署后门 |
| 10000 | Webmin虚拟主机面板 | 弱口令、远程代码执行漏洞 |
(2)远程管理类端口(可直接登录服务器,高危)
远程管理端口是"直通服务器"的高危入口,一旦拿到账号密码可以直接控制整台服务器,是渗透测试的高价值目标。弱口令是最常见的突破口,很多测试环境和开发服务器为了方便会使用 root/123456、admin/admin 这类简单密码。
| 端口 | 服务 | 渗透利用点 |
|---|---|---|
| 22 | SSH(Linux远程登录) | 弱口令爆破、密钥泄露、SSH后门 |
| 3389 | RDP Windows远程桌面 | 弱口令、爆破、永恒之蓝衍生漏洞 |
| 5900~5905 | VNC图形化远程桌面 | 无密码访问、弱口令爆破 |
| 23 | Telnet(明文传输) | 账号密码明文抓取、弱口令 |
(3)数据库端口(窃取全站数据,高价值)
数据库端口是数据泄露的重灾区,拿到数据库权限基本等于拿下全站数据。其中 Redis、MongoDB、Memcached 这几款服务默认安装经常没有设置密码,未授权访问问题非常普遍,遇到了优先测试。
| 端口 | 服务 | 渗透利用点 |
|---|---|---|
| 3306 | MySQL/MariaDB | 弱口令、未授权访问、脱库、写入Web后门 |
| 1433 | MSSQL SQL Server | SA弱口令、xp_cmdshell提权、数据库注入 |
| 5432 | PostgreSQL | 弱口令、高权限命令执行、文件读取 |
| 6379 | Redis缓存 | 未授权访问、写入定时任务/SSH密钥、写Webshell |
| 27017 | MongoDB | 无密码访问、整库下载、数据泄露 |
| 11211 | Memcached | 未授权读取缓存、反射DDOS、信息泄露 |
(4)文件传输&共享端口
文件传输和共享端口常被管理员忽视,匿名登录、弱口令、共享权限配置不当都可能导致源码泄露或直接上传后门文件。445 端口的 SMB 服务更是内网渗透的"明星端口",永恒之蓝等经典漏洞至今仍能在很多内网机器上打通。
| 端口 | 服务 | 渗透利用点 |
|---|---|---|
| 21 | FTP文件传输 | 匿名登录、弱口令、上传Web木马、目录遍历 |
| 22 | SFTP(同SSH端口) | 密钥泄露、上传后门文件 |
| 445 | SMB文件共享(Windows) | 永恒之蓝EternalBlue、共享目录泄露、本地提权 |
| 139 | NetBIOS共享服务 | 读取共享文件、主机信息探测、内网横向移动 |
(5)中间件/消息队列高危端口
中间件和消息队列端口近年爆出大量 RCE(远程代码执行)漏洞,而且很多企业对内网服务缺乏防护意识,往往不设密码或使用默认密码,是内网渗透的重要突破口。遇到不熟悉的端口,先查一下对应服务有没有公开 CVE。
| 端口 | 服务 | 渗透利用点 |
|---|---|---|
| 8005 | Tomcat关闭端口 | 可发送指令关闭服务,配合文件上传拿权限 |
| 9090 | ActiveMQ消息队列 | 未授权访问、远程代码执行、写入后门 |
| 2181 | Zookeeper | 未授权读取配置、内网服务探测 |
| 5672 | RabbitMQ | 弱口令、未授权操控队列 |
(6)运维面板、监控服务端口
运维面板和监控服务通常权限很高,一旦被攻破可以直接管理服务器或读取大量敏感日志。这类服务很多是管理员临时搭的,密码设置简单、版本更新不及时,弱口令和未授权访问是最常见的问题。
| 端口 | 服务 | 渗透利用点 |
|---|---|---|
| 3308 | phpMyAdmin数据库管理 | 数据库弱口令、SQL执行、导出导入数据 |
| 9200 | Elasticsearch | 未授权读取日志、命令执行、数据泄露 |
| 15672 | RabbitMQ管理面板 | 后台弱口令、未授权操作 |
| 8088 | 宝塔Linux面板 | 面板弱口令、数据库一键登录、服务器接管 |
(7)内网探测辅助端口(信息收集)
这类端口虽然不能直接拿权限,但能收集大量内网资产和配置信息,是内网信息收集和横向移动的重要辅助。比如 SNMP 可能直接吐出服务器的完整进程列表和用户信息,LDAP 可以枚举整个域的所有账号。
| 端口 | 服务 | 渗透利用点 |
|---|---|---|
| 161 | SNMP设备监控 | 读取服务器硬件、账号、进程、内网资产 |
| 53 | DNS服务 | 域传送漏洞、子域名爆破、解析欺骗 |
| 389 | LDAP域服务 | 域账号枚举、弱口令爆破、域信息泄露 |
端口扫描实操建议
- 扫描优先级:先扫80/443/8080等Web端口,再扫数据库、远程登录高危端口;
- 内网靶场常用全量端口合集:
21,22,23,80,139,443,445,3306,3389,6379,8080,9000,7001; - 防护思路:生产环境关闭不必要端口、限制端口访问IP、设置高强度密码、禁用匿名访问。
3.1.2 端口状态分类
| 端口状态 | 含义 | 渗透价值 |
|---|---|---|
| open(开放) | 端口监听服务,可正常建立连接 | 核心测试目标,可探测服务漏洞、弱口令、后台入口 |
| filtered(过滤) | 防火墙/WAF拦截探测包,无返回 | 目标存在防护设备,需调整扫描参数、更换扫描模式 |
| closed(关闭) | 端口无程序监听,收到拒绝报文 | 无利用价值,可直接忽略 |
| unfiltered(未过滤) | 数据包可达主机,但无法判断端口开闭 | 仅作参考,更换探测方式重新扫描 |
3.1.3 端口扫描能获取的关键信息
- 开放端口清单:80/443网站、22 SSH远程登录、3306 MySQL数据库、3389 Windows远程桌面等;
- 端口绑定服务:Nginx、Apache、Tomcat、Mysql、Redis、FTP等;
- 服务版本号:用于匹配对应CVE公开漏洞;
- 操作系统识别:通过TCP指纹区分Windows/Linux;
- 额外信息:服务banner、登录欢迎语、数据库注释、敏感路径。
3.2 主流扫描工具:Nmap
Nmap(Network Mapper)是行业标准的端口扫描工具,广泛应用于网络安全审计、渗透测试与资产探测。它支持主机存活探测、端口扫描、服务版本识别、操作系统指纹识别、漏洞脚本扫描等核心功能,是渗透测试信息收集阶段的必备工具。
本章节统一使用本地 Vulhub 靶机演示,目标 IP:192.168.200.131。
3.2.1 工具下载与安装
官方下载地址 :https://nmap.org/
Nmap 提供全平台支持,各系统安装方式如下:
| 平台 | 安装方式 |
|---|---|
| Windows | 官网下载 nmap-7.99-setup.exe 一键安装,自带图形界面 Zenmap |
| Kali Linux | 系统预装,直接使用 |
| macOS | brew install nmap |
注意:Windows 版安装时会自动安装 Npcap 抓包驱动,这是 Nmap 正常工作的底层依赖。若安装后扫描无响应,需确认 Npcap 驱动正常运行。
3.2.2 图形界面 Zenmap 介绍
Zenmap 是 Nmap 官方的图形化前端,将常用扫描功能封装为可视化模板,适合初学者快速上手。
界面布局

界面主要分为三个区域:
1. 顶部参数区
- Target:目标输入框,支持单个 IP、网段、域名
- Profile:扫描模板下拉框,内置多种预设扫描策略
- Command:自动生成的 Nmap 命令,可手动编辑
- Scan / Cancel:开始 / 终止扫描按钮
2. 左侧主机列表
- 显示已扫描的目标主机
- 绿色圆点表示主机存活
3.标签页
| 标签页 | 功能说明 |
|---|---|
| Nmap Output | 原始扫描日志,完整输出扫描过程 |
| Ports / Hosts | 端口与服务列表,结构化展示 |
| Topology | 网络拓扑结构图 |
| Host Details | 主机详细信息,含操作系统、设备类型等 |
| Scans | 历史扫描记录管理 |
下拉框里全部是官方提前写好的固定扫描参数方案,只能直接选用,不能在这里修改参数。

| 模板名称 | 核心作用 | 适用场景 |
|---|---|---|
| Intense scan | 深度综合扫描(-T4 -A -v) |
常规渗透测试,信息最全(你当前使用) |
| Intense scan plus UDP | 深度扫描 + UDP 端口探测 | 扫描 DNS、SNMP 等 UDP 服务 |
| Intense scan, all TCP ports | 深度扫描 + 全 TCP 端口(1-65535) | 内网全面资产排查,耗时久 |
| Intense scan, no ping | 不存活检测直接扫描(加-Pn) |
目标防火墙拦截 ping 包 |
| Ping scan | 仅存活主机探测(-sn) |
快速扫网段,不查端口 |
| Quick scan | 快速常用端口扫描(-T4 -F) |
快速验证目标,节省时间 |
| Quick scan plus | 快速扫描 + 版本识别 | 兼顾速度与基础服务信息 |
| Quick traceroute | 仅路由追踪 | 查看网络跳转链路 |
| Regular scan | Nmap 默认最简扫描 | 新手基础测试 |
| Slow comprehensive scan | 极慢、隐蔽全面扫描 | 绕过严格防火墙,实战极少用 |
3.2.3 常用扫描模板
Zenmap 内置多种扫描模板,对应不同的 Nmap 参数组合:
| 模板名称 | 对应命令 | 适用场景 |
|---|---|---|
| Intense scan | nmap -T4 -A -v |
深度全面扫描,端口+系统+脚本 |
| Quick scan | nmap -T4 -F |
快速扫描,仅扫常用端口 |
| Ping scan | nmap -sn |
仅存活探测,不扫端口 |
| Intense scan, no ping | nmap -T4 -A -v -Pn |
绕过防火墙禁 ping |
| Regular scan | nmap |
默认常规扫描 |
核心参数说明:
-T4:扫描速度档位(T1 最慢最隐蔽,T5 最快最容易被检测)-A:综合扫描,包含操作系统识别、版本探测、路由追踪、默认脚本扫描-v:详细输出模式,实时显示扫描进度-sn:仅 ping 扫描,跳过端口探测-Pn:跳过主机存活检测,直接扫描端口
3.2.4 实战:Vulhub 靶机深度扫描
以 Vulhub ThinkPHP 靶机为例,演示完整扫描流程。
步骤一:配置扫描参数
在 Target 输入目标 IP,Profile 选择 Intense scan (深度扫描):

点击 Scan 按钮开始扫描。
步骤二:查看扫描日志
扫描过程中切换到 Nmap Output 标签,可实时查看扫描进度:

日志输出包含:
- 主机存活检测结果
- 端口扫描进度
- 服务版本探测
- HTTP 指纹识别
- 脚本扫描结果
- 最终统计信息
步骤三:查看端口结果
扫描完成后切换到 Ports / Hosts 标签,查看结构化端口列表:

扫描结果整理如下:
| 端口 | 状态 | 服务 | 版本 |
|---|---|---|---|
| 22/tcp | open | ssh | OpenSSH 10.3p1 Debian 4 |
| 80/tcp | open | http | Apache httpd 2.4.68 (Debian) |
| 8080/tcp | open | http | Apache httpd 2.4.38 (Debian) |
结果解读:
- 22 端口 SSH:可尝试弱口令爆破或密钥泄露攻击
- 80 端口 HTTP:Apache 默认页面,可进一步目录扫描
- 8080 端口 HTTP:ThinkPHP 漏洞靶场主页面,为后续渗透重点目标
3.2.5 扫描结果深度分析
从完整扫描日志中可提取更多渗透关键信息:
1. 操作系统识别
bash
OS details: Linux 5.4 - 6.6
OS CPE: cpe:/o:linux:linux\_kernel:5
目标运行 Linux 内核,版本范围 5.4 至 6.6,符合 Vulhub Docker 容器特征。
2. HTTP 服务指纹
bash
http-server-header: Apache/2.4.38 (Debian)
http-title: 首页 - ThinkPHP V5.0
确认 8080 端口运行 ThinkPHP 5.0 框架,可针对性测试 ThinkPHP 相关漏洞(如 5.0.23 RCE)。
3. 扫描统计
bash
Nmap done: 1 IP address (1 host up) scanned in 20.68 seconds
单台主机深度扫描耗时约 20 秒,效率较高。
3.2.6 进阶:自定义扫描命令
除内置模板外,可直接在 Command 框输入自定义参数,满足特定场景需求。
场景一:指定端口扫描
仅扫描 Web 相关端口,加快速度:
bash
nmap -T4 -p 80,443,8080,8081 -v 192.168.200.131
场景二:全端口扫描
扫描 1-65535 全部端口,确保无遗漏:
bash
nmap -T4 -p- -v 192.168.200.131
场景三:漏洞脚本扫描
使用 Nmap 脚本引擎(NSE)探测常见漏洞:
bash
nmap -T4 --script=vuln -v 192.168.200.131
场景四:绕过防火墙
目标禁 ping 时,跳过存活检测直接扫描:
bash
nmap -T4 -A -Pn -v 192.168.200.131
3.2.7 小结
Nmap 是信息收集阶段的核心工具,掌握以下要点即可满足大部分渗透场景:
- Zenmap 图形化操作:适合快速扫描与结果可视化
- Intense scan 模板:日常渗透首选,兼顾速度与信息完整度
- 端口+服务+版本:三位一体,为后续漏洞利用提供精准目标
- 自定义参数:根据目标环境灵活调整扫描策略
完成 Nmap 端口扫描后,通常需结合目录扫描工具(如 dirsearch)进一步探测 Web 应用路径,为漏洞验证做准备。
总结
本章系统讲解了网络层信息收集的三大核心模块:TTL 操作系统识别、CDN 绕过与真实 IP 获取、Nmap 全端口深度扫描。
通过 C 段旁站探测与端口服务识别,可全面掌握目标网络资产分布,为后续漏洞利用提供精准攻击面。
完成网络层探测后,下一阶段将进入 Web 应用层,深入指纹识别、目录扫描与 WAF 绕过等内容。
⚠️ 声明
- 本文所有技术内容均基于本地 Vulhub 靶场环境演示,仅限网络安全研究与学习交流使用。
- 网络安全关乎公共利益,未经授权对真实目标进行端口扫描、资产探测、漏洞测试等行为均属于违法行为,请严格遵守《中华人民共和国网络安全法》等相关法律法规。
- 本文作者不对任何人因使用上述技术造成的任何后果承担法律责任。
💬 大家在信息收集阶段最常用的工具组合是什么?
欢迎在评论区分享你的信息收集工作流,比如:
- 你习惯用 Nmap 还是 Masscan 做端口扫描?
- 绕过 CDN 你有什么独门技巧?
- C 段旁站发现过哪些有意思的资产?