vivashu27/webjiver

GitHub: vivashu27/webjiver

一个整合多款安全工具的自动化Web侦察与端点发现工作流,旨在帮助漏洞猎人提升枚举效率。

Stars: 1 | Forks: 0

# webjiver 一个轻量级的侦察和端点发现工具,将多个子域名枚举、端口扫描和网页爬虫工具整合到一个自动化的工作流程中。 ## 功能 - **子域名发现**:使用 `subfinder` 和 `assetfinder`(可选支持 `amass` 和 `knockpy`) - **端口扫描**:使用 `naabu` 对发现的子域名进行快速端口扫描 - **HTTP 枚举**:使用 `httpx` 验证活动的 HTTP/HTTPS 端点 - **技术识别**:识别发现端点上运行的技术 - **端点发现**:结合 `paramspider`、`hakrawler` 和 `urlfinder` 的结果 - **漏洞扫描**:可选集成 `nuclei` 和 `dalfox` - **清洁输出**:使用 `uro` 去重并规范化 URL ## 安装 ### 快速安装 运行安装脚本以安装所有必需和可选工具: ``` bash install.sh ``` 该脚本将: - 检查先决条件(Go、Python3、pip) - 安装所有必需工具 - 安装可选工具以扩展功能 - 验证安装并提供 PATH 配置说明 ### 手动安装 如果希望手动安装工具: #### 必需工具(Go) ``` go install github.com/projectdiscovery/subfinder/v2/cmd/subfinder@latest go install github.com/tomnomnom/assetfinder@latest go install github.com/projectdiscovery/naabu/v2/cmd/naabu@latest go install github.com/projectdiscovery/httpx/cmd/httpx@latest ``` #### 必需工具(Python via pipx) ``` pipx install uro pipx ensurepath # ensure pipx shims are on PATH ``` #### 可选工具(Go) ``` go install github.com/owasp-amass/amass/v4/...@latest go install github.com/hakluke/hakrawler@latest go install github.com/projectdiscovery/urlfinder/cmd/urlfinder@latest go install github.com/projectdiscovery/nuclei/v3/cmd/nuclei@latest go install github.com/hahwul/dalfox/v2@latest ``` #### 可选工具(Python) ``` # 从源代码安装 ParamSpider 的 install.sh;手动步骤: git clone https://github.com/devanshbatham/paramspider cd paramspider pip install . ``` #### Knockpy(子域名扫描器) ``` git clone https://github.com/guelfoweb/knock.git cd knock pip install . ``` ### PATH 配置 确保你的 PATH 包含: ``` # 添加到 ~/.bashrc 或 ~/.zshrc export PATH=$PATH:$(go env GOPATH)/bin export PATH=$PATH:$HOME/.local/bin # 然后重新加载 source ~/.bashrc # or source ~/.zshrc ``` ## 用法 ### 基本用法 ``` bash webjiver.sh -d example.com -o results.txt ``` ### 高级用法 ``` # 使用所有可选工具进行完整扫描 bash webjiver.sh \ -d example.com \ -o endpoints.txt \ --amass \ --nuclei \ --dalfox \ --top-ports 2000 # 最小化扫描(禁用可选工具) bash webjiver.sh \ -d example.com \ -o results.txt \ --no-paramspider \ --no-hakrawler \ --no-urlfinder \ --no-tech ``` ### 选项 #### 必需 - `-d, --domain`:要扫描的根域名(例如 `example.com`) - `-o, --output`:输出文件名(保存在 `./webjiver-output/` 下) #### 发现选项 - `--no-tech`:禁用 httpx 技术检测 - `--no-paramspider`:禁用 ParamSpider 参数发现 - `--no-hakrawler`:禁用 Hakrawler 爬取 - `--no-urlfinder`:禁用 urlfinder 提取 #### 额外工具(如果已安装) - `--amass`:使用 amass 进行额外的子域名枚举 - `--knockpy`:使用 knockpy 进行子域名暴力破解和被动侦察 - `--nuclei`:在活动的 HTTP 目标上运行 nuclei 漏洞扫描器 - `--dalfox`:在发现的 URL 上运行 dalfox XSS 扫描器(可能产生较多噪音) #### 调整 - `--top-ports N`:在 naabu 中使用前 N 个端口(默认:`1000`) - `--status-codes CSV`:httpx 的 HTTP 状态码(默认:`200,301,302,403,404`) #### 帮助 - `-h, --help`:显示帮助信息 ## 输出 所有结果保存在 `./webjiver-output/` 目录中: - `{output}.txt`:主要整合的端点文件(已去重并规范化) - `{domain}-httpx-tech.txt`:技术检测结果(如果未使用 `--no-tech`) - `{domain}-nuclei.txt`:nuclei 扫描结果(如果使用了 `--nuclei`) - `{domain}-dalfox.txt`:dalfox XSS 扫描结果(如果使用了 `--dalfox`) - `knockpy-report/`:包含完整子域名扫描结果的 Knockpy JSON 报告(如果使用了 `--knockpy`) ## 工作流程 1. **子域名发现**:使用 subfinder、assetfinder,并可选地使用 amass 和 knockpy 查找子域名 2. **端口扫描**:使用 naabu 对发现的子域名扫描顶级端口 3. **HTTP 验证**:使用 ProjectDiscovery httpx 检查哪些端点是活动的 4. **技术识别**:识别活动端点上的技术(可选) 5. **端点发现**:使用 paramspider、hakrawler 和 ProjectDiscovery urlfinder 爬取并发现端点 6. **漏洞扫描**:在发现的目标上运行 nuclei 和/或 dalfox(可选) 7. **输出**:整合、去重并规范化所有发现的 URL ## 要求 ### 必需工具 - `subfinder` - 子域名枚举 - `assetfinder` - 额外的子域名发现 - `naabu` - 快速端口扫描器 - `httpx` - HTTP 探测和验证 - `uro` - URL 规范化与去重 ### 可选工具 - `amass` - 高级子域名枚举 - `knockpy` - 子域名暴力破解和被动侦察 ([source](https://github.com/guelfoweb/knock)) - `paramspider` - 参数发现 - `hakrawler` - 网页爬虫 - `urlfinder` - URL 提取 - `nuclei` - 漏洞扫描器 - `dalfox` - XSS 扫描器 ### 先决条件 - **Go** 1.17+(用于基于 Go 的工具) - **Python 3**(用于基于 Python 的工具) - **pip**(用于 Python 包安装) - **git**(推荐,用于部分工具安装) ## 故障排除 ### 安装后找不到工具 1. **检查 PATH**:确保 `$(go env GOPATH)/bin` 和 `$HOME/.local/bin` 在你的 PATH 中 2. **重新加载 Shell**:运行 `source ~/.bashrc` 或 `source ~/.zshrc` 3. **验证安装**:运行 `which toolname` 检查工具是否在 PATH 中 ### 安装失败 - **Go 工具**:确保 Go 已正确安装且 GOPATH 已设置 - **Python 工具**:确保 pip3 已安装并正常工作 - **权限错误**:对 pip 安装使用 `--user` 标志或以适当权限运行 ### 未找到子域名 - 检查域名是否有效且可访问 - 尝试使用 `--amass` 标志进行更全面的枚举 - 验证是否已为 subfinder 配置了 API 密钥(如需要) ### 未找到活动的 HTTP 目标 - 该域名可能没有任何 Web 服务在运行 - 尝试增加 `--top-ports` 值 - 检查防火墙是否阻止了端口扫描 ## 原始来源 这是对原始 `webjiver.sh` 的改进版本,来源于: - 仓库:https://github.com/vivashu27/webjiver - 原始脚本:https://raw.githubusercontent.com/vivashu27/webjiver/main/webjiver.sh ## 相比原始版本的改进 - ✅ 使用标志而非提示的非交互式 CLI - ✅ 更好的错误处理和工具验证 - ✅ 使用自动清理的安全临时文件处理 - ✅ 结构化的输出目录 - ✅ 可选工具集成(amass、nuclei、dalfox) - ✅ 使用 httpx 的技术识别 - ✅ 可配置的端口扫描和状态码过滤 - ✅ 全面的安装脚本 - ✅ 更好的日志和进度指示 ## 许可证 本项目基于原始的 webjiver.sh。请参考原始仓库获取许可信息。 ## 免责声明 本工具仅用于授权的安全测试和教育目的。仅在你拥有或明确获得许可的系统上使用。未经授权访问计算机系统是非法的。
标签:Bug赏金, Go安全工具, HTTP探测, Python安全工具, SEO, Web探测, Web爬虫, 关键词优化, 动态插桩, 子域名枚举, 开源安全工具, 技术识别, 数据统计, 日志审计, 端口扫描, 系统安全, 自动化侦察, 运行时操纵, 逆向工具, 逆向工程平台