{"id":13752354,"url":"https://github.com/zhzyker/dismap","last_synced_at":"2025-05-15T05:00:20.072Z","repository":{"id":37480275,"uuid":"389095703","full_name":"zhzyker/dismap","owner":"zhzyker","description":"Asset discovery and identification tools 快速识别 Web 指纹信息，定位资产类型。辅助红队快速定位目标资产信息，辅助蓝队发现疑似脆弱点","archived":false,"fork":false,"pushed_at":"2024-01-29T12:11:31.000Z","size":430,"stargazers_count":2084,"open_issues_count":24,"forks_count":267,"subscribers_count":28,"default_branch":"main","last_synced_at":"2025-04-14T05:57:48.611Z","etag":null,"topics":["cybersecurity","detection","fingerprint","fingerprint-scanner","golang-tools","identification","pentest-tool","pentest-tools","redteam","redteam-tools","security","security-scan","security-tools","webscan"],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/zhzyker.png","metadata":{"files":{"readme":"readme-zh.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2021-07-24T12:37:45.000Z","updated_at":"2025-04-13T20:02:05.000Z","dependencies_parsed_at":"2024-06-18T17:07:41.740Z","dependency_job_id":"4595aa2d-99a4-4255-830a-15d152097d35","html_url":"https://github.com/zhzyker/dismap","commit_stats":{"total_commits":50,"total_committers":5,"mean_commits":10.0,"dds":0.14,"last_synced_commit":"bb670d2b0b26ca9f52cb25a6a5757e776d43ab5e"},"previous_names":[],"tags_count":4,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zhzyker%2Fdismap","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zhzyker%2Fdismap/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zhzyker%2Fdismap/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zhzyker%2Fdismap/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/zhzyker","download_url":"https://codeload.github.com/zhzyker/dismap/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254276444,"owners_count":22043866,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["cybersecurity","detection","fingerprint","fingerprint-scanner","golang-tools","identification","pentest-tool","pentest-tools","redteam","redteam-tools","security","security-scan","security-tools","webscan"],"created_at":"2024-08-03T09:01:04.480Z","updated_at":"2025-05-15T05:00:20.036Z","avatar_url":"https://github.com/zhzyker.png","language":"Go","funding_links":[],"categories":["Asset Scanning","Go","扫描器、资产收集、子域名"],"sub_categories":["网络服务_其他"],"readme":"## 🌀 Dismap - Asset discovery and identification tool\n\u003ca href=\"https://github.com/zhzyker/dismap\"\u003e\u003cimg alt=\"Release\" src=\"https://img.shields.io/badge/golang-1.6+-9cf\"\u003e\u003c/a\u003e\n\u003ca href=\"https://github.com/zhzyker/dismap\"\u003e\u003cimg alt=\"Release\" src=\"https://img.shields.io/badge/dismap-0.3-ff69b4\"\u003e\u003c/a\u003e\n\u003ca href=\"https://github.com/zhzyker/dismap\"\u003e\u003cimg alt=\"Release\" src=\"https://img.shields.io/badge/LICENSE-GPL-important\"\u003e\u003c/a\u003e\n![GitHub Repo stars](https://img.shields.io/github/stars/zhzyker/dismap?color=success)\n![GitHub forks](https://img.shields.io/github/forks/zhzyker/dismap)\n![GitHub all release](https://img.shields.io/github/downloads/zhzyker/dismap/total?color=blueviolet)  \n  \nDismap 定位是一个资产发现和识别工具，他可以快速识别 Web/tcp/udp 等协议和指纹信息，定位资产类型，适用于内外网，辅助红队人员快速定位潜在风险资产信息，辅助蓝队人员探测疑似脆弱资产\n\nDismap 拥有完善的指纹规则库，目前包括 tcp/udp/tls 协议指纹和 4500+ Web 指纹规则，可以识别包括 favicon、body、header 等，   对于规则库的简介位于 [RuleLab](https://github.com/zhzyker/dismap#-rulelab)\n\n~~扫描结果可直接丢给 [Vulmap](https://github.com/zhzyker/vulmap)(\u003e=0.8) 进行漏洞扫描。~~, 0.3 版本中改变了文本结果，新增了 json 文件结果，vulmap 将在 \u003e= 1.0 支持联动\n\n## 🏂 Run\nDismap 对 Linux、MacOS、Windows 均提供了二进制可执行文件，前往 [Release](https://github.com/zhzyker/dismap/releases) 下载对应版本即可运行:\n```Bash\n# Linux or MacOS\nzhzyker@debian:~$ chmod +x dismap-0.3-linux-amd64\nzhzyker@debian:~$ ./dismap-0.3-linux-amd64 -h\n\n# Windows\nC:\\Users\\zhzyker\\Desktop\u003e dismap-0.3-windows-amd64.exe -h\n```  \n\u003e  ![dismap](https://github.com/zhzyker/zhzyker/blob/main/dismap-images/dismap-0.3.png)\n\n\n\n## 🎡 Options\n```Bash\n  -f, --file string     从文件中解析目标进行批量识别\n  -h, --help            查看帮助说明\n  -i, --ip string       指定一个网段 [示例 -i 192.168.1.0/24 or -i 192.168.1.1-10]\n  -j, --json string     扫描结果保存到 json 格式文件\n  -l, --level int       指定日志等级 (0:Fatal 1:Error 2:Info 3:Warning 4:Debug 5:Verbose) (默认 3)\n  -m, --mode string     指定要识别的协议 [e.g. -m mysql/-m http]\n      --nc              不打印字符颜色\n      --np              不使用 ICMP/PING 检测存活主机\n  -o, --output string   将扫描结果保存到指定文件 (默认 \"output.txt\")\n  -p, --port string     自定义要识别的端口 [示例 -p 80,443 or -p\t 1-65535]\n      --proxy string    使用代理进行扫描, 支持 http/socks5 协议代理 [示例 --proxy socks5://127.0.0.1:1080]\n  -t, --thread int      并发线程数量 (默认 500)\n      --timeout int     超时时间 (默认 5)\n      --type string     指定扫描类型 [示例 --type tcp/--type udp]\n  -u, --uri string      指定目标地址 [示例 -u https://example.com]\n\n```\n\n## 🎨 Examples\n```Bash\nzhzyker@debian:~$ ./dismap -i 192.168.1.1/24\nzhzyker@debian:~$ ./dismap -i 192.168.1.1/24 -o result.txt -j result.json\nzhzyker@debian:~$ ./dismap -i 192.168.1.1/24 --np --timeout 10\nzhzyker@debian:~$ ./dismap -i 192.168.1.1/24 -t 1000\nzhzyker@debian:~$ ./dismap -u https://github.com/zhzyker/dismap\nzhzyker@debian:~$ ./dismap -u mysql://192.168.1.1:3306\nzhzyker@debian:~$ ./dismap -i 192.168.1.1/24 -p 1-65535\n```\n\n## ⛪ Discussion\n* Dismap Bug 反馈或新功能建议[点我](https://github.com/zhzyker/dismap/issues)\n* Twitter: https://twitter.com/zhzyker\n* WeChat: 扫码滴滴我入群聊\n\u003cp\u003e\n    \u003cimg alt=\"QR-code\" src=\"https://github.com/zhzyker/zhzyker/blob/main/my-wechat.jpg\" width=\"20%\" height=\"20%\" style=\"max-width:100%;\"\u003e\n\u003c/p\u003e\n\n## 🌈 RuleLab\n整个规则库是一个 struct 位于 [rule.go](https://github.com/zhzyker/dismap/blob/main/config/rule.go)\n大致格式如下：\n```Golang\nRule:\nName: name /* 定义规则名称 */\nType: header|body|ico  /* 支持识别的类型, header、body、ico 可任意逻辑组合, ico 为单独请求 favicon.ico 并计算 MD5*/\nMode: and|or /* 类型的判断逻辑关系 */\nRule\nInBody: str  /* 需要指定响应 Body 中存在 str 则命中 */\nInHeader: str  /* 需要指定响应 Hedaer 中存在 str 则命中 */\nInIcoMd5: str_md5  /* favicon.ico 的 MD5 值 */\nHttp:\nReqMethod: GET|POST  /* 自定义请求方法,目前支持 GET 和 POST */\nReqPath: str  /* 自定义请求 Web 路径 */\nReqHeader: []str  /* 自定义 Http 请求的 Header */\nReqBody: str  /* 自定义 POST 请求时的 Body */\n```\n**规则库示例1:**\n\n即在响应Body中检查是否存在字符`\u003cflink-root\u003e\u003c/flink-root\u003e`\n```Golang\n{\"Apahce Flink\", \"body\", \"\", InStr{\"(\u003cflink-root\u003e\u003c/flink-root\u003e)\", \"\", \"\"}, ReqHttp{\"\", \"\", nil, \"\"}},\n```  \n\n**规则库示例2:**\n\n自定义请求访问`/myportal/control/main`,判断自定义请求的结果中是否存在指定的 header 字符和 body 字符  \n可以发现均支持正则表达式\n```Golang\n{\"Apache OFBiz\", \"body|header\", \"or\", InStr{\"(Apache OFBiz|apache.ofbiz)\", \"(Set-Cookie: OFBiz.Visitor=(.*))\", \"\"}, ReqHttp{\"GET\", \"/myportal/control/main\", nil, \"\"}},\n```\n\n**header, body, ico 的逻辑关系可以随意组合,但不可重复组合:**\n\n允许: `\"body|header|ico\", \"or\"` or `\"body|header|ico\", \"or|and\"` or `\"body|ico\", \"and\"`   \n不允许: `\"body|body\", \"or\"`  \n重复组合不允许通过类型指定,但可通过 InBody 判断字符内实现: `\"body\", \"\", InStr{\"(str1|str2)\"}`  \n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fzhzyker%2Fdismap","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fzhzyker%2Fdismap","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fzhzyker%2Fdismap/lists"}