sm1ee/Sniper

GitHub: sm1ee/Sniper

Sniper 是一款用 Rust 构建的 macOS 原生 Web 安全代理,提供 HTTP/HTTPS MITM 拦截、流量捕获与重放、模糊测试和被动扫描功能,以轻量快速和 CLI/AI 自动化支持为特色。

Stars: 4 | Forks: 0

Sniper — open-source web proxy for macOS

轻量、快速、开源的 macOS Web 代理
重型代理平台的现代替代品 — 使用 Rust 构建,专为安全测试设计。

Release Downloads Rust macOS MIT License

Sniper proxy UI — HTTP capture, replay, fuzzer

## 什么是 Sniper? Sniper 是一款专为 macOS 打造的**开源桌面 Web 安全代理**。它拦截、检查并修改浏览器与互联网之间的 HTTP/HTTPS 流量 — 这是 Web 应用程序安全测试、漏洞赏金狩猎和 API 调试的核心工作流程。 如果你使用过 Burp Suite、OWASP ZAP 或 Caido,你会感到非常熟悉 — 但没有 Java 的开销、订阅费用或臃肿的功能集。Sniper 是一款用 Rust 编写的**原生 macOS 应用**,能在 1 秒内启动,且内存占用保持在 100 MB 以下。 **适用人群:** 渗透测试人员、漏洞赏金猎人、安全研究人员以及需要了解网络传输细节的开发者。 ## 安装 从 [Releases](https://github.com/sm1ee/Sniper/releases/latest) **下载最新的 `.dmg`** 文件,打开它,然后将 Sniper 拖入你的 Applications 文件夹。 或者从源码构建: ``` cargo run --bin sniper-desktop ``` ## 功能 | 类别 | 具体内容 | |---|---| | **代理** | HTTP 转发、HTTPS MITM、持久化根 CA、`https://sniper` 证书门户 | | **捕获** | HTTP 历史、WebSocket 会话、拦截队列、匹配与替换规则 | | **发现** | 被动漏洞扫描器 — 敏感数据、CORS、缺失标头、JWT 问题 | | **重放** | 修改并重发任何捕获的请求 | | **Fuzzer** | 基于载荷和标记的请求测试 | | **工具** | 解码、编码、哈希、JWT 检查器、数据转换 | | **会话** | 隔离的工作区 — 各自拥有独立的记录、作用域和状态 | | **作用域** | 域名/路径过滤及站点地图可视化 | | **主题** | 12 款主题 — 7 款深色 + 5 款浅色,金色点缀的设计语言 | | **CLI** | `sniper-cli` — 优先支持 JSON 的脚本自动化 | | **AI 技能** | 使用 `sniper-cli` 的内置 Claude 和 Codex 技能模板 | ## 为什么选择 Sniper? | | Sniper | Burp Suite | OWASP ZAP | Caido | |---|---|---|---|---| | **运行时** | 原生 (Rust) | JVM | JVM | Rust + Electron | | **启动速度** | < 1 秒 | 10+ 秒 | 10+ 秒 | ~3 秒 | | **内存占用** | ~80 MB | 500+ MB | 400+ MB | ~200 MB | | **价格** | 免费 | $449/年 (Pro) | 免费 | 免费增值 | | **CLI 自动化** | 优先 JSON | 有限 | 有限 | API | | **AI 集成** | 内置 | 无 | 无 | 无 | ## 快速开始 1. 下载并打开 Sniper 2. 将浏览器代理指向 `127.0.0.1:8080` 3. 访问 `https://sniper` 下载并信任根 CA 4. 开始捕获 默认监听器: - Proxy: `127.0.0.1:8080` - UI: `127.0.0.1:23001` (headless 模式) ## 核心工作流程 ``` Session → Scope → Capture → Replay → Fuzz │ ┌─────────┼─────────┐ Intercept HTTP WebSocket │ Findings (passive scan) ``` - **会话** — 拥有独立记录和状态的隔离工作区 - **作用域** — 定义目标域名/路径,自动过滤流量 - **捕获** — 检查 HTTP、拦截与修改、WebSocket 帧、自动替换 - **发现** — 被动扫描器检测敏感数据泄露、CORS 配置错误、缺失的安全标头、JWT 弱点 - **重放** — 带修改重发,覆盖 host/port - **Fuzzer** — 插入标记,运行载荷列表 - **工具** — 集成解码/编码/哈希/JWT 功能 ## 命令行界面 ``` sniper-cli session list sniper-cli capture http list --limit 10 sniper-cli capture http replay --id sniper-cli scope set-scope --pattern '*.example.com' sniper-cli fuzzer run ``` 完整的 JSON 输出,支持脚本化,对 AI agent 友好。 ## AI 集成 ``` sniper-cli skills install --claude # Install Claude skill sniper-cli skills install --codex # Install Codex skill sniper-cli skills install --all # Install all ``` AI agent 可以通过 CLI 驱动完整的工作流程 — 捕获、作用域、重放、模糊测试 — 无需抓取 UI。 ## 技术栈 | 层级 | 技术 | |---|---| | 核心 | **Rust** — 代理、MITM、TLS、会话管理 | | HTTP | `hyper` + `tokio` 异步运行时 | | TLS | `rustls` + `rcgen` 用于即时证书生成 | | UI 服务器 | `axum` 提供嵌入式 SPA 服务 | | 前端 | 原生 **JS** + **CSS** — 零框架,零构建步骤 | | 桌面外壳 | 原生 **WebView** (`wry`) | | 打包 | macOS `.app` + `.dmg`,包含代码签名与公证 | ## 从源码构建 ``` cargo run --bin sniper-desktop # Desktop app cargo run --bin sniper # Headless proxy + UI server cargo run --bin sniper-cli # CLI cargo test # Tests ./packaging/macos/release-macos.sh # macOS .app + .dmg ``` ## 项目结构 ``` src/ ├── proxy.rs # Proxy core, HTTPS MITM, replay ├── api.rs # UI/API server (axum) ├── scanner.rs # Passive vulnerability scanner ├── session.rs # Session registry & snapshots ├── certificate.rs # Root CA generation & export ├── store.rs # HTTP transaction store ├── model.rs # Normalized data models ├── intercept.rs # Request intercept queue ├── match_replace.rs # Auto match & replace rules ├── fuzzer.rs # Payload fuzzer engine ├── websocket.rs # WebSocket capture ├── bin/ │ ├── sniper-desktop.rs # Native desktop shell (wry) │ └── sniper-cli.rs # JSON-first CLI web/ # Frontend SPA (vanilla JS/CSS) packaging/ ├── macos/ # .app & .dmg packaging scripts └── skills/ # Claude & Codex skill templates ``` ## 许可证 [MIT](LICENSE)
标签:API调试, Bug Bounty, Elastic Stack, HTTPS解密, HTTP流量分析, LangChain, macOS应用, MITM, Rust, Web代理, 中间人攻击, 可自定义解析器, 可视化界面, 安全测试, 开源安全工具, 抓包工具, 攻击性安全, 数据可视化, 服务管理, 桌面应用, 流量重放, 网络截获, 网络流量审计, 自定义脚本, 请求伪造, 轻量级, 逆向工程平台