如何用nmap对系统版本和服务版本的探测

发布时间:2021-12-09 10:42:45 作者:柒染
来源:亿速云 阅读:985
# 如何用Nmap对系统版本和服务版本的探测

## 目录
1. [Nmap简介](#nmap简介)
2. [版本探测原理](#版本探测原理)
3. [基础扫描命令](#基础扫描命令)
4. [操作系统探测](#操作系统探测)
5. [服务版本探测](#服务版本探测)
6. [高级扫描技巧](#高级扫描技巧)
7. [结果分析与解读](#结果分析与解读)
8. [安全注意事项](#安全注意事项)
9. [实际应用案例](#实际应用案例)
10. [总结](#总结)

---

## Nmap简介
Nmap(Network Mapper)是Gordon Lyon开发的开源网络扫描工具,被广泛用于:
- 网络发现
- 安全审计
- 漏洞扫描
- 系统/服务版本探测

支持多种扫描技术:
- TCP/UDP扫描
- 操作系统指纹识别
- 服务版本检测
- 脚本扫描(NSE)

> **最新版本**:截至2023年,Nmap 7.93支持3500+服务协议的版本检测

---

## 版本探测原理
### 1. 指纹数据库匹配
Nmap通过`nmap-service-probes`数据库(包含15,000+签名)进行匹配:
```text
Match ssh m|^SSH-([\d.]+)-OpenSSH_([\w.]+)\r?\n| p/OpenSSH/ v/$2/ i/protocol $1/

2. 交互式探测流程

  1. 发送特定协议请求
  2. 分析响应特征
  3. 与数据库比对
  4. 计算置信度(0-100%)

3. 典型识别特征

服务类型 识别特征示例
HTTP Server头字段
SSH 协议banner
MySQL 初始握手包

基础扫描命令

1. 标准版本扫描

nmap -sV 192.168.1.1

2. 指定扫描强度

nmap -sV --version-intensity 5 192.168.1.1

强度级别说明:

级别 探测包数量 耗时
0 1-2个 最快
5 5-6个 平衡
9 10+个 最慢

3. 轻量级扫描

nmap -sV --version-light 192.168.1.1

等价于--version-intensity 2


操作系统探测

1. 基础OS检测

nmap -O 192.168.1.1

示例输出:

Running: Linux 3.X|4.X
OS CPE: cpe:/o:linux:linux_kernel:3 cpe:/o:linux:linux_kernel:4
OS details: Linux 3.2 - 4.9

2. 增强模式

nmap -O --osscan-guess 192.168.1.1

3. 组合扫描

nmap -A 192.168.1.1

-A参数包含: - 操作系统检测(-O) - 版本检测(-sV) - 脚本扫描(-sC) - Traceroute(–traceroute)


服务版本探测

1. 自定义端口范围

nmap -sV -p 20-80,443,8000-9000 192.168.1.1

2. 排除特定端口

nmap -sV --exclude-ports 25,135 192.168.1.1

3. 结果输出格式

JSON格式输出:

nmap -sV -oX output.xml 192.168.1.1

4. 典型服务识别

Web服务识别示例:

80/tcp  open  http    Apache httpd 2.4.41 ((Ubuntu))
|_http-server-header: Apache/2.4.41 (Ubuntu)
|_http-title: Example Website

数据库服务识别:

3306/tcp open  mysql   MySQL 5.7.32-0ubuntu0.18.04.1
| mysql-info: 
|   Protocol: 10
|   Version: 5.7.32-0ubuntu0.18.04.1
|   Thread ID: 12

高级扫描技巧

1. 绕过防火墙

nmap -sV -T4 -f --data-length 24 192.168.1.1

2. 定时模板

nmap -sV -T paranoid 192.168.1.1

速度等级说明:

等级 延时 用途
T0 5min 隐蔽
T3 默认 平衡
T5 极速

3. 脚本增强

nmap -sV --script=banner 192.168.1.1

常用版本相关脚本: - ssl-certSSL证书检测 - http-headers:HTTP头采集 - smb-os-discovery:SMB系统信息


结果分析与解读

1. 置信度判断

22/tcp open  ssh     OpenSSH 7.9p1 (protocol 2.0)
Service Info: OS: Linux; CPE: cpe:/o:linux:linux_kernel

2. CPE标识解读

cpe:/a:apache:http_server:2.4.41分解: - a:应用软件 - apache:厂商 - http_server:产品名 - 2.4.41:版本号

3. 漏洞关联

使用vulners脚本:

nmap -sV --script vulners 192.168.1.1

输出示例:

| http-vulners: 
|   cpe:/a:apache:http_server:2.4.41: 
|       CVE-2020-11984   7.5
|       CVE-2019-0211    7.2

安全注意事项

  1. 法律合规

    • 仅扫描授权目标
    • 企业内网需书面许可
  2. 扫描优化

    nmap -sV --max-retries 1 --min-rate 100 192.168.1.1
    
    • 避免触发IDS/IPS
  3. 伦理准则

    • 不保留未授权扫描结果
    • 发现漏洞应负贵披露

实际应用案例

案例1:内网资产盘点

nmap -sV -O -iL ip_list.txt -oX inventory.xml

案例2:漏洞评估准备

nmap -sV -p- --open 10.0.0.0/24 | tee scan.log

案例3:云环境安全审计

nmap -sV --script="http-title,ssl-cert" cloud.example.com

总结

Nmap版本探测技术栈:

graph TD
    A[基础扫描] --> B[端口发现]
    A --> C[服务探测]
    B --> D[操作系统识别]
    C --> E[版本精确匹配]
    D --> F[安全评估]
    E --> F

持续学习建议: 1. 定期更新Nmap:nmap --upgrade 2. 研究NSE脚本:/usr/share/nmap/scripts/ 3. 分析新协议指纹

注:本文所有测试应在授权环境下进行,示例IP均为RFC 1918地址 “`

推荐阅读:
  1. ios系统版本判断
  2. linux查看系统版本的方法

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

nmap

上一篇:hbase启动报错master.TableNamespaceManager: Namespace table not found怎么办

下一篇:hbase故障如何处理

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》