rix4uni/vulntechfinder

GitHub: rix4uni/vulntechfinder

vulntechfinder 是一个基于技术栈检测的自动化漏洞扫描工具,解决大规模资产中针对性漏洞发现的效率问题。

Stars: 15 | Forks: 7

## vulntechfinder vulntechfinder 是一个强大的安全工具,它基于技术栈检测自动化执行漏洞扫描。它能智能地通过技术栈识别处理主机,并使用诸如 Nuclei 和 httpx 之类的工具执行针对性扫描。 ## 🚀 主要功能 - **🔍 自动化技术栈检测**:与 `techfinder` 无缝集成,识别目标主机上运行的技术 - **⚡ 并行处理**:可配置的并行执行(默认:50)以实现高性能扫描 - **🎯 智能筛选**:使用逗号分隔列表或文件输入来包含/排除特定技术 - **📊 多种输出格式**:将结果保存到文件,同时保持实时控制台输出 - **🛠️ 工具无关**:可与任何接受技术标签或文件路径的安全工具配合使用 - **🔧 灵活输入**:接受原始域名、主机列表或预处理的 techfinder JSON 输出 - **👀 实时监控**:使用 verbose 和 process 标志进行详细调试和进度跟踪 - **♻️ 崩溃安全恢复**:默认启用恢复功能,进度保存在 `resume.cfg` 中;在子命令上使用 `--no-resume` 可重新开始 ## 📦 安装方法 ### 选项 1:通过 Go 安装 ``` go install github.com/rix4uni/vulntechfinder@latest ``` ### 选项 2:下载预编译二进制文件 ``` wget https://github.com/rix4uni/vulntechfinder/releases/download/v0.0.7/vulntechfinder-linux-amd64-0.0.7.tgz tar -xvzf vulntechfinder-linux-amd64-0.0.7.tgz rm -rf vulntechfinder-linux-amd64-0.0.7.tgz mv vulntechfinder ~/go/bin/vulntechfinder ``` 从 [发布页面](https://github.com/rix4uni/vulntechfinder/releases) 下载其他平台二进制文件。 ### 选项 3:从源码编译 ``` git clone --depth 1 https://github.com/rix4uni/vulntechfinder.git cd vulntechfinder; go install ``` ## 🔧 用法 ``` vulntechfinder finds vulnerabilities based on tech stack using nuclei tags or fuzzing with ffuf. Examples: echo "hackerone.com" | vulntechfinder nuclei --cmd "nuclei -duc -t ~/nuclei-templates -tags {tech} -es unknown,info,low" --parallel 10 --output nuclei-output.txt cat subs.txt | vulntechfinder nuclei --cmd "nuclei -duc -t ~/nuclei-templates -tags {tech} -es unknown,info,low" --parallel 10 --output nuclei-output.txt cat techfinder-output.json | vulntechfinder nuclei --cmd "nuclei -duc -t ~/nuclei-templates -tags {tech} -es unknown,info,low" --parallel 10 --output nuclei-output.txt echo "hackerone.com" | vulntechfinder httpx --cmd "httpx -duc -silent -path {tech}" --parallel 10 --output httpx-output.txt cat subs.txt | vulntechfinder httpx --cmd "httpx -duc -silent -path {tech}" --parallel 10 --output httpx-output.txt cat techfinder-output.json | vulntechfinder httpx --cmd "httpx -duc -silent -path {tech}" --parallel 10 --output httpx-output.txt Usage: vulntechfinder [flags] vulntechfinder [command] Available Commands: completion Generate the autocompletion script for the specified shell help Help about any command httpx Run httpx scans on multiple hosts in parallel, filtering by technology stack (reads JSON from stdin or runs techfinder). nuclei Run Nuclei scans on multiple hosts in parallel, filtering by technology stack (reads JSON from stdin or runs techfinder). Flags: -h, --help help for vulntechfinder -u, --update update vulntechfinder to latest version -v, --version Print the version of the tool and exit. Use "vulntechfinder [command] --help" for more information about a command. ``` ## 🚀 快速开始 ### Nuclei 扫描 ``` echo "hackerone.com" | vulntechfinder nuclei --cmd "nuclei -duc -t ~/nuclei-templates -tags {tech} -es unknown,info,low" --parallel 10 --output nuclei-output.txt ``` ### HTTPx 模糊测试 ``` echo "hackerone.com" | vulntechfinder httpx --cmd "httpx -duc -silent -path {tech}" --parallel 10 --output httpx-output.txt ``` ## 📋 命令参考 ### nuclei 命令 运行按技术栈过滤的 Nuclei 扫描。 **用法:** ``` vulntechfinder nuclei --cmd "nuclei [options] -tags {tech}" [flags] ``` **示例:** ``` # 从域名列表扫描 cat domains.txt | vulntechfinder nuclei --cmd "nuclei -duc -t ~/nuclei-templates -tags {tech}" --parallel 20 # 使用现有的 techfinder JSON 输出 cat techfinder-results.json | vulntechfinder nuclei --cmd "nuclei -tags {tech}" --output results.txt # 仅包含特定技术 cat domains.txt | vulntechfinder nuclei --include-tech wordpress,joomla --cmd "nuclei -tags {tech}" # 从文件排除技术 cat domains.txt | vulntechfinder nuclei --exclude-tech excluded-techs.txt --cmd "nuclei -tags {tech}" # 全新开始,不恢复 cat domains.txt | vulntechfinder nuclei --no-resume --cmd "nuclei -tags {tech}" ``` ### httpx 命令 运行带有技术特定路径模糊测试的 httpx 扫描。 **用法:** ``` vulntechfinder httpx --cmd "httpx [options] -path {tech}" [flags] ``` **示例:** ``` # 使用技术特定词表进行模糊扫描 cat subdomains.txt | vulntechfinder httpx --cmd "httpx -duc -silent -path {tech}" --parallel 15 # 使用自定义词表目录 cat targets.txt | vulntechfinder httpx --cmd "httpx -path {tech}" --output httpx-results.txt # 扫描期间筛选技术 cat hosts.txt | vulntechfinder httpx --include-tech jenkins,gitlab --cmd "httpx -path {tech}" # 全新开始,不恢复 cat hosts.txt | vulntechfinder httpx --no-resume --cmd "httpx -path {tech}" ``` ## 📊 命令标志 ### 通用标志 - `--cmd string`**:包含 `{tech}` 占位符的命令模板(必需) - `--parallel int`**:并行进程数量(默认:50) - `--output string`**:用于保存结果的输出文件 - `--verbose`**:启用详细的调试输出 - `--process`**:显示正在处理的 URL ### 技术筛选标志 - `--include-tech string`**:要包含的技术的逗号分隔列表或文件 - `--exclude-tech string`**:要排除的技术的逗号分隔列表或文件 **注意:** `--include-tech` 和 `--exclude-tech` 不能同时使用。 ## 🛠️ 工作原理 1. **输入处理**:从 stdin 或现有的 techfinder JSON 输出读取主机 2. **技术检测**:如果未提供 JSON,则自动运行 `techfinder` 3. **技术筛选**:对技术应用包含/排除过滤器 4. **命令执行**:替换命令模板中的 `{tech}` 占位符 5. **并行扫描**:使用可配置的限制并发执行扫描 6. **输出处理**:将结果保存到文件,同时显示实时进度 ## ♻️ 恢复与中断处理 - 默认启用的恢复功能将进度保存到当前目录下的 `resume.cfg` 文件中,格式如下: ``` scanned=300000 ``` - 在同一目录中重新运行相同的命令即可恢复;扫描器将跳过前 `scanned` 个项目并继续。 - 在子命令上使用 `--no-resume` 可从头开始。 - 成功完成后,`resume.cfg` 将自动删除。 - 在 CTRL+C 时,挂起的任务会被优雅地取消,退出前会保存进度并提供有用的恢复提示。 ## 📁 文件结构与路径 ### 默认字典目录 httpx 命令会自动检查: - `/root/wordlists/{tech}` - `/root/wordlists/{tech}.txt` ## 输入格式 vulntechfinder 接受多种输入格式: - **原始域名/主机**:`echo "example.com" | vulntechfinder nuclei ...` - **域名列表**:`cat domains.txt | vulntechfinder nuclei ...` - **techfinder JSON**:`cat techfinder-output.json | vulntechfinder nuclei ...` ## 技术占位符 命令模板中的 `{tech}` 占位符将被替换为: - **nuclei**:逗号分隔的技术标签 - **httpx**:技术特定字典文件的路径或内联技术名称 ## 最佳实践 - 从 `--parallel 10` 开始,并根据系统资源增加 - 首次设置命令时使用 `--verbose` 进行调试 - 结合 `techfinder` 以获得最佳技术检测效果 - 使用 `--output` 保存所有结果以供稍后分析 - 在使用 vulntechfinder 之前,先直接测试命令 ## 🔧 故障排除 - 确保 `techfinder` 已安装且在 PATH 中,以便自动进行技术检测 - 手动替换 `{tech}` 后验证命令模板是否正常工作 - 使用 `--verbose` 查看详细的处理信息 - 管道传输 techfinder 输出时,检查输入格式是否符合预期的 JSON 结构
标签:EVTX分析, Google, GPT, GraphQL安全矩阵, httpx, Nuclei, Web安全, 主机扫描, 代码生成, 安全工具链, 安全扫描器, 安全测试, 安全自动化工具, 密码管理, 崩溃恢复, 工具无关性, 并行处理, 技术栈检测, 技术栈识别工具, 技术识别, 攻击性安全, 日志审计, 智能过滤, 正则表达式, 渗透测试工具, 漏洞扫描工具, 漏洞管理, 灵活输入, 结构化查询, 网络安全, 自动化安全, 蓝队分析, 输出格式, 运行时操纵, 隐私保护