github.com/chainreactors/fingers@v1.2.1/cmd/nmap/README.md (about)

     1  # Nmap指纹扫描命令行工具
     2  
     3  这是一个基于chainreactors/fingers项目中nmap引擎的并发指纹扫描命令行工具。
     4  
     5  ## 功能特性
     6  
     7  - ✅ 支持CIDR网段和单个IP地址扫描
     8  - ✅ 支持端口范围和单个端口扫描  
     9  - ✅ 高并发扫描,可配置线程数
    10  - ✅ 基于nmap指纹库进行服务识别
    11  - ✅ 实时进度显示和统计信息
    12  - ✅ 详细的扫描结果输出
    13  - ✅ 可配置扫描深度级别
    14  
    15  ## 安装和编译
    16  
    17  ```bash
    18  # 进入项目目录
    19  cd cmd/nmap
    20  
    21  # 编译
    22  go build -o nmap-scanner .
    23  
    24  # 或者直接运行
    25  go run .
    26  ```
    27  
    28  ## 使用方法
    29  
    30  ### 基本用法
    31  
    32  ```bash
    33  # 扫描单个IP的常见端口
    34  ./nmap-scanner -cidr 192.168.1.1 -port 22,80,443
    35  
    36  # 扫描整个C段的HTTP服务
    37  ./nmap-scanner -cidr 192.168.1.0/24 -port 80,443,8080
    38  
    39  # 扫描端口范围
    40  ./nmap-scanner -cidr 10.0.0.1-10.0.0.10 -port 1000-2000
    41  ```
    42  
    43  ### 高级用法
    44  
    45  ```bash
    46  # 高并发扫描(200线程)
    47  ./nmap-scanner -cidr 192.168.1.0/24 -port 22,80,443,3389 -threads 200
    48  
    49  # 设置超时时间(5秒)
    50  ./nmap-scanner -cidr 192.168.1.1 -port 80 -timeout 5
    51  
    52  # 高深度扫描(使用更多探针)
    53  ./nmap-scanner -cidr 192.168.1.1 -port 80 -level 6
    54  
    55  # 详细输出模式
    56  ./nmap-scanner -cidr 192.168.1.1 -port 80 -v
    57  
    58  # 保存结果到文件
    59  ./nmap-scanner -cidr 192.168.1.0/24 -port 80,443 -o results.txt
    60  ```
    61  
    62  ## 参数说明
    63  
    64  | 参数 | 说明 | 默认值 | 示例 |
    65  |------|------|--------|------|
    66  | `-cidr` | 目标CIDR范围或IP地址 | `127.0.0.1/32` | `192.168.1.0/24` |
    67  | `-port` | 端口范围,支持逗号分隔和范围 | `22,80,443` | `80,443,1000-2000` |
    68  | `-threads` | 并发线程数 | `100` | `200` |
    69  | `-timeout` | 扫描超时时间(秒) | `3` | `5` |
    70  | `-level` | 扫描深度级别(1-9) | `1` | `6` |
    71  | `-v` | 详细输出模式 | `false` | `-v` |
    72  | `-o` | 输出文件路径 | 无 | `results.txt` |
    73  
    74  ## 输出格式
    75  
    76  ### 扫描结果
    77  
    78  ```
    79  ✅ 192.168.1.1:80 -> nginx [nginx] v1.18.0 [http, web-server]
    80  ✅ 192.168.1.1:443 -> nginx [nginx] v1.18.0 [https, web-server, tls]
    81  🔍 192.168.1.1:22 -> 已识别但无详细信息
    82  🔓 192.168.1.1:3389 -> 端口开放
    83  ```
    84  
    85  ### 进度信息
    86  
    87  ```
    88  📈 进度: 45.2% (1810/4000) | 速度: 156.3/s | 开放: 23 | 识别: 15
    89  ```
    90  
    91  ### 最终统计
    92  
    93  ```
    94  ✅ 扫描完成!
    95  总耗时: 25.6s
    96  扫描目标: 4000
    97  开放端口: 23
    98  识别服务: 15
    99  扫描速度: 156.25 targets/sec
   100  ```
   101  
   102  ## 支持的端口格式
   103  
   104  - 单个端口:`80`
   105  - 多个端口:`80,443,8080`
   106  - 端口范围:`1000-2000`
   107  - 混合格式:`22,80,443,1000-2000,8080-8090`
   108  
   109  ## 支持的CIDR格式
   110  
   111  - 单个IP:`192.168.1.1`
   112  - CIDR网段:`192.168.1.0/24`
   113  - 大网段:`10.0.0.0/16`
   114  
   115  ## 扫描级别说明
   116  
   117  | 级别 | 描述 | 探针数量 | 适用场景 |
   118  |------|------|----------|----------|
   119  | 1 | 快速扫描 | 基础探针 | 快速发现常见服务 |
   120  | 3 | 标准扫描 | 常用探针 | 平衡速度和准确性 |
   121  | 6 | 深度扫描 | 大部分探针 | 详细服务识别 |
   122  | 9 | 完全扫描 | 所有探针 | 最全面的识别 |
   123  
   124  ## 性能优化建议
   125  
   126  1. **网络环境**:在良好的网络环境下使用更高的并发数
   127  2. **目标规模**:大规模扫描时适当降低并发数避免网络拥塞
   128  3. **超时设置**:根据网络延迟调整超时时间
   129  4. **扫描级别**:根据需求选择合适的扫描级别
   130  
   131  ## 使用示例
   132  
   133  ### 内网资产发现
   134  
   135  ```bash
   136  # 发现内网Web服务
   137  ./nmap-scanner -cidr 192.168.0.0/16 -port 80,443,8080,8443 -threads 300
   138  
   139  # 发现内网常见服务
   140  ./nmap-scanner -cidr 10.0.0.0/8 -port 22,80,443,3389,1433,3306 -threads 200
   141  ```
   142  
   143  ### 单机服务识别
   144  
   145  ```bash
   146  # 详细识别单台主机服务
   147  ./nmap-scanner -cidr 192.168.1.100 -port 1-65535 -level 6 -v
   148  ```
   149  
   150  ### 快速端口扫描
   151  
   152  ```bash
   153  # 快速扫描常见端口
   154  ./nmap-scanner -cidr 192.168.1.0/24 -port 22,80,443,3389 -threads 500 -timeout 2
   155  ```
   156  
   157  ## 注意事项
   158  
   159  1. 请确保有合法的扫描授权
   160  2. 大规模扫描可能触发防火墙或IDS告警
   161  3. 建议在测试环境中先验证扫描参数
   162  4. 高并发扫描时注意系统资源使用情况
   163  
   164  ## 技术实现
   165  
   166  - 基于chainreactors/fingers项目的nmap指纹引擎
   167  - 使用goroutines实现高并发扫描
   168  - 支持TCP连接和指纹匹配
   169  - 实时统计和进度显示
   170  - 内置CIDR和端口解析功能
   171  
   172  ## 故障排除
   173  
   174  ### 常见问题
   175  
   176  1. **连接超时**:增加timeout参数值
   177  2. **扫描速度慢**:增加threads参数值
   178  3. **内存使用过高**:降低threads参数值
   179  4. **识别率低**:增加level参数值
   180  
   181  ### 调试模式
   182  
   183  ```bash
   184  # 启用详细输出查看更多信息
   185  ./nmap-scanner -cidr 192.168.1.1 -port 80 -v -level 6
   186  ```
   187