UndeadSec/SocialFish

GitHub: UndeadSec/SocialFish

SocialFish 是一款用于模拟钓鱼攻击并收集认证信息的安全测试工具。

Stars: 4736 | Forks: 1431

SocialFish v3.0

Modern Dynamic Phishing Toolkit

**SocialFish v3.0** 带来了强大的新功能,用于克隆现代登录页面、捕获 Cookies 以及通过实时操作面板拦截双因素认证码。 ## 🆕 v3.0 版本新特性 - **Playwright 浏览器自动化** — 克隆依赖大量 JavaScript 的现代登录页面 - **完整的 Cookies 捕获与分析** — 包含详细元数据、安全属性、认证令牌 - **模板系统** — 保存并在多个目标间复用克隆配置 - **实时 OTP 拦截面板** — 实时捕获并注入双因素认证码 - **MITM 反向代理** — 支持 ngrok/cloudflared 隧道并自动安装 - **6 种克隆模式** — 仅登录、仅 Cookies 或完整捕获 - **多步骤登录检测** — 自动启发式识别复杂流程(如 Office365 等) - **Webhook 通知** — 实时告警至 Slack、Discord 或自定义 API - **会话管理** — 完整会话跟踪并支持导出为 JSON/CSV - **网络拦截** — 记录所有 HTTP 请求/响应 - **目标跟踪** — 跟踪点击、IP 地址、地理位置和设备类型 ## 📖 文档 ## 🚀 快速开始 ### 选项一:交互式安装(推荐) ``` python setup.py ``` 这将会: - 安装所有依赖项 - 设置 Playwright 浏览器 - 初始化数据库 - 配置隧道(可选) - 显示快速入门指南 ### 选项二:手动安装 然后访问:**http://localhost:5000/neptune** ## 🎯 基本工作流程 1. **创建模板** /templates → 新建模板 → 输入目标 URL 2. **设置隧道**(可选,用于远程测试) 点击“隧道” → 选择 ngrok/cloudflared → 授权 3. **生成诱饵 URL** 点击“诱饵” → 复制不可猜测的 URL 4. **发送给目标** 通过邮件、消息等方式分发诱饵 URL 5. **实时监控** /sessions → 查看捕获的凭据、Cookies、OTP 码 /admin/otp_panel.html → 拦截并注入双因素认证码 ## 🔧 核心功能 ### 模板库 - 保存克隆配置 - 跨用户复用 - 克隆模式:`both`(凭据 + Cookies)、`login`(仅凭据)、`cookies`(仅会话) - 浏览器引擎:Playwright(默认)、Selenium(可选) ### Cookies 捕获 - 完整的 Cookie 罐(域名、路径、安全标志、httponly、samesite、过期时间) - JavaScript Cookies 拦截 - 认证令牌检测 - 安全属性分析 - 导出为 JSON/CSV ### 实时 OTP 面板 - 基于 WebSocket 的实时通信 - 显示目标会话详情 - 等待 OTP 码(手动或自动) - 将 OTP 注入回目标浏览器 - 网络活动监控 ### MITM 与反向代理 - 自动设置 ngrok 或 cloudflared 隧道 - 反向代理所有目标流量 - 自动捕获 Cookies 和凭据 - 无需手动配置 ### Webhook 通知 - 支持 Slack、Discord、自定义 API - 在凭据提交、收到 OTP、会话创建时触发 - 支持 JSON、表单编码或 XML 负载 ### 多步骤与双因素认证检测 - 自动启发式识别复杂流程 - OTP 端点检测 - 用户交互的手动断点 - 分析中的双因素认证指标 ## 📊 支持站点 适用于任何使用以下技术的登录页面: - ✅ HTML 表单 - ✅ JavaScript 表单提交 - ✅ 基于 XHR/fetch 的认证 - ✅ 单页应用登录(React、Vue、Angular) - ✅ 双因素认证/OTP 流程 - ✅ 多步认证(Office365、Gmail、GitHub 等) ## 🌐 API 与命令行 ### Web API ``` # 模板列表 curl http://localhost:5000/templates # 生成诱饵 URL curl -X POST http://localhost:5000/lure/generate \ -d "template_id=1" # 查看会话 session curl http://localhost:5000/session/1 ``` ### CLI 命令 ``` # 设置 python setup.py # Interactive setup # 隧道 python core/tunnel_manager.py setup python core/tunnel_manager.py start --type ngrok # 数据库 python core/db_migration.py ``` ## 📂 项目结构 ``` SocialFish/ ├── SocialFish.py # Main Flask app ├── setup.py # Interactive setup wizard ├── FEATURES_v3.md # Feature documentation ├── IMPLEMENTATION_SUMMARY.md # Technical details ├── core/ │ ├── recorder_playwright.py # Browser automation │ ├── cookie_inspector.py # Cookie analysis │ ├── tunnel_manager.py # Tunneling support │ ├── db_migration.py # Database schema │ └── ... (other modules) └── templates/ └── admin/ ├── templates.html # Templates library UI ├── otp_panel.html # OTP interception UI ├── sessions.html # Session management UI └── ... (other templates) ``` ## 🔐 安全与道德 ⚠️ **仅供教育用途** - ✅ **需要同意** — 仅测试您拥有或获得明确书面许可的系统 - ✅ **审计日志** — 所有操作均记录用户归属 - ✅ **数据保护** — 实施适当的数据保留策略 - ✅ **符合 GDPR** — 遵守当地隐私法规 - ✅ **漏洞披露** — 负责任地报告漏洞 详情请参见 [CODE_OF_CONDUCT.md](CODE_OF_CONDUCT.md) 和 [LICENSE](LICENSE)。 ## 📱 移动控制器 寻找移动控制器?请查看 [SocialFishMobile](https://github.com/UndeadSec/SocialFishMobile) ## ⚖️ 免责声明 仅供教育目的使用 SocialFish 的使用完全由最终用户负责。开发者不承担任何责任,也不对因本程序造成的任何误用或损害负责。 “免责声明。在任何情况下,版权持有者或贡献者均不对 因使用本软件而导致的任何直接、间接、附带、特殊、惩罚性或后果性 损害(包括但不限于替代商品或服务的采购; 使用、数据或利润的损失;或业务中断)负责, 无论基于合同、严格责任或侵权(包括过失或其他原因), 即使已被告知可能发生此类损害。” 摘自 [LICENSE](LICENSE)。 ## 🐳 Docker 环境 使用 Docker 运行: ``` docker compose up ``` **状态**:可用于授权安全测试和红队演练的生产环境就绪 # 贡献 [![开源助手](https://www.codetriage.com/undeadsec/socialfish/badges/users.svg)](https://www.codetriage.com/undeadsec/socialfish) 我们鼓励您为 SocialFish 做出贡献!请查阅 [贡献指南](https://github.com/UndeadSec/SocialFish/blob/master/CONTRIBUTING.md) 了解具体流程。加入我们吧! ### 特别贡献者 @carinamary2448 - https://github.com/carinamary2448
标签:2FA 拦截, cloudflared, Cookie 捕获, ESC8, ngrok, OTP 拦截, Playwright, Web 工具, 会话跟踪, 动态钓鱼, 模板系统, 浏览器自动化, 特征检测, 登录页面克隆, 社会工程学, 网络安全, 网络渗透, 请求拦截, 逆向工具, 钓鱼工具, 防御绕过, 隐私保护, 隧道技术