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