haydarkadioglu/portinel

GitHub: haydarkadioglu/portinel

Portinel 是一个集成了 17+ 侦察模块和 AI 分析能力的生产级网络侦察平台,为安全团队提供从资产发现到漏洞情报的一站式评估工作流。

Stars: 0 | Forks: 0

# 🛡️ Portinel **生产级网络侦察平台** — 端口扫描、SSL/TLS 分析、HTTP 指纹识别、子域名枚举、CVE 情报以及 AI 驱动的分析。 ## 🚀 部署到 Vercel ### 1. 导入项目 - 前往 [vercel.com/new](https://vercel.com/new) - 导入 `https://github.com/haydarkadioglu/portinel` - 设置 **Production Branch:** `production` ### 2. 环境变量 在 Vercel → Project → Settings → Environment Variables 中添加以下内容: ``` # Supabase(Auth — 必需) NEXT_PUBLIC_SUPABASE_URL=https://your-project.supabase.co NEXT_PUBLIC_SUPABASE_PUBLISHABLE_KEY=sb_publishable_xxx SUPABASE_SERVICE_ROLE_KEY=eyJxxx # for admin user management # 数据库(使用 Supabase Pooler 或 Neon Postgres) DATABASE_URL=postgresql://... # Auth 加密密钥 AUTH_SECRET=generate-a-random-string ``` ### 3. 数据库设置 首次部署后,运行 schema migration: ``` # 通过您的 DATABASE_URL 在本地运行 npx drizzle-kit push --force ``` 或者使用 Supabase SQL Editor 运行 schema dump。 ### 4. 创建您的管理员用户 1. **Supabase Dashboard → Authentication → Users → Add user** 2. 设置邮箱和密码,并标记为已验证 3. **编辑用户 → User Metadata:** `{"role": "admin", "name": "Your Name"}` 4. 访问您的 Vercel URL → `/login` → 登录 `vercel.json` 已配置了 60 秒的函数超时,适用于长时间运行的扫描。 ## ✨ 功能 ### 侦察引擎(17+ 模块) - **端口扫描** — TCP 连接、banner grabbing、版本检测 - **SSL/TLS 分析** — 证书、加密算法、TLS 版本、评级 - **HTTP 指纹识别** — 标头、重定向、Cookies、CMS 检测 - **DNS 分析** — 完整枚举 + zone-transfer 测试 - **子域名发现** — CT logs (crt.sh + CertSpotter + HackerTarget) + 暴力破解 - **WAF 检测** — Cloudflare, AWS WAF, Akamai, Sucuri 等 - **Web 侦察** — 目录暴力破解、源码泄露、CORS 审计 - **CVE 情报** — 包含 CVSS 分数的本地漏洞数据库 - **OS 检测**、**WHOIS/RDAP**、**地理位置定位** ### AI 层 - **多提供商 LLM** — OpenRouter + DeepSeek + rule-engine fallback - **对话式助手** — 解释发现结果、建议漏洞利用和修复方案 - **自主代理** — AI 可以启动子扫描并调用 MCP 工具 - **CTF 工具包** — 解码器、密码、哈希工具、JWT、XOR ### 平台 - **Supabase Auth** — 仅限邀请、RBAC 角色(admin/pentester/analyst/viewer) - **扫描树** — 用于子域名/路径的嵌套子扫描 - **实时 SSE 进度** — 实时扫描流式传输 - **MCP 连接器** — 通过 SSE 连接外部工具服务器 - **VPN 隧道** — 用于内网扫描的 OpenVPN 配置 - **定时扫描** + **webhooks**(Slack/Discord) - **报告生成** — Markdown, JSON, CSV, 可分享链接, PDF ## 👥 角色 | 角色 | 权限 | |------|--------| | **admin** | 所有权限 — 用户管理、提供商配置、所有扫描 | | **pentester** | 扫描、子扫描、MCP、VPN、导出 | | **analyst** | 运行和查看扫描、报告 | | **viewer** | 只读权限 | 自注册功能已禁用。管理员通过 Admin Panel 或 Supabase Dashboard 创建账户。 ## 🔑 AI 提供商设置 Dashboard → **Admin Panel → 🤖 AI Providers**: - **OpenRouter** — 在 [openrouter.ai/keys](https://openrouter.ai/keys) 获取密钥 - **DeepSeek** — 在 [platform.deepseek.com/api_keys](https://platform.deepseek.com/api_keys) 获取密钥 - 测试、设置为活动状态、保存。如果不可用,将自动回退到内置引擎。 ## 📁 项目结构 ``` src/ ├── app/ # Next.js App Router │ ├── api/ # REST API + SSE + chat + MCP │ ├── dashboard/ # Main UI │ └── r/[token]/ # Public shareable reports ├── components/ # React components ├── lib/ # Core logic (scanner, llm, mcp, cve-db, ctf) └── db/ # Drizzle ORM schema ``` ## 🛡️ 安全性 - Supabase Auth(基于 cookie 的 SSR 会话) - 对每个 endpoint 进行 RBAC 权限检查 - SSRF 防护、速率限制、输入验证 - 静态加密密钥(AES-256-GCM) - 审计日志 ## 📄 许可证 专有许可 — 保留所有权利。
标签:GitHub, Supabase, Web应用扫描, 子域名枚举, 实时处理, 插件系统, 测试用例, 系统安全, 自动化攻击