Ethical Hacking Academy · 课时

服务与 OS 检测

指纹识别

第 3 / 4 课13 个步骤

服务与 OS 检测 是 CoddyKit 上的免费 Ethical Hacking Academy 课时。 这是第 3 节课,共 4 节。 你可以在下方免费阅读本课时的完整内容 — 然后在浏览器中使用内置代码编辑器和全天候 AI 导师进行实践。 这是 Ethical Hacking Academy 学习路径的一部分,你的进度在网页和 CoddyKit 应用中同步。 Ethical Hacking Academy 课程共包含 4 节课。

从开放端口到目标

知道某个端口开放还不够。您还需要知道正在监听的软件及其版本,因为漏洞利用会针对特定版本。

Nmap 的服务检测和OS 指纹识别可以将开放端口列表转化为可采取行动的情报。

服务版本检测

-sV 标志会探测开放端口,并将响应与 Nmap 数据库进行匹配,以识别服务及其版本,例如“OpenSSH 8.2p1”或“Apache httpd 2.4.41”。

nmap -sV 192.168.1.10
# 22/tcp open ssh OpenSSH 8.2p1 Ubuntu

版本检测的工作原理

Nmap 会发送一系列探测,并将响应(横幅、行为、错误消息)与 nmap-service-probes 中的数千个特征进行比较。

这种横幅获取和行为匹配方式,即使服务运行在非标准端口上,也能识别出服务,例如运行在 8000 端口上的 HTTP 服务器。

版本强度

您可以使用 --version-intensity(0 到 9)调整 Nmap 的尝试强度:

  • 较低:探测较少、速度更快,但可能遗漏版本。
  • 较高:探测更多、速度更慢,但准确性更高。

快捷选项:--version-light(强度 2)和 --version-all(强度 9)。

nmap -sV --version-intensity 9 192.168.1.10

OS 检测

-O 标志会启用OS 指纹识别。Nmap 会检查 TCP/IP 协议栈响应方式中的细微差异,并将其与 OS 特征数据库进行匹配。

它会报告最可能的结果及准确率百分比,并在可用时提供设备类型和运行时间估计。

sudo nmap -O 192.168.1.10
# Running: Linux 5.X | OS CPE: cpe:/o:linux:linux_kernel:5

TCP/IP 协议栈指纹识别

每种 OS 对 TCP/IP 的实现都略有不同。Nmap 会探测以下特征:

  • 初始 TTL 值。
  • TCP 窗口大小。
  • 协议栈处理异常标志组合的方式。
  • TCP 选项的顺序。

这些细微差异会形成足够独特的指纹,用于推测 OS 家族和版本。

准确性注意事项

OS 检测只是最佳猜测,并非确定结论。在以下情况下,准确性会下降:

  • 防火墙过滤了 Nmap 所依赖的探测。
  • 主机运行不常见或虚拟化的协议栈。
  • 只有少数端口开放,可用于指纹识别。

主机不确定时,--osscan-guess 选项会让 Nmap 更积极地进行猜测。

组合标志

实际使用时,您可以组合检测选项。-A 标志是一个快捷方式,会同时启用 OS 检测、版本检测、默认脚本和路由跟踪。

sudo nmap -A 192.168.1.10
# Equivalent to -O -sV -sC --traceroute

为什么版本很重要

确切版本会决定您的下一步。看到“vsftpd 2.3.4”,您会立即想到著名的后门;看到“Apache 2.4.49”,您会想到路径遍历漏洞 CVE。

准确的版本数据可以让您搜索匹配的漏洞利用,而不是盲目尝试攻击。它还会直接用于报告中的漏洞部分。

保存结果

始终保存扫描结果,以便分析和编写报告。Nmap 支持多种格式:

  • -oN 普通文本。
  • -oX XML(供工具使用)。
  • -oG 便于搜索。
  • -oA 一次保存所有格式。
nmap -A -oA scan_results 192.168.1.10

不使用 Nmap 获取横幅

有时您需要手动确认服务。使用原始客户端连接并读取问候语(横幅),可以直接获知软件及其版本。

对于明文服务,您可以使用 netcat 等工具完成此操作。当 Nmap 的猜测似乎不正确时,这是快速进行合理性检查的好方法,不过现在许多服务会隐藏或伪造横幅,以误导攻击者。

nc 192.168.1.10 22
# SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.5

快速检查

找出一次完成最多操作的标志。

回顾

您学习了指纹识别:

  • -sV 通过探测/横幅匹配来检测服务版本;使用 --version-intensity 进行调整。
  • -O 使用 TCP/IP 协议栈指纹识别执行OS 检测;结果只是最佳猜测。
  • -A 将 OS、版本、脚本和路由跟踪组合在一起。
  • 确切版本有助于选择漏洞利用;使用 -oA 保存结果。

下一步:用于深度自动化的 Nmap 脚本引擎。

免费开始

用 AI 导师学习 Ethical Hacking Academy — 免费

在浏览器中编写并运行真实代码,获得全天候 AI 导师的即时帮助,并在网页或应用中继续学习。

课程
31
课程
111

常见问题解答

「服务与 OS 检测」课时是免费的吗?

是的 — 「服务与 OS 检测」的完整文本可在网页上免费阅读。要进行交互式练习(内置代码编辑器和全天候 AI 导师)并解锁 Ethical Hacking Academy 课程的其余内容,请升级到 CoddyKit PRO。 Ethical Hacking Academy 课程共包含 4 节课。

「服务与 OS 检测」这节课中我会学到什么?

指纹识别 你通过在浏览器中直接运行的动手代码来练习 Ethical Hacking Academy,全天候 AI 导师会在你学习这节课的过程中回答你的问题。

学习 Ethical Hacking Academy 需要有经验吗?

无需任何先前经验。CoddyKit 上的 Ethical Hacking Academy 课程适合初学者到高级学习者,你可以从这里开始或从头开始,按照自己的节奏学习。 这是第 3 节课,共 4 节。

「服务与 OS 检测」课时需要多长时间?

大多数 CoddyKit 课程大约需要 5–10 分钟。每节课都很精短且互动,所以你能稳步进步,并在网页和应用中从离开的地方继续。

我能在这节 Ethical Hacking Academy 课中编写并运行代码吗?

能。每节 Ethical Hacking Academy 课都包含内置代码编辑器,你可以在浏览器中直接编写并运行真实代码,并获得即时 AI 反馈 — 无需本地设置。

此课程中的所有课时

  1. 主机发现
  2. 端口扫描技术
  3. 服务与 OS 检测
  4. Nmap 脚本引擎
← 返回 Ethical Hacking Academy