Skip to content
KitploitKITPLOIT
工具博客
提交
工具博客
提交

黑客、渗透测试和网络安全工具,武装您的安全武器库!

Kitploit 是一个黑客、网络安全和渗透测试工具的目录。发现最新的项目更新,查找漏洞、分析系统、自动化测试并加强你的安全。

··订阅源·联系·隐私·© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
Reel — 用于基于节点的活动、凭据捕获、SMTP 投递、验证码及可选浏览器凭据重放的网络钓鱼模拟与安全意识框架。 | Kitploit
工具/GitHubGitHub/trustedsec/reel
钓鱼工具钓鱼攻击渗透测试社会工程学学习与教育红队电子邮件安全
GitHubtrustedsec/reel

Reel

用于基于节点的活动、凭据捕获、SMTP 投递、验证码及可选浏览器凭据重放的网络钓鱼模拟与安全意识框架。

查看仓库
5033天前Kitploit 审核通过

最受欢迎

查看全部 →

发现我们社区最常用的工具。

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

Reel

用于网络钓鱼模拟和安全意识培训的框架,支持可配置工作流、活动管理以及可选凭据代理。


快速开始(运维用途)

  1. 克隆仓库并 cd 进入目录。
  2. 运行 ./deploy.sh — 假设你在 Ubuntu 上,该脚本会为你配置好所有前置依赖。
  3. 运行 ./start.sh --preload-ml。这会启动服务器并预加载我们使用的 ML 模型。

你会获得 http://localhost:8000 上的管理后台 UI 和 http://localhost:1234 上的钓鱼服务器。默认登录:admin / admin123。首次登录后请修改密码。

通过 ssh 将 8000 端口转发到本地以访问管理面板。切勿将管理面板或 Flask 服务器(端口 1234)直接暴露到互联网。

deploy.sh 会在同一主机上安装 caddy 服务器,所有配置均假设你将使用 caddy 作为反向代理。你也可以不使用,但需自行承担风险。

start.sh 的可选参数:

  • --with-caddy — 通过 Docker 启动 Caddy(仅限本地测试)。
  • --preload-ml — 预下载钓鱼检测模型(约 1.3GB);避免使用 Phishing Detector 插件时首次调用产生延迟。
  • --reset-db — 重置数据库并重新初始化。
  • --admin-only — 仅启动管理服务器(端口 8000)。
  • --phishing-only — 仅启动钓鱼服务器(端口 1234)。
  • --skip-init — 跳过数据库初始化。
  • --skip-setup — 跳过 venv/依赖安装;仅加载 .env 并启动服务器。

如果不使用 start.sh,在安装依赖并初始化数据库后,你可以在两个服务器上运行:uv run python -m cli start。


依赖

Python: 参见 requirements.txt。核心技术栈包括 Flask、SQLAlchemy、Jinja2、Pydantic、Flask-Login、python-jose、passlib、cryptography 和 Flask-WTF。Phishing Detector 插件使用 transformers 和 torch。凭据代理使用 Playwright;可选集成使用 OpenAI/Anthropic 和 boto3(AWS Connect)。

开发环境: requirements-dev.txt 增加了 pytest、pytest-cov 及相关测试工具。使用 uv pip install -r requirements-dev.txt 安装以运行测试和覆盖率检查。

系统(生产环境): 部署脚本面向 Ubuntu/Debian。它会安装 uv、Caddy(反向代理)以及 libmagic1 等系统包。对于凭据代理,start.sh 会运行 uv run playwright install chromium 安装 Chromium。


脚本

deploy.sh

在 Ubuntu 上进行生产环境准备。幂等操作。它会:

  1. 检查是否为 Ubuntu/Debian。
  2. 安装系统包(curl、ca-certificates、libmagic1 等)。
  3. 若缺少 uv 则安装。
  4. 安装 Caddy 作为反向代理(APT)。
  5. 创建虚拟环境并从 requirements.txt 安装 Python 依赖。
  6. 若缺少 .env 则从 .env.example 创建,并在未设置时生成 SECRET_KEY 和 JWT_SECRET_KEY。
  7. 创建所需目录(storage/caddy/data、storage/caddy/config、storage/uploads、storage/templates、storage/assets、instance)。
  8. 可选:使用 --init-db 初始化数据库(运行 uv run python -m cli init --force)。

该脚本不会启动应用。生产环境中:先启动 Caddy(反向代理),然后通过 ./start.sh 或进程管理器启动应用,使所有流量经由代理到达应用。

start.sh

