jruggles656/raccoon-recon

GitHub: jruggles656/raccoon-recon

基于 Web 的渗透测试侦察工具包,将被动、主动和 Web 信息收集整合到单一 Go 二进制中,提供实时输出、结构化存储和报告导出能力。

Stars: 0 | Forks: 0

Raccoon Recon

🦝 Raccoon Recon

一款用于渗透测试的基于 Web 的侦察工具包
使用 Go 构建 • 单一二进制文件 • 零配置

Go SQLite WebSocket License

Raccoon Recon Dashboard

Raccoon Recon 提供了一个时尚的暗色主题仪表板,用于在渗透测试的信息收集阶段进行被动、主动和 Web 侦察。所有扫描结果均持久化在 SQLite 中,并可以导出为 PDF 或 Markdown 报告。 ## ✨ 功能 ### 🔍 被动侦察 | 工具 | 描述 | |------|-------------| | **WHOIS 查询** | 域名注册信息、注册商、名称服务器 | | **DNS 记录** | 通过 `dig` 获取 A、AAAA、MX、NS、TXT、SOA、CNAME 记录 | | **子域名枚举** | 通过 `theHarvester` 发现子域名 | | **DNS 侦察** | 通过 `dnsrecon` 进行标准枚举、反向 DNS、区域传送 | | **Google Dorking** | 为目标自动生成 Google dork 查询 | | **OSINT 聚合器** | Shodan、Censys、VirusTotal、crt.sh 等的链接 | ### ⚡ 主动侦察 | 工具 | 描述 | |------|-------------| | **端口扫描** | 通过 `nmap` 进行 TCP 连接扫描 | | **服务检测** | 使用 `nmap -sV` 进行版本检测 | | **OS 指纹识别** | 使用 `nmap -O` 进行操作系统检测 | | **Ping 扫描** | 使用 `nmap -sn` 发现存活主机 | | **Banner 抓取** | 通过 `nmap` 或 `netcat` 获取服务 Banner | | **Traceroute** | 网络路径发现 | | **SNMP 枚举** | 通过 `snmpwalk` 进行 SNMP 树遍历 | ### 🌐 Web 侦察 | 工具 | 描述 | |------|-------------| | **HTTP 头部分析** | 通过 `curl` 获取响应头 | | **技术检测** | 通过 `whatweb` 识别 CMS/框架 | | **目录发现** | 通过 `gobuster` 暴力破解目录 | | **SSL/TLS 分析** | 证书详情、密码套件、TLS 版本 *(内置)* | | **Robots.txt / Sitemap** | 获取并解析 *(内置)* | | **URL 元数据提取器** | HTTP 头部、HTML meta 标签、OG 数据 *(内置)* | ### 📁 文件元数据提取 | 文件类型 | 提取内容 | |-----------|-----------------| | **JPEG** | EXIF 数据 — 相机品牌/型号、GPS 坐标、拍摄日期、曝光度、ISO、焦距、尺寸 | | **PNG** | 尺寸、tEXt/iTXt 元数据块(作者、描述、软件、创建时间) | | **PDF** | 标题、作者、创建者、生成者、页数、创建/修改日期、PDF 版本 | ### 🛠️ 平台 | 功能 | 详情 | |---------|---------| | **仪表板** | 快速操作卡片,无需跳转即可进行即时扫描 | | **项目管理** | 按项目组织扫描任务 | | **实时输出** | 通过 WebSocket 流式传输实时扫描输出 | | **SQLite 数据库** | 所有结果被持久化存储,以便进行历史审查 | | **报告生成** | 将发现的结果导出为 Markdown 或 PDF | | **文件上传** | 拖放图像/PDF 以提取元数据并预览 | | **单一二进制文件** | 所有模板、CSS、JS 均被嵌入 — 直接运行即可 | ## 🚀 快速入门 ``` # 克隆 git clone https://github.com/jruggles656/raccoon-recon.git cd raccoon-recon # 构建与运行 go build -o reconsuite . ./reconsuite ``` 打开 **http://localhost:8080** 🎉 ## 📦 前置条件 Raccoon Recon 会自动检测哪些工具可用。缺失的工具将显示在仪表板上——内置工具始终可用。 ### macOS (Homebrew) ``` brew install go nmap whatweb gobuster pip3 install theHarvester dnsrecon ``` ### Debian / Ubuntu ``` sudo apt install golang nmap whatweb gobuster whois dnsutils \ traceroute curl netcat-openbsd snmp pip3 install theHarvester dnsrecon ``` ### ✅ 内置(无需安装) - Google Dorking - OSINT 聚合器 - SSL/TLS 分析 - Robots.txt / Sitemap - URL 元数据提取器 - 文件元数据提取器 (EXIF, PNG, PDF) ## ⚙️ 配置 编辑 `config.yaml`: ``` server: host: "127.0.0.1" port: 8080 database: path: "reconsuite.db" reports: directory: "./reports" ``` ## 📂 项目结构 ``` raccoon-recon/ ├── main.go # Entry point ├── config.yaml # Configuration ├── internal/ │ ├── config/config.go # Config loading │ ├── database/ # SQLite schema, models, queries │ │ ├── db.go # Database connection & migrations │ │ ├── models.go # Project, Scan, Result, Report structs │ │ ├── migrations.go # Schema definition │ │ └── queries.go # CRUD operations │ ├── scanner/ # Scan orchestration │ │ ├── executor.go # Scan lifecycle & routing │ │ ├── builtin.go # Built-in tools (SSL, dorking, OSINT, metadata) │ │ ├── filemeta.go # File metadata extraction (EXIF, PNG, PDF) │ │ ├── specs.go # CLI tool specifications │ │ └── parsers.go # Output parsers (whois, dig, nmap, curl) │ ├── server/ # HTTP server │ │ ├── server.go # Route registration & template loading │ │ ├── handlers.go # Page & API handlers │ │ ├── websocket.go # WebSocket hub for live output │ │ └── middleware.go # Logging, security headers, recovery │ ├── tools/ # Tool utilities │ │ ├── common.go # Tool runner (exec + streaming) │ │ ├── validator.go # Target validation │ │ └── detect.go # Installed tool detection │ └── report/ # Report generation │ └── generator.go # Markdown + PDF export ├── web/ │ ├── embed.go # Go embed directives │ ├── templates/ # HTML templates (embedded) │ │ ├── layout.html # Base layout with top navbar │ │ ├── dashboard.html # Dashboard with quick actions │ │ ├── passive.html # Passive recon page │ │ ├── active.html # Active recon page │ │ ├── web.html # Web recon page │ │ ├── projects.html # Project management │ │ ├── results.html # Results viewer │ │ └── reports.html # Report management │ └── static/ # Static assets (embedded) │ ├── css/style.css # Monochrome dark theme │ ├── js/app.js # Frontend logic │ └── img/logo.svg # 🦝 Raccoon logo └── reports/ # Generated report output ``` ## 🔌 API 参考 | 方法 | 端点 | 描述 | |--------|----------|-------------| | `GET` | `/api/projects` | 📋 列出所有项目 | | `POST` | `/api/projects` | ➕ 创建项目 | | `GET` | `/api/projects/{id}` | 📄 获取项目详情 | | `PUT` | `/api/projects/{id}` | ✏️ 更新项目 | | `DELETE` | `/api/projects/{id}` | 🗑️ 删除项目 | | `POST` | `/api/scans` | 🚀 开始扫描 | | `GET` | `/api/scans/{id}` | 📊 获取扫描状态 | | `DELETE` | `/api/scans/{id}` | ❌ 取消扫描 | | `GET` | `/api/scans/{id}/results` | 📈 获取扫描结果 | | `GET` | `/api/scans/recent` | 🕐 最近的扫描(最近 10 次) | | `POST` | `/api/reports` | 📝 生成报告 | | `GET` | `/api/reports/{id}/download` | ⬇️ 下载报告 | | `GET` | `/api/tools/status` | 🔧 检查已安装的工具 | | `GET` | `/api/stats` | 📊 仪表板统计信息 | | `POST` | `/api/upload/metadata` | 📁 上传文件以提取元数据 | | `WS` | `/ws` | 🔌 用于实时扫描输出的 WebSocket | ## 🏗️ 技术栈 | 组件 | 技术 | |-----------|-----------| | **后端** | Go 标准库 (`net/http`) | | **数据库** | 通过 `modernc.org/sqlite` 使用 SQLite(纯 Go,无 CGO) | | **WebSocket** | `github.com/coder/websocket` | | **PDF 导出** | `github.com/signintech/gopdf` | | **配置** | `gopkg.in/yaml.v3` | | **前端** | 原生 JS,CSS 自定义属性 | | **部署** | 通过 `embed.FS` 嵌入资源的单一二进制文件 |

🦝 祝您侦察愉快!
用 ☕ 和 Go 构建

标签:Ask搜索, DNS记录解析, ESC4, EVTX分析, GitHub, Golang, Google Dorking, Go语言, Markdown报告, Nmap, OSINT, PDF报告, PPID欺骗, Qt框架, SQLite, VirusTotal, WebSocket, Web侦察, WHOIS查询, 主动侦察, 仪表盘, 依赖分析, 侦察工具, 动态插桩, 协议探测, 单文件部署, 反取证, 子域名枚举, 安全工具库, 安全编程, 安全评估, 实时处理, 实时输出, 密码管理, 操作系统指纹识别, 数据统计, 日志审计, 服务识别, 检测规则, 横幅抓取, 漏洞扫描前置, 程序破解, 端口扫描, 系统安全, 网络安全, 网络资产发现, 虚拟驱动器, 被动侦察, 隐私保护, 零配置