Tibisihkr/dismap-identification-tool

GitHub: Tibisihkr/dismap-identification-tool

Dismap 是一款快速资产发现与指纹识别工具,通过内置的指纹规则库识别 Web、TCP、UDP 服务类型,帮助安全人员高效完成资产摸底与风险面排查。

Stars: 3 | Forks: 0

# 🌀 Dismap - 资产发现与识别工具 Go Version Version License ![GitHub Stars](https://img.shields.io/github/stars/zhzyker/dismap?color=success) ![GitHub Forks](https://img.shields.io/github/forks/zhzyker/dismap) ![Downloads](https://img.shields.io/github/downloads/zhzyker/dismap/total?color=blueviolet) ## 概述 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 ``` ![Dismap Screenshot](https://github.com/zhzyker/zhzyker/blob/main/dismap-images/dismap-0.3.png) ## 📖 命令行选项 | 选项 | 描述 | |--------|-------------| | `-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指纹, 云存储安全, 协议识别, 安全编程, 实时处理, 密码管理, 指纹识别, 插件系统, 数据统计, 文档结构分析, 无服务器架构, 日志审计, 服务识别, 漏洞扫描辅助, 端口扫描, 网络安全, 网络扫描, 资产识别, 隐私保护