Tibisihkr/dismap-identification-tool
GitHub: Tibisihkr/dismap-identification-tool
Dismap 是一款快速资产发现与指纹识别工具,通过内置的指纹规则库识别 Web、TCP、UDP 服务类型,帮助安全人员高效完成资产摸底与风险面排查。
Stars: 3 | Forks: 0
# 🌀 Dismap - 资产发现与识别工具



## 概述
Dismap 是一款功能强大的资产**发现**与**识别**工具,专为安全专业人员设计。它能快速识别 Web、TCP 和 UDP 服务的协议与指纹,非常适合内网和外网资产评估。
### 核心特性
- **全面的协议支持**:识别 TCP、UDP 和 TLS 协议
- **丰富的指纹数据库**:超过 **4,500 条 Web 指纹规则**
- **多目标检测**:分析 favicon、响应体、Headers 等
- **网络灵活性**:适用于内网和外网环境
- **高性能**:支持并发扫描,线程数可自定义
### 应用场景
- **Red Team**:快速定位潜在风险资产和攻击面
- **Blue Team**:检测疑似脆弱资产和安全弱点
- **资产管理**:维护最新的网络服务清单
## 🚀 安装说明
Dismap 以独立二进制文件形式发布,支持 Linux、MacOS 和 Windows。请从 [Releases](https://github.com/zhzyker/dismap/releases) 页面下载适合的版本。
### Linux / MacOS
```
chmod +x dismap-0.3-linux-amd64
./dismap-0.3-linux-amd64 -h
```
### Windows
```
dismap-0.3-windows-amd64.exe -h
```

## 📖 命令行选项
| 选项 | 描述 |
|--------|-------------|
| `-f, --file` | 从指定文件解析目标进行批量扫描 |
| `-h, --help` | 显示帮助信息 |
| `-i, --ip` | 指定网段 (例如:`-i 192.168.1.0/24` 或 `-i 192.168.1.1-10`) |
| `-j, --json` | 以 JSON 格式保存扫描结果 (例如:`-j results.json`) |
| `-l, --level` | 设置日志级别:0=Fatal, 1=Error, 2=Info, 3=Warning (默认), 4=Debug, 5=Verbose |
| `-m, --mode` | 指定要扫描的协议 (例如:`-m mysql` 或 `-m http`) |
| `--nc` | 禁用彩色输出 |
| `--np` | 跳过 ICMP/PING 主机发现 |
| `-o, --output` | 将扫描结果保存到文本文件 (默认:`output.txt`) |
| `-p, --port` | 定义自定义端口范围 (例如:`-p 80,443` 或 `-p 1-65535`) |
| `--proxy` | 使用代理进行扫描 (支持 HTTP/SOCKS5,例如:`--proxy socks5://127.0.0.1:1080`) |
| `-t, --thread` | 设置并发线程数 (默认:500) |
| `--timeout` | 配置响应超时时间(秒) (默认:5) |
| `--type` | 指定连接类型 (例如:`--type tcp` 或 `--type udp`) |
| `-u, --uri` | 扫描特定的目标 URI (例如:`-u https://example.com`) |
## 💡 使用示例
### 基本网络扫描
```
./dismap -i 192.168.1.0/24
```
### 扫描并输出文件
```
./dismap -i 192.168.1.0/24 -o results.txt -j results.json
```
### 跳过 Ping 和自定义超时
```
./dismap -i 192.168.1.0/24 --np --timeout 10
```
### 高性能扫描
```
./dismap -i 192.168.1.0/24 -t 1000
```
### 单目标扫描
```
./dismap -u https://github.com/zhzyker/dismap
```
### 特定服务扫描
```
./dismap -u mysql://192.168.1.1:3306
```
### 全端口扫描
```
./dismap -i 192.168.1.0/24 -p 1-65535
```
## 💬 社区与支持
- **Bug 报告与功能请求**:[GitHub Issues](https://github.com)
- **Twitter**: [hzyker](https://twitter.com)
## 🔬 规则开发指南
完整的指纹规则库定义在 [`rule.go`](https://github.com/zhzyker/dismap/blob/main/configs/rule.go) 中,采用结构化格式。
### 规则结构
```
Rule:
Name: "rule_name" // Define the rule name
Type: "header|body|ico" // Detection types (can be combined)
Mode: "and|or" // Logical operator for Type evaluation
Rule:
InBody: "string" // String that must exist in response body
InHeader: "string" // String that must exist in response header
InIcoMd5: "md5_hash" // MD5 hash of favicon.ico
Http:
ReqMethod: "GET|POST" // HTTP request method
ReqPath: "string" // Custom request path
ReqHeader: []string // Custom HTTP headers
ReqBody: "string" // Custom POST request body
```
### 示例 1:简单的 Body 检测
通过检查响应体中是否包含 ` ` 来识别 Apache Flink:
```
{"Apache Flink", "body", "", InStr{"( )", "", ""}, ReqHttp{"", "", nil, ""}}
```
### 示例 2:自定义路径与 OR 逻辑
通过请求自定义路径并检查 header 或 body 来识别 Apache OFBiz(支持正则表达式):
```
{"Apache OFBiz", "body|header", "or", InStr{"(Apache OFBiz|apache.ofbiz)", "(Set-Cookie: OFBiz.Visitor=(.*))", ""}, ReqHttp{"GET", "/myportal/control/main", nil, ""}}
```
### 规则组合指南
**有效组合** ✅
- `"body|header|ico", "or"`
- `"body|header|ico", "or|and"`
- `"body|ico", "and"`
**无效组合** ❌
- `"body|body", "or"` (重复类型)
**多重 Body 检查的替代方案**
避免重复类型,可以使用正则表达式模式:
```
"body", "", InStr{"(string1|string2)", "", ""}
```
## 📝 许可证
本项目基于 GPL 许可证授权。详情请参阅仓库。
标签:C2日志可视化, Dismap, EVTX分析, EVTX分析, Golang, Qt框架, Redis利用, Web指纹, 云存储安全, 协议识别, 安全编程, 实时处理, 密码管理, 指纹识别, 插件系统, 数据统计, 文档结构分析, 无服务器架构, 日志审计, 服务识别, 漏洞扫描辅助, 端口扫描, 网络安全, 网络扫描, 资产识别, 隐私保护