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, 多模态安全, 无后门, 社会工程学, 逆向工具