LeechoShoop/cogitator

GitHub: LeechoShoop/cogitator

一款基于 Rust 的终端 TLS MITM 拦截代理与 Web 渗透测试工具包,提供从流量拦截到漏洞扫描的完整安全测试工作流。

Stars: 1 | Forks: 0

# ⚙️ COGITATOR **Cogitator** 是一个基于终端的 TLS MITM 拦截代理和渗透测试工具包,使用 Rust 编写 —— 概念上类似于 Burp Suite,但没有为弱者准备的 GUI,对疏于防范的 Web 应用程序也毫不留情。Cogitator 的机魂读取加密流量就像机械神教解读神圣图纸一样轻而易举。 打造这个工具是为了通过实践来学习网络安全工程和底层 Rust —— 每一行代码都经过反复敲打、祝圣和实战检验。 ## 🔱 目录 - [Cogitator 能做什么](#-what-cogitator-can-do) - [架构](#-architecture) - [安装说明](#-installation) - [快速开始](#-quick-start) - [安装根证书 (Export-CA)](#-installing-the-root-certificate-export-ca) - [神圣戒律(完整命令列表)](#-sacred-commandments-full-command-list) - [终端界面](#-terminal-interface) - [插件](#-plugins-extending-the-machine-spirit) - [工作区:保存状态](#-workspace-saving-state) - [免责声明](#-disclaimer-litany-of-caution) - [路线图](#-roadmap) - [贡献](#-contributing) ## ⚔️ Cogitator 能做什么 Cogitator 并非单一工具 —— 它是由同一个机魂统御的一系列审判模块: | 模块 | 用途 | |---|---| | **TLS MITM Proxy** | 通过本地 CA 动态替换证书,拦截 HTTP/HTTPS 流量(包括通过 ALPN 协商的 HTTP/2) | | **WebSocket Interceptor** | 完整的 RFC 6455 编解码器,实时拦截和修改帧 | | **Interceptor (Frozen Mode)** | 暂停实时请求并提供 放行 / 丢弃 / 修改 决策,包括请求头和请求体编辑 | | **Repeater** | 多标签页手动请求重放与修改 | | **Active Scanner** | 自动化检测 SQLi、XSS(反射型/存储型)和 Path Traversal,支持自定义并发 | | **Scan Diff** | 对比多次扫描结果 —— 追踪回归问题和新引入的漏洞 | | **Intruder** | 支持 Sniper / Battering Ram / Pitchfork / Cluster Bomb 模式的字典攻击 | | **Spider** | 遵循 robots.txt 的 BFS 爬虫,提取链接和表单 | | **CVE Lookup** | 通过 `cve.circl.lu` 根据服务 banner 查询已知漏洞 | | **Crypto Forensics** | TLS/cookie 安全审计,HSTS、HPKP、JWT 检测,A–F 等级评分 | | **Web/Email Analyzer** | 全站审计 + SPF/DKIM/DMARC 验证 | | **Process & Network Rites** | 进程监控、活动 socket 列表、基于 CPU 的可疑活动检测 | | **Scope System** | 灵活的正则表达式包含/排除过滤 —— 确保只瞄准目标 | | **History** | 包含 10,000 条记录的环形缓冲区,记录经过的每一次交互 | | **Plugin System** | 通过 `cogitator-plugin-api` 加载外部 `.so` 插件 | | **Workspace Save/Load** | 将完整会话状态保存到 `.cogitator` 文件中 | ## 🏛️ 架构 ``` cogitator/ ├── main.rs — entry point, TUI event loop, command dispatcher ├── proxy_guard.rs — proxy server core, pipeline entry point ├── tls_mitm.rs — cert generation/cache, CONNECT handling, ALPN/h2 ├── interceptor.rs — Frozen mode, operator decision queue ├── ws_interceptor.rs — WebSocket codec and frame interception ├── history.rs — request/response ring buffer ├── repeater.rs — Repeater tabs, manual replay ├── scanner.rs — ScanCheck trait, scan queue │ └── checks/ │ ├── sqli.rs — SQL injection (error-based) │ ├── xss.rs — Reflected/Stored XSS │ └── traversal.rs — Path Traversal ├── intruder.rs — wordlist-based attacks ├── spider.rs — BFS crawler ├── scope.rs — regex include/exclude rules ├── session.rs — cookie jar save/restore ├── workspace.rs — session state serialization ├── plugin.rs — external .so plugin loading ├── crypto_forensic.rs — TLS/cookie/HSTS audit ├── web_analyzer.rs — full site audit ├── scrap_analyze.rs — page metadata extraction ├── dns_guard.rs — SPF/DKIM/DMARC, DNS queries ├── network_guard.rs — active sockets + resolution ├── cve.rs — CVE lookup (cve.circl.lu) ├── styletui.rs — interface rendering (ratatui) ├── logger.rs — structured JSON logging ├── notifier.rs — system notifications └── config.rs — all magic numbers ``` 机魂运行在 `tokio` 之上 —— 异步代理核心通过 `block_in_place`/`spawn_blocking` 与同步的 TUI 循环共存,绝不会打破渲染仪式的节奏。 ## 🛠️ 安装说明 ### 前置条件 - Rust **1.80+**(2024 edition) - Linux / macOS / Windows - 需要拥有将根证书安装到系统信任存储区的权限(这是拦截 HTTPS 所必需的) ### 从源码构建 ``` git clone https://github.com/LeechoShoop/cogitator.git cd cogitator cargo build --release ``` 编译生成的二进制文件位于 `target/release/cogitator`。 ``` ./target/release/cogitator ``` ## ⚡ 快速开始 1. **启动 Cogitator:** cogitator 2. **启动代理**(在主屏幕上切换开关 —— 默认监听 `127.0.0.1:8080`)。 3. **将浏览器/curl 指向** 代理:`127.0.0.1:8080`。 4. **安装 Cogitator CA 证书**(见下文) —— 否则每个站点的 TLS 都会报错。 5. 在 `History` 面板中查看流量,在 `Interceptor` 中冻结请求,将它们发送到 `Repeater`,并运行 `Scan-Site`。 ``` curl -x http://127.0.0.1:8080 --cacert cogitator_ca.pem https://example.com ``` ## 🕯️ 安装根证书 (Export-CA) Cogitator 在首次运行时会生成自己的本地 CA(`cogitator_ca.pem` / `cogitator_ca.key`),并为流量经过的每个域动态签署叶子证书。 在 TUI 中输入: ``` Export-CA ``` 这会将 `cogitator_ca.pem` 复制到工作目录,并打印针对您的操作系统/浏览器信任存储区的安装指南。 ## 📜 神圣戒律(完整命令列表) ``` ╔═══════════════════════════════════════════════════════╗ ║ COGITATOR — SACRED COMMANDMENTS v0.6 ║ ╠═══════════════════════════════════════════════════════╣ ║ WEB FORENSICS ║ ║ Analyze-Site Full audit (human) ║ ║ Analyze-Site-Json Full audit (JSON export) ║ ║ Analyze-Email SPF / DMARC / DKIM check ║ ╠═══════════════════════════════════════════════════════╣ ║ TLS MITM ║ ║ Export-CA Copy CA cert + install guide ║ ╠═══════════════════════════════════════════════════════╣ ║ PROXY SCOPE ║ ║ Scope-Add Restrict logging to matches ║ ║ Scope-Exclude Never log/analyze matches ║ ║ Scope-List Show configured scope rules ║ ║ Scope-Clear Remove all scope rules ║ ╠═══════════════════════════════════════════════════════╣ ║ SESSIONS ║ ║ Session-Save Snapshot cookie jar as profile║ ║ Session-Load Restore cookies from profile ║ ║ Session-List List saved session profiles ║ ╠═══════════════════════════════════════════════════════╣ ║ REPEATER ║ ║ Send-To-Repeater Open history record in tab ║ ╠═══════════════════════════════════════════════════════╣ ║ SCANNER ║ ║ Scan-Site Active-scan discovered forms ║ ║ Scan-Request Active-scan a history record ║ ║ Scan-Diff Compare latest vs prior scan ║ ╠═══════════════════════════════════════════════════════╣ ║ INTRUDER ║ ║ Fuzz Sniper-fuzz a §PAYLOAD§ URL ║ ║ Intruder-Load Load raw HTTP template (file) ║ ╠═══════════════════════════════════════════════════════╣ ║ SPIDER ║ ║ Spider Crawl (depth 3, 500 pages) ║ ║ Spider-Depth Crawl with explicit depth ║ ╠═══════════════════════════════════════════════════════╣ ║ PROCESS RITES ║ ║ GP List all processes ║ ║ Find-Suspicious Detect high CPU usage ║ ║ Exterminate Purge a process ║ ║ GPP Reveal process path ║ ╠═══════════════════════════════════════════════════════╣ ║ NETWORK LITANIES ║ ║ Get-NIF List network interfaces ║ ║ GC List active sockets + DNS ║ ╠═══════════════════════════════════════════════════════╣ ║ WORKSPACE ║ ║ Workspace-Save [file] Save state (.cogitator) ║ ║ Workspace-Load Restore state from file ║ ║ Workspace-New Reset all in-memory state ║ ╠═══════════════════════════════════════════════════════╣ ║ SYSTEM ║ ║ CG Clear log records ║ ║ help Display this holy mandate ║ ║ exit Appease the Machine Spirit ║ ╚═══════════════════════════════════════════════════════╝ ``` ### 示例操作 ``` > Spider example.com > Scan-Site example.com > Scan-Diff > Fuzz https://example.com/login?user=§PAYLOAD§ wordlists/usernames.txt > Send-To-Repeater 42 > Export-CA > Workspace-Save campaign-alpha.cogitator ``` ## 🖥️ 终端界面 TUI 基于 `ratatui` 构建,可在六个屏幕之间切换: | 屏幕 | 用途 | |---|---| | **Main** | 命令行、事件日志、概览 | | **Interceptor** | 交互历史 / 冻结模式(暂停并编辑实时请求和 WS 帧) | | **Repeater** | 多标签页手动 HTTP 请求重放 | | **Scanner** | 三面板主动漏洞扫描器 | | **Intruder** | 支持 Sniper/BatteringRam/Pitchfork/ClusterBomb 模式的字典攻击 | | **Spider** | 带有异常高亮的实时爬取概览 | 在 `Interceptor` 的冻结模式下,每一个被捕获的请求都是等待操作者裁决的阶下囚:**Forward**(释放)、**Drop**(处决),或 **Modify**(在发送前重写神圣的请求头和请求体文本)。 ## 🔌 插件(扩展机魂) Cogitator 通过独立的 `cogitator-plugin-api` crate 支持外部插件: - 定义插件契约的共享 trait,带有版本化的 ABI - 用于注册的 `export_plugin!` 宏 - 内置插件通过 `inventory` 自动注册 - 外部 `.so` 插件通过 `libloading` 动态加载 这意味着您可以在不触及核心的情况下,将自己的分析模块链接到 Cogitator 上 —— 机魂接受新的仪式,就像它天生就具备一样。 ## 💾 工作区:保存状态 针对目标的长期战役不应在您关闭终端时结束。 ``` Workspace-Save campaign.cogitator Workspace-Load campaign.cogitator Workspace-New ``` 快照包含:历史记录、Scope 规则、会话、扫描快照(用于 `Scan-Diff`)以及积累的其他关于目标的知识。 您也可以在启动时直接打开战役存档: ``` cogitator campaign.cogitator ``` ## ⚠️ 免责声明(谨慎连祷文) Cogitator **仅** 专为以下用途构建: - 授权的渗透测试, - 安全研究和教育, - 审计您自己的基础设施。 在大多数司法管辖区,未经授权拦截他人流量、扫描您不拥有的系统或对第三方运行 MITM 攻击都是 **违法的**。作者对滥用此工具的行为不承担任何责任。异端行为不仅会受到审判庭的惩处,更会受到法律的制裁。 ## 🗺️ 路线图 - [ ] 扩展主动检测库(SSRF、XXE、命令注入) - [ ] 改进 Scan-Diff 可视化 - [ ] 跨多节点的分布式扫描 - [ ] HTML/PDF 报告导出 - [ ] *(AI 辅助分析 —— 推迟至核心功能完成后进行)*
标签:Rust, 中间人攻击代理, 可视化界面, 流量拦截, 网络安全, 网络流量审计, 通知系统, 隐私保护