开发环境与本地启动。它会:

  1. 加载 .env 并确保 SECRET_KEY 和 JWT_SECRET_KEY 存在(若为默认值则生成)。
  2. 验证 uv 是否已安装。
  3. 若缺少虚拟环境则创建。
  4. 从 requirements.txt 安装依赖。
  5. 为凭据代理运行 uv run playwright install chromium。
  6. 可选:使用 --preload-ml 预下载钓鱼检测模型(约 1.3GB)。
  7. 若不存在数据库文件则初始化数据库(除非使用 --skip-init)。使用 --reset-db 删除并重新初始化。
  8. 可选:使用 --with-caddy 通过 Docker 启动 Caddy(仅限本地测试)。
  9. 启动服务器:默认通过 uv run python -m cli start 同时启动管理端和钓鱼端;使用 --admin-only 或 --phishing-only 只运行其中一个。

生产部署

在生产环境中,应用必须运行在反向代理之后。切勿将 Flask 开发服务器直接暴露到互联网。

反向代理负责 TLS 终止、正确的 Host 头、路径和域名路由,以及将管理流量与活动流量分离。应用监听 localhost 或内部端口;代理处理公开 HTTPS 并根据你的配置转发到管理服务器(例如端口 8000)和钓鱼服务器(例如端口 1234)。

推荐: 使用 Caddy 作为反向代理。deploy.sh 通过 APT 安装 Caddy。项目包含 Caddyfile 示例(例如 Caddyfile.minimal)。运行 deploy.sh 后,启动 Caddy(例如 caddy run --config /path/to/Caddyfile.minimal),然后通过 ./start.sh 或进程管理器启动应用。任何等效的反向代理(nginx、Traefik 等)均可接受,只要应用不被直接暴露。


项目意图

Reel 是一个网络钓鱼模拟和安全意识培训框架。操作员使用管理后台 UI 管理活动、工作流、模板和目标。钓鱼服务器为活动提供落地页服务,并在每个请求上运行工作流——由插件组成的基于节点的图。

app.py 中有两个应用入口点:create_app() 用于钓鱼服务器,create_admin_app() 用于管理后台 UI。活动可以是入站的(访客点击链接;GET 和 POST 工作流处理页面浏览和表单提交),也可以是出站的(系统通过发送工作流发送电子邮件或拨打电话)。Caddy 可用于基于域名的活动路由。凭据代理使用 Playwright 进行浏览器自动化,以在目标站点上重放捕获的凭据。


工作流概念

入站

用户访问活动 URL(例如 /<campaign_uid>)。钓鱼服务器按活动 UID 路由。对于 GET 请求,它运行活动的 GET 工作流(例如渲染落地页、CAPTCHA);对于 POST 请求,它运行 POST 工作流(例如验证输入、捕获凭据、重定向)。工作流类型为 campaign,并声明 HTTP 方法支持(GET、POST 或 BOTH)。执行上下文包括 campaign、request、session 和 variables。响应取自上下文键,如 _response_html、_response_redirect 或 _response_json。入站工作流用于落地页、CAPTCHA、凭据捕获、重定向和日志记录。

出站

操作员从管理后台 UI 运行一个发送工作流,该工作流关联到一个活动(活动的“Workflow”/发送工作流)。发送执行器运行一个类型为 sending 的工作流:它选择目标(例如从 CSV 或已跟踪用户),可选地验证或预渲染内容,然后遍历目标——渲染电子邮件、应用速率限制,并通过插件(例如 SMTP)发送。没有访客 GET/POST;工作流生成内容并发送到目标列表。

总结:

  • 入站: 由访客驱动。GET 和 POST 请求触发活动工作流。用于落地页和表单处理。
  • 出站: 由操作员驱动。单个发送工作流在管理上下文中运行,并向目标批量发送(电子邮件、语音等)。

工作流变量

构建工作流时,使用 {{variable}} 语法进行插值。嵌套路径使用点号表示法:{{nested.key}}。

目标数据(来自 CSV / 循环)

CSV 示例: email,first_name,last_name,company,landing_page → 使用 {{target.email}}、{{target.first_name}}、{{target.company}}、{{target.custom_data.landing_page}}。

活动 / 配置

URL

URL 混淆器: 使用 url 或 target.landing_page 作为源,或进行插值:http://{{target.ip}}/login。

HTML / BERT 钓鱼检测器

变量描述
{{template_html}}渲染后的 HTML
{{campaign.template_html}}活动模板 HTML
{{email_html}}

Phishing Detector: 将 html_content 设置为 {{template_html}}、{{campaign.template_html}} 或 {{email_html}}。

插件输出

简单发送工作流示例

