cc1a2b/PenHunter

GitHub: cc1a2b/PenHunter

一款用 Go 编写的模块化 Web 漏洞扫描器,将子域名收集、URL 发现与多种常见 Web 漏洞检测整合到同一工作流中,帮助渗透测试人员高效完成从信息收集到漏洞验证的全流程。

Stars: 25 | Forks: 4

# PenHunter 🔍 [![Go 版本](https://img.shields.io/badge/Go-1.21+-00ADD8?style=flat&logo=go)](https://golang.org/) [![许可证](https://img.shields.io/badge/License-MIT-green.svg)](https://opensource.org/licenses/MIT) [![版本](https://img.shields.io/badge/Version-0.1.0-blue.svg)](https://github.com/cc1a2b/penhunter/releases) **PenHunter** 是一个用 Go 编写的强大、模块化的 Web 漏洞扫描器。它针对常见的 Web 漏洞提供了全面的测试,包括 XSS、SQL Injection、LFI、SSRF、RCE、Open Redirect 和 CSRF。 ## ✨ 功能 - 🔍 **多种漏洞扫描器**: XSS、SQLi、LFI、SSRF、RCE、Open Redirect、CSRF - 🚀 **高性能**: 带有可配置线程池的并发扫描 - 🎯 **高级检测**: 基于布尔、基于时间、基于报错的检测方法 - 🛡️ **WAF 绕过**: Payload 变异、请求头轮换、TLS 指纹随机化 - 🔧 **外部工具集成**: 支持 dalfox、sqlmap、nuclei 等工具 - 📊 **多种输出格式**: JSON、HTML、TXT - 🎨 **交互式 CLI**: 与原始 shell 脚本匹配的菜单驱动界面 - 🔄 **自动更新**: 通过 GitHub Releases 实现的内置更新机制 - 📁 **结构化结果**: 为扫描结果自动创建目录结构 ## 📋 系统要求 - Go 1.21 或更高版本 - 外部工具(可选,但推荐安装): - `subfinder`, `assetfinder` - 子域名枚举 - `httpx` - HTTP 探测 - `urlfinder`, `katana`, `gospider` - URL 发现 - `gau`, `gauplus`, `waybackurls` - Wayback machine URL - `cariddi`, `getJS` - Endpoint 发现 - `dalfox`, `sqlmap`, `nuclei` - 漏洞扫描 ## 🚀 安装 ### 快速安装 (Go) ``` go install -v github.com/cc1a2b/PenHunter/cmd/penhunter@latest ``` 二进制文件将被安装到 `$(go env GOPATH)/bin/penhunter` —— 请确保该目录已添加到您的 `PATH` 中。 ### 从源码构建 ``` # 克隆仓库 git clone https://github.com/cc1a2b/PenHunter.git cd PenHunter # Build make build # 安装到用户主目录 make install # 这将安装到 $HOME/penhunter/ ``` ### 安装路径 - **Linux/macOS**: `$HOME/penhunter/` - **Windows**: `%USERPROFILE%\penhunter\` 安装完成后,请添加到您的 PATH: ``` export PATH="$HOME/penhunter/bin:$PATH" ``` 或者创建一个符号链接: ``` sudo ln -sf $HOME/penhunter/bin/penhunter /usr/local/bin/penhunter ``` ### 从 Releases 下载 从 [GitHub Releases](https://github.com/cc1a2b/penhunter/releases) 下载最新版本并解压到您的 `$HOME/penhunter/` 目录。 ## 📖 使用说明 ### 交互模式 ``` penhunter ``` 这将启动交互式菜单系统,您可以在此进行以下操作: 1. 选择单域名或子域名扫描 2. 选择要测试的漏洞类型 3. 选择使用原生扫描器或外部工具 ### 命令行模式 ``` # 测试单个 URL penhunter -u https://example.com -v xss,sqli # 测试 URL 列表 penhunter -l urls.txt -v xss -t 50 --json results.json # 更新 penhunter penhunter --update # 检查更新 penhunter --check-update # 检查已安装的工具 penhunter --check-tools ``` ### 选项 ``` -h, --help Show help message -v, --version Show version information --update Update penhunter to the latest version --check-update Check if a new version is available --check-tools Check if all required tools are installed -u, --url Single URL to test -l, --list File containing list of URLs -v, --vulns Comma-separated vulnerabilities (xss,sqli,lfi,ssrf,rce,redirect,csrf) -e, --encoders Comma-separated encoders (url,base64,double,unicode) -t, --threads Number of concurrent threads (default: 25) --silent Silent mode (minimal output) --json Output results to JSON file --html Output results to HTML file --txt Output results to text file ``` ## 📁 目录结构 ``` penhunter/ ├── bin/ # Compiled binary ├── config/ # Configuration files │ ├── user_config.yaml # YOUR callback URLs (configure this!) │ ├── payloads.yaml │ ├── encoders.yaml │ └── defaults.yaml ├── core/ # Core engine │ ├── engine.go │ ├── http.go │ ├── logger.go │ ├── runner.go │ ├── tools.go │ └── updater.go ├── scanners/ # Vulnerability scanners │ ├── xss.go │ ├── sqli.go │ ├── lfi.go │ ├── ssrf.go │ ├── rce.go │ ├── redirect.go │ └── csrf.go ├── encoders/ # Payload encoders │ ├── url.go │ ├── base64.go │ ├── double.go │ └── unicode.go ├── cli/ # CLI interface │ ├── flags.go │ ├── banner.go │ └── help.go ├── output/ # Output formatters │ ├── json.go │ ├── txt.go │ └── html.go ├── utils/ # Utilities │ ├── colors.go │ ├── regex.go │ └── random.go ├── types/ # Type definitions │ └── finding.go ├── cmd/penhunter/main.go ├── go.mod ├── Makefile └── README.md ``` ## 🔧 配置 ### 用户配置(重要) 在使用 Blind XSS 或基于回调的测试之前,请在以下文件中配置您的回调 URL: ``` $HOME/penhunter/config/user_config.yaml ``` 配置示例: ``` # XSS Callback URL - 用于 blind XSS 测试 xss_callback: "https://xss.report/c/YOUR_ID" # Redirect Test Domain - 用于 open redirect 测试 redirect_domain: "evil.com" # SSRF Callback URL - 用于 blind SSRF 测试 ssrf_callback: "https://YOUR_BURP_COLLABORATOR.burpcollaborator.net" # Out-of-Band (OOB) Server oob_server: "https://YOUR_OOB_SERVER" ``` 您可以使用以下服务: - [xss.report](https://xss.report) - [Burp Collaborator](https://portswigger.net/burp/documentation/collaborator) - [Interactsh](https://github.com/projectdiscovery/interactsh) ### 结果目录 扫描结果将保存至 `$HOME/penhunter/`: - `penhunter/one/YYYY-MM/domain/` - 单域名扫描 - `penhunter/subdomains/YYYY-MM/domain/` - 子域名扫描 每次扫描会生成: - `domain_urls_targets.txt` - 收集到的 URL - `all_subdomains.txt` - 所有发现的子域名 - `subs.txt` - 存活的子域名 - 扫描器特定的输出文件 ## 示例 ![lfi](https://static.pigsec.cn/wp-content/uploads/repos/2026/04/df6806f7de114821.jpg) ![xss](https://static.pigsec.cn/wp-content/uploads/repos/2026/04/52b1b5230c114856.jpg) ## 🛠️ 开发 ``` # Build make build # Install make install # Clean make clean ``` ## 📝 许可证 本项目基于 MIT 许可证授权 - 详情请参见 [LICENSE](LICENSE) 文件。 ## ⚠️ 免责声明 本工具仅供授权的安全测试使用。用户有责任确保在测试任何系统之前已获得适当的授权。作者不对因使用本工具而造成的任何误用或损害承担责任。 ## 🙏 致谢 - 由 [cc1a2b](https://github.com/cc1a2b) 创建 - 灵感来源于最初的 `penhunter.sh` 脚本 - 用 Go 和 ❤️ 构建 ## 📞 支持 - **问题**: [GitHub Issues](https://github.com/cc1a2b/penhunter/issues) - **讨论**: [GitHub Discussions](https://github.com/cc1a2b/penhunter/discussions) **由 cc1a2b 用 ❤️ 制作**
标签:Bug Bounty, CISA项目, CSRF, EVTX分析, Go语言, LFI, RCE, SSRF, URL发现, WAF绕过, Web安全, XSS检测, 反取证, 可自定义解析器, 子域名收集, 安全检测, 安全评估, 并发扫描, 开放重定向, 开源安全工具, 日志审计, 服务器端请求伪造, 本地文件包含, 程序破解, 编程工具, 网络安全, 聊天机器人, 蓝队分析, 负载变异, 跨站请求伪造, 远程代码执行, 逆向工程平台, 隐私保护