DinethChanuka/phishmatrix-framework

GitHub: DinethChanuka/phishmatrix-framework

PhishMatrix 是一个命令行驱动的钓鱼模拟框架,用于安全教育和授权渗透测试中的钓鱼演练与凭据捕获分析。

Stars: 0 | Forks: 0

以下是 PhishMatrix‑Framework 的 **`README.md` 综合说明**,采用纯文本搭配 GitHub 风格的 Markdown 装饰,呈现出整洁、专业的外观。 ``` # PhishMatrix‑Framework **Developed by Mikey** > ⚠️ **EDUCATIONAL PURPOSE ONLY** > This software is intended exclusively for authorised security training, > academic research, and penetration testing with **explicit written consent**. > Unauthorised use against individuals, organisations, or systems is illegal. > The developer assumes no liability for any misuse or damage caused by this tool. > By using PhishMatrix, you agree to abide by all applicable laws and regulations. --- ## 概述 PhishMatrix‑Framework is a full‑featured phishing simulation toolkit for the command line. It allows cybersecurity students, educators, and authorised testers to: - Design realistic phishing email templates - Host responsive fake login pages (Facebook, Google, PayPal, etc.) - Launch **local** or **cloud‑exposed** phishing servers - Automatically harvest submitted credentials - Test SMTP configurations and send test emails - Analyse running services on the local machine for potential backdoors - Study phishing techniques in a safe, controlled environment Everything is stored in a local SQLite database, making it easy to review past campaigns, captured data, and server configurations. --- ## Features - **Colourful CLI** – ASCII art banner, colour‑coded menus and output - **9 realistic email templates** – Facebook, Google, PayPal, Credit Card, Instagram, Microsoft, Chase, Netflix, Generic Reset - **9 responsive landing pages** – fully responsive (mobile/tablet/desktop), redirect after capture - **Email Template Manager** – view, add, remove, validate placeholders (`{{name}}`, `{{email}}`, `{{date}}`, `{{link}}`) - **Landing Page Manager** – view, add (with custom redirect URL), remove - **SMTP Manager** – add, view, remove, test multiple SMTP servers (TLS/SSL) - **Local Attack** – host a phishing server on `localhost`, optionally send emails - **Public Attack** – expose your server via Cloudflare Tunnel (`cloudflared`) - **Cloudflared Installer** – one‑click installation for macOS, Linux, and Windows - **Server Risk Analyser** – scan listening ports, identify processes, banner grab, kill suspicious services - **Recent Attacks** – review past attacks, view captured credentials in detail, **stop active attacks** - **About Pages** – local web servers explaining phishing and the framework - **Persistent storage** – all data saved in `phishmatrix.db` (SQLite) --- ## 项目结构 ``` phishmatrix-framework/ ├── main.py # 入口点 – 主菜单循环 ├── utils.py # 常用工具、横幅、颜色助手 ├── db.py # 数据库初始化与 schema 迁移 ├── email_templates.py # 邮件模板管理器(基于文件夹) ├── landing_pages.py # 着陆页管理器(基于数据库) ├── smtp_manager.py # SMTP 配置管理器及测试功能 ├── attack_manager.py # 钓鱼服务器、邮件发送、凭据捕获 ├── cloudflared_manager.py # Cloudflared 安装与 tunnel 启动器 ├── risk_analyzer.py # 端口/进程扫描器及风险分析器 ├── about_servers.py # 用于“关于”页面的本地 HTTP 服务器 ├── email_templates/ # 存放所有邮件 HTML 文件的文件夹 ├── requirements.txt # Python 依赖项 └── README.md # 本文件 ``` --- ## Installation ### Prerequisites - Python 3.9 or newer - pip (Python package manager) - (Optional) `cloudflared` – can be installed from within the framework (option 6) ### 步骤 1. **Download or clone the repository** ```bash git clone https://github.com/DinethChanuka/phishmatrix-framework.git cd phishmatrix-framework ``` 2. **(推荐)创建虚拟环境** python3 -m venv venv source venv/bin/activate # 在 Windows 上:venv\Scripts\activate 3. **安装依赖项** pip install -r requirements.txt 4. **运行框架** python main.py 首次运行时,SQLite 数据库和 `email_templates/` 文件夹将被自动创建, 并预填充内置模板和着陆页。 ## 使用说明 – 菜单演示 运行 `main.py`。你将看到 ASCII 横幅和主菜单: ``` [0] Recent Attacks [1] Local Attack (localhost server only) [2] Public Attack (cloudflared tunnel) [3] Email Template Settings [4] Landing Page Template [5] SMTP Configurations [6] Install Cloudflared [7] Server Risk Analyser [8] About Phishing [9] About PhishMatrix [10] Exit ``` ### [0] 最近的攻击 - 列出最近 20 次攻击及其类型、使用的模板、发送的邮件、捕获的凭据和状态。 - **输入攻击 ID** 以进行管理: - `1` 查看所有捕获的凭据(IP、时间戳、表单字段) - `2` 停止当前运行的攻击(停用服务器) - `0` 返回攻击列表 - **输入 `exit`** 或按 Enter 键返回主菜单。 ### [1] 本地攻击 1. 选择一个邮件模板(例如 `facebook_security.html`)。 2. 选择一个着陆页(例如 `Facebook Login`)。将显示该页面的重定向 URL。 3. 框架会检查 SMTP 配置。 - 如果未保存任何配置,系统会提示你先添加一个(选项 5)。 - 如果存在多个配置,你可以选择要使用的配置。 4. 决定是否发送钓鱼邮件: - **是** → 输入目标电子邮件地址。系统将使用所选模板发送邮件,钓鱼链接指向你的本地服务器。 - **否** → 仅启动服务器;你可以手动分享该链接。 5. 本地 HTTP 服务器将在一个随机端口上启动。系统会显示钓鱼链接。 6. 任何提交的凭据都将实时显示并存储在数据库中。 7. 按 `Ctrl+C` 停止服务器。攻击将被标记为 `completed`。 ### [2] 公网攻击 工作方式与本地攻击完全相同,但在启动服务器后,框架会启动 **Cloudflare Tunnel**(`cloudflared tunnel`)。 系统会解析公网 `https://****.trycloudflare.com` URL 并将其用作钓鱼链接。 - 如果未安装 `cloudflared`,你将被重定向至选项 6。 - 服务器仍在本地运行;`cloudflared` 会安全地转发流量。 ### [3] 邮件模板设置 子菜单: - **[1] 查看邮件模板** – 列出 `email_templates/` 文件夹中的所有 HTML 文件。 - **[2] 添加新邮件模板** – 导入 HTML 文件。该文件必须包含所有四个占位符:`{{name}}`、`{{email}}`、`{{date}}`、`{{link}}`。缺少占位符将导致被拒绝并给出详细的错误提示。 - **[3] 删除邮件模板** – 通过 ID 删除模板。 - **[4] 退出至主菜单** 首次运行时,会自动创建 9 个逼真的邮件模板。 ### [4] 着陆页模板 子菜单: - **[1] 查看着陆页** – 显示每个页面的 ID、名称和重定向 URL。 - **[2] 添加新着陆页** – 导入 HTML 文件并要求输入重定向 URL(必须以 `http` 开头)。 - **[3] 删除着陆页** – 通过 ID 删除页面。 - **[4] 退出至主菜单** 首次运行时,9 个响应式的真实登录页面克隆将被植入数据库。 ### [5] SMTP 配置 子菜单: - **[1] 查看 SMTP 配置** – 列出所有已保存的配置。 - **[2] 添加 SMTP 配置** – 引导式输入:服务器、端口(已验证)、用户名、密码、TLS/SSL。 - **[3] 删除 SMTP 配置** – 通过 ID 删除。 - **[4] 测试 SMTP 配置** – 尝试登录服务器并报告成功或具体的失败原因(DNS、身份验证、超时)。 - **[5] 退出至主菜单** ### [6] 安装 Cloudflared - 检测你的操作系统。 - 在 macOS/Linux 上,下载 `cloudflared` 二进制文件并安装到 `/usr/local/bin`。 - 在 Windows 上,提供手动下载链接。 - 安装后,即可立即使用公网攻击。 ### [7] 服务器风险分析器 - 扫描机器上所有处于监听状态的 TCP 端口。 - 如果 `psutil` 被拒绝,它将回退到 `lsof` (macOS) 或 `ss` (Linux),如有需要,还会询问你的 `sudo` 密码以进行提权扫描。 - 对于每个端口,它会显示: - IP、端口、协议、进程名、PID - 风险等级:**低**(安全)、**中**(不常见)、**高**(已知后门 / 可疑) - 分析:基于 banner 的识别、后门特征匹配 - 扫描完成后,你可以通过输入端口号来**终止进程**。 - 结果采用颜色编码(绿/黄/红)。 ### [8] 关于钓鱼 在 8080 端口启动本地 Web 服务器,并在浏览器中打开一个教育页面,说明: - 什么是钓鱼 - 它是如何运作的 - 如何防范 在终端中按 `Enter` 停止服务器。 ### [9] 关于 PhishMatrix 与选项 8 类似,但提供有关框架本身的页面,包括 ASCII 徽标、开发者致谢以及教育用途免责声明。在 8081 端口运行。 ### [10] 退出 终止程序。 ## 内置模板 ### 邮件模板(在 `email_templates/` 中) | # | 文件名 | 描述 | |---|----------------------------|---------------------------------| | 1 | `facebook_security.html` | Facebook 安全通知 | | 2 | `google_alert.html` | Google 异常活动提醒 | | 3 | `paypal_invoice.html` | PayPal 付款确认 | | 4 | `credit_card_update.html` | 付款信息更新 | | 5 | `instagram_security.html` | Instagram 可疑登录 | | 6 | `microsoft_alert.html` | Microsoft 365 登录提醒 | | 7 | `chase_security.html` | Chase Bank 身份验证| | 8 | `netflix_billing.html` | Netflix 账单问题 | | 9 | `urgent_password_reset.html` | 常规紧急密码重置 | 所有模板均包含占位符 `{{name}}`、`{{email}}`、`{{date}}`、`{{link}}`。 ### 着陆页(存储在数据库中) | # | 名称 | 重定向 URL | |---|------------------------|-------------------------------------| | 1 | Facebook Login | https://www.facebook.com/ | | 2 | Google Sign‑In | https://accounts.google.com/ | | 3 | PayPal Checkout | https://www.paypal.com/signin | | 4 | Credit Card Update | https://www.paypal.com/myaccount/ | | 5 | Instagram Login | https://www.instagram.com/accounts/login/ | | 6 | Office 365 Login | https://login.microsoftonline.com/ | | 7 | Bank Login (Generic) | https://www.chase.com/ | | 8 | Netflix Login | https://www.netflix.com/login | | 9 | Generic Login with Error | https://www.google.com/ | 所有页面都是完全响应式的,并包含一个指向 `/login` 的 `POST` 表单。 ## 数据库 Schema (`phishmatrix.db`) | 表名 | 描述 | |--------------------------|--------------------------------------------------| | `email_templates` | 遗留表(当前未使用;模板位于文件夹中) | | `landing_pages` | `id`, `name`, `content`, `redirect_url`, `created_at` | | `smtp_configs` | `id`, `server`, `port`, `username`, `password`, `encryption`, `from_name` | | `attacks` | `id`, `timestamp`, `attack_type`, `email_template_id`, `landing_page_id`, `smtp_config_id`, `emails_sent`, `credentials_captured`, `status` | | `captured_credentials` | `id`, `attack_id`, `timestamp`, `ip`, `user_agent`, `form_data` (JSON) | 表将在首次启动时自动创建。 ## 工作原理(技术摘要) 1. **邮件模板** 作为 `.html` 文件存储在 `email_templates/` 文件夹中。当启动攻击时,系统会加载所选模板,并将其中的占位符替换为实际数据(目标姓名、电子邮件、日期和钓鱼链接)。 2. **着陆页** 存储在数据库中。自定义的 Python HTTP 服务器 (`http.server`) 通过 `GET /` 提供所选页面,并监听 `POST /login`。 3. **钓鱼链接** – 对于本地攻击,它是 `http://localhost:`;对于公网攻击,使用 Cloudflare Tunnel URL。 4. **凭据捕获** – 当受害者提交登录表单时,服务器会提取所有表单字段,将其存储在数据库中,实时打印它们,然后将受害者**重定向**到合法网站(你配置的 `redirect_url`)。 5. **攻击生命周期** – 每次攻击都会在 `attacks` 表中进行跟踪,并带有状态(`preparing`、`active`、`completed`、`stopped`、`failed`)。你可以从**最近的攻击**菜单中停止正在进行的攻击。 6. **风险分析器** – 使用 `psutil` 扫描所有处于监听状态的端口(回退到 `lsof`/`ss` 并可选择使用 `sudo`),识别进程,执行 banner grabbing,并标记可疑端口或进程。 ## 依赖项 在 `requirements.txt` 中列出: ``` colorama>=0.4.6 pyfiglet>=0.8.post1 rich>=13.0.0 psutil>=5.9.0 ``` 使用 `pip install -r requirements.txt` 安装它们。 ## 重要法律声明 此软件**仅出于教育和授权测试目的**创建。 用户需自行遵守所有当地、州和联邦法律。 切勿在你未拥有或未获得明确书面测试许可的系统上使用此工具。 未经同意钓鱼真实用户属于刑事犯罪。 **开发者对任何滥用本软件的行为不承担任何责任。** *保持道德。保持好奇。*
标签:ESC8, Python, SQLite, 多模态安全, 无后门, 社会工程学, 逆向工具