root@kitploit:~
Target Selector (CSV) → Loop (array_source: targets, item_key: target) → Render Template → SMTP Sender

模板中的典型标签:{{target.email}}、{{target.first_name}}、{{target.last_name}}、{{target.custom_data.X}} 用于任何额外的 CSV 列。


插件

工作流由节点构建;每个节点都是一个带配置的插件。以下内置插件可用。


开发

  • 运行测试:make test-fast 或 ./run_tests.sh
  • 带覆盖率的测试:make test-coverage 或 ./run_tests.sh --coverage
  • 代码检查:make lint
  • 格式检查:make format-check

参见 Makefile 获取其他目标(单元/集成/功能测试拆分、数据库初始化/重置、仅运行管理服务器或钓鱼服务器)。


文档

  • DEVELOPMENT.md — 开发自定义插件的详细说明。
  • AGENT_README.md — 供 AI 代理使用:代码库概念、插件系统、风格指南和提示词。
下载工具
变量描述
{{target}}当前循环迭代的完整目标对象
{{target.email}}目标电子邮件
{{target.first_name}}名字
{{target.last_name}}姓氏
{{target.custom_data}}其他 CSV 列的字典
{{target.custom_data.column_name}}任何额外的 CSV 列(例如 {{target.custom_data.company}}、{{target.custom_data.landing_page}})
{{target.name}}first_name 或 target.first_name 的简写
{{target_name}}同 target.name(别名)
{{target_email}}同 target.email(别名)
{{_loop_index}}当前循环索引(从 0 开始)
变量描述
{{campaign.id}}活动 ID
{{campaign.uid}}活动 UID
{{campaign.name}}活动名称
{{campaign.template_html}}活动模板 HTML
{{url}}活动落地 URL
{{campaign_id}}活动 ID
{{variables}}活动变量字典
变量描述
{{url}}活动落地 URL(由配置或默认值设置)
{{target.landing_page}}如果 CSV 中存在 landing_page
{{target.custom_data.landing_page}}当 landing_page 位于 custom_data 时同上
{{target.ip}}如果 CSV 或自定义数据中存在 ip
渲染后的电子邮件 HTML(渲染模板之后)
{{body_html}}电子邮件正文 HTML
变量描述
{{phishing_detection.is_phishing}}BERT 返回的 True/False
{{phishing_detection.confidence}}BERT 置信度分数
{{captured_credentials.username}}仅限入站
{{captured_credentials.password}}仅限入站
{{_email_sent}}指示 SMTP 发送是否成功
插件用途
CAPTCHACloudflare Turnstile:验证令牌和/或渲染小部件;保护表单免受机器人攻击。
Capture Credentials从表单提交中捕获凭据;存储到上下文和数据库中,供下游插件使用。
Conditional Logic使用上下文(相等、包含、数值、正则)按 True/False 分支工作流。
Data Transform设置、移除、复制、重命名、合并或过滤上下文数据,供下游插件使用。
Delay固定或随机延迟,或延迟到某个日期时间;速率限制和时序控制。
Email Template Validator验证模板(Jinja2、质量、垃圾邮件);可选 AI;按结果分支。
Generate Device Code (GraphSpy)通过 GraphSpy API 生成 Azure AD 设备代码;与 AWS Connect 配合用于语音投递。
AWS Connect Dialer通过 AWS Connect 进行出站语音呼叫;SSML;与 GraphSpy 集成获取设备代码。
Log Event将自定义事件记录到数据库;请求/会话数据;审计和分析。
Phishing Detector (BERT)基于 ML 的 HTML 钓鱼检测;质量保证和内容分析。
Pushover通过 Pushover API 发送推送通知(iOS、Android、桌面)。
Queue Credential Proxy在 Capture Credentials 之后,排队一个浏览器自动化任务以在目标站点上重放。
Redirect使用可配置状态码重定向到 URL;支持变量插值。
Render Template使用 Jinja2 和变量从活动、自定义或库模板渲染 HTML。
Send Slack Message通过 webhook 或机器人向 Slack 发送消息;支持变量插值。
SMTP Email Sender通过 SMTP 发送电子邮件(TLS、认证、HTML/纯文本、变量);用于发送工作流。
Target Selector从 CSV、手动列表或已跟踪用户中选择目标;按域/数量过滤;为发送工作流提供输入。
URL Obfuscator混淆 IP/URL(例如 DWORD、十六进制、IPv6 映射);用于测试和研究。
User Agent Check按 user-agent 正则允许或阻止;阻止、重定向或按结果分支。
Validate Input验证表单字段(必填、类型、长度、正则);阻止、重定向或继续。