0xcrow13/wmap
GitHub: 0xcrow13/wmap
wmap 是一款零依赖的 Go 网络扫描与侦察工具,整合了主动端口扫描、被动情报收集和 CVE 漏洞关联能力。
Stars: 1 | Forks: 1
```
Y88b e / 888-~88e-~88e /~~~8e 888-~88e
Y88b d8b / 888 888 888 88b 888 888b
Y888/Y88b/ 888 888 888 e88~-888 888 8888
Y8/ Y8/ 888 888 888 C888 888 888 888P
Y Y 888 888 888 "88_-888 888-_88"
888
```
# wmap
主动/被动网络扫描与侦察工具。使用 Go 编写,零外部依赖。
```
wmap [options]
```
## 命令
| 命令 | 描述 |
|--------------|------------------------------------------------|
| `active` | TCP/UDP 端口扫描,支持服务/OS 指纹识别 |
| `passive` | 通过 Shodan, Censys, BinaryEdge, ZoomEye, HackerTarget 进行侦察 |
| `discover` | 对 CIDR 范围进行 Ping 扫描以发现存活主机 |
| `update-db` | 测试 NVD API 连通性 |
## 主动扫描选项
| Flag | 描述 |
|--------------------|--------------------------------------------------|
| `-p ` | TCP 端口(支持逗号/范围,例如 `80,443,8000-8080`) |
| `-P ` | UDP 端口(语法同上) |
| `-sU` | 启用 UDP 扫描(默认 UDP 端口) |
| `-sV` | 服务/版本 banner 抓取 |
| `-O` | 根据 banner 进行 OS 检测 |
| `-A` | `-sV -O` 的简写形式 |
| `-T <1-5>` | 时间模板(1=慢速/20 线程 … 5=疯狂/500 线程) |
| `--vuln` | 通过 NVD API 查询已检测服务的 CVE |
| `--exploit` | 过滤漏洞结果,仅显示 EDBID 条目 |
| `-o ` | 保存结果(如果文件名以 .json 结尾则保存为 JSON,否则为 CSV) |
| `-oJ` | 输出 JSON 到 stdout |
| `-v` | 扫描时显示每个端口的进度 |
| `-q` | 隐藏 banner,输出最简信息 |
| `--no-ping` | 假定所有主机在线 |
| `--min-rate` | 最小 packets/sec(仅存储,不强制执行) |
| `--max-rate` | 最大 packets/sec(仅存储,不强制执行) |
## 被动扫描选项
| Flag | 描述 |
|------------------|-------------------------------------------|
| `-o ` | 将被动侦察报告保存至文件 |
## 示例
```
wmap active scanme.nmap.org -sV
wmap active scanme.nmap.org -sV -O -p 22,80,443 --vuln
wmap active -l targets.txt -p 1-1000 -o results.csv
wmap passive example.com -o report.txt
wmap passive -l domains.txt
wmap discover 192.168.1.0/24
```
## API Keys(被动模式)
为被动数据源设置环境变量。未设置的数据源将被跳过:
```
export SHODAN_KEY=xxx
export CENSYS_ID=xxx
export CENSYS_SECRET=xxx
export BINARYEDGE_KEY=xxx
export ZOOMEYE_KEY=xxx
```
HackerTarget(nmap 风格的被动端口列表)不需要 API key。
## 漏洞检测
当同时使用 `--vuln` 或 `--exploit` 与 `-sV` 时,扫描器会查询 [NVD API 2.0](https://nvd.nist.gov/developers)(免费,无需 key,限制为 5 req/30s)。结果会根据每个 (服务, 版本) 在内存中缓存。只有具备明确版本号(包含 2 个及以上数字部分,例如 `1.18.0`)的服务才会被查询——像 `AmazonS3` 这样的通用 banner 字符串会被跳过,以避免误报。
## 输出
- 当输出通过管道或重定向时,ANSI 颜色会自动禁用。
- 使用 `-q` 隐藏 banner。
- CSV 输出格式为 host,port,proto,service,status(每个端口一行)。
- JSON 输出格式为 `{host, os, ports: [{port, service, version, banner, vulns}]}`。
## 安装
```
go install github.com/Xwal13/wmap@latest
```
需要 Go 1.24+。
标签:EVTX分析, Go, Ruby工具, 云存储安全, 插件系统, 数据统计, 日志审计, 端口扫描, 网络扫描, 资产测绘