服务与 OS 检测
指纹识别
服务与 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.10OS 检测
-O 标志会启用OS 指纹识别。Nmap 会检查 TCP/IP 协议栈响应方式中的细微差异,并将其与 OS 特征数据库进行匹配。
它会报告最可能的结果及准确率百分比,并在可用时提供设备类型和运行时间估计。
sudo nmap -O 192.168.1.10
# Running: Linux 5.X | OS CPE: cpe:/o:linux:linux_kernel:5TCP/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普通文本。-oXXML(供工具使用)。-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 反馈 — 无需本地设置。