mrceha/spectre

GitHub: mrceha/spectre

一个零依赖的 Go 语言模块化侦察框架,将端口扫描、子域名枚举、目录爆破、安全头分析、技术检测和 WHOIS 查询整合为单一二进制文件。

Stars: 0 | Forks: 0

# 👻 Spectre **模块化侦察框架** [![Go 1.21+](https://img.shields.io/badge/go-1.21+-00ADD8?style=flat-square&logo=go&logoColor=white)](https://golang.org) [![License: MIT](https://img.shields.io/badge/license-MIT-green?style=flat-square)](LICENSE) [![No Dependencies](https://img.shields.io/badge/dependencies-stdlib_only-brightgreen?style=flat-square)]()
Spectre 是一个用 Go 编写的模块化侦察框架。它将端口扫描、子域名枚举、目录爆破、安全响应头分析、技术检测和 WHOIS 查询整合到一个带有统一 CLI 的单一二进制文件中。零外部依赖——仅使用标准库。 ## 架构 ``` cmd/spectre/ CLI entry point internal/cli/ Command routing, flag parsing, signal handling pkg/ ├── recon/ Network reconnaissance (portscan, subdomain, whois) ├── web/ HTTP reconnaissance (dirsearch, headers, techdetect) └── output/ Rendering engine (table, JSON, file output) ``` 每个模块都实现了 `output.Renderable` 接口,确保所有扫描类型具有一致的格式。上下文感知的取消机制确保在中断信号时能够干净地关闭。 ## 安装 ``` go install github.com/mrceha/spectre/cmd/spectre@latest ``` 或者从源码构建: ``` git clone https://github.com/mrceha/spectre.git cd spectre make build ``` ## 模块 ### 端口扫描器 多线程 TCP 连接扫描,支持 Banner 抓取和服务识别。 ``` spectre scan 192.168.1.1 --ports 1-1024 --threads 200 spectre scan 10.0.0.1 -p 22,80,443,3306,8080 --json ``` ### 子域名枚举 基于 DNS 的子域名发现,支持并发解析和 CNAME 检测。 ``` spectre subdomain example.com spectre sub example.com --wordlist subdomains-10k.txt --threads 100 ``` ### 目录搜索 HTTP 目录和文件爆破,支持重定向检测。 ``` spectre dirsearch https://example.com --threads 50 spectre dir https://target.com --wordlist dirs.txt --json ``` ### 安全响应头 根据最佳实践评估 HTTP 安全响应头,并给出字母评级。 ``` spectre headers https://example.com ``` ``` HEADER STATUS SEVERITY NOTE ───────────────────────── ────── ──────── ──── Strict-Transport-Security present info HSTS enabled Content-Security-Policy missing high No CSP — vulnerable to XSS X-Frame-Options present info Clickjacking protection enabled X-Content-Type-Options present info MIME sniffing disabled Referrer-Policy missing medium No referrer policy Security score: 70/100 (Grade: C) ``` ### 技术检测 通过响应头和主体分析,对服务器技术、框架和 CMS 平台进行指纹识别。 ``` spectre tech https://example.com ``` ### WHOIS 查询 域名注册数据查询,支持自动 TLD 到服务器的解析和跟随引用。 ``` spectre whois example.com ``` ### 完整侦察 针对单个目标串联所有模块。 ``` spectre full example.com --json --output report.json ``` ## 全局标志 | 标志 | 默认值 | 描述 | |---|---|---| | `--timeout` | `5` | 请求超时时间(秒) | | `--threads` | `50` | 最大并发工作线程数 | | `--output` | stdout | 将结果写入文件 | | `--json` | off | JSON 输出格式 | | `--quiet` | off | 隐藏 banner 和进度条 | | `--wordlist` | built-in | 自定义字典文件路径 | ## 设计 - **零依赖** —— 完全基于 Go 的标准库构建。没有 `cobra`,没有 `urfave/cli`,也没有第三方的 HTTP 客户端。 - **上下文传播** —— 每个操作都接受 `context.Context`,以便在按下 Ctrl+C 时干净地取消。 - **有界并发** —— 工作池使用基于通道的分发,而不是无限制地生成 goroutine。 - **接口驱动输出** —— `Renderable` 接口将扫描逻辑与显示格式解耦。 - **单一二进制文件** —— 使用 `make build-all` 可为任何操作系统/架构进行交叉编译。 ## 构建 ``` make build # Build for current platform make build-all # Cross-compile for linux/darwin/windows (amd64 + arm64) make clean # Remove build artifacts ``` ## 法律声明 本工具仅供**授权安全测试**使用。在扫描非您所有的系统之前,您有责任获得适当的授权。 ## 许可证 MIT —— 详见 [LICENSE](LICENSE)。
标签:Banner抓取, C++17, DNS解析, ESC6, EVTX分析, GitHub, Go语言, HTTP头分析, WHOIS查询, 侦察框架, 协议探测, 单文件二进制, 多线程扫描, 子域名枚举, 实时处理, 密码管理, 开源安全工具, 开源项目, 技术栈识别, 插件系统, 数据统计, 无线安全, 日志审计, 漏洞扫描前置, 目录爆破, 程序破解, 端口扫描, 系统安全, 网络安全, 逆向工程平台, 隐私保护, 零依赖