
Фреймворк для симуляции фишинга и повышения осведомлённости для кампаний на основе узлов, перехвата учётных данных, доставки через SMTP, CAPTCHA и опционального воспроизведения учётных данных браузера.
Фреймворк для симуляции фишинга и повышения осведомленности о безопасности с настраиваемыми рабочими процессами, управлением кампаниями и опциональным прокси для учетных данных.
cd../deploy.sh — он настроит необходимые зависимости, если вы используете Ubuntu../start.sh --preload-ml. Это запустит серверы и предварительно загрузит используемые ML-модели.Вы получаете админ-интерфейс по адресу http://localhost:8000 и фишинговый сервер по адресу http://localhost:1234. Логин по умолчанию: admin / admin123. Смените пароль после первого входа.
Пробросьте порт 8000 к себе локально по SSH, чтобы получить доступ к админ-панели. НЕ открывайте админ-панель или flask-сервер (порт 1234) напрямую в интернет.
deploy.sh установит сервер Caddy на тот же хост; всё построено в предположении, что вы будете использовать Caddy в качестве обратного прокси. Это не обязательно, но здесь обитают драконы.
Необязательные флаги для start.sh:
--with-caddy — запуск Caddy через Docker (только для локального тестирования).--preload-ml — предварительная загрузка модели обнаружения фишинга (~1.3 ГБ); позволяет избежать задержки при первом использовании плагина 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.
Подготовка продакшен-окружения на Ubuntu. Идемпотентен. Он:
requirements.txt..env из .env.example, если он отсутствует, и генерирует SECRET_KEY и JWT_SECRET_KEY, если они не заданы.storage/caddy/data, storage/caddy/config, storage/uploads, storage/templates, storage/assets, instance).--init-db (выполняет uv run python -m cli init --force).Он не запускает приложение. Для продакшена: запустите Caddy (обратный прокси), затем запустите приложение с помощью ./start.sh или менеджера процессов, чтобы весь трафик поступал в приложение через прокси.
Запуск для разработки и локального использования. Он:
.env и проверяет SECRET_KEY и JWT_SECRET_KEY (генерирует их, если присутствуют значения по умолчанию).requirements.txt.uv run playwright install chromium для прокси учетных данных.--preload-ml (~1.3 ГБ).--skip-init). Используйте --reset-db для удаления и повторной инициализации.--with-caddy (только для локального тестирования).uv run python -m cli start; используйте --admin-only или --phishing-only для запуска одного.В продакшене приложение обязательно должно работать за обратным прокси. Не открывайте Flask-серверы разработки напрямую в интернет.
Обратный прокси отвечает за завершение TLS, корректные заголовки Host, маршрутизацию по путям и доменам, а также за разделение админ-трафика и трафика кампаний. Приложение прослушивает localhost или внутренний порт; прокси обрабатывает публичный HTTPS и перенаправляет трафик на админ-сервер (например, порт 8000) и фишинговый сервер (например, порт 1234) в соответствии с вашей конфигурацией.
Рекомендуется: используйте Caddy в качестве обратного прокси. deploy.sh устанавливает Caddy через APT. Проект включает примеры Caddyfile (например, Caddyfile.minimal). После выполнения deploy.sh запустите Caddy (например, caddy run --config /path/to/Caddyfile.minimal), а затем запустите приложение с помощью ./start.sh или менеджера процессов. Любой аналогичный обратный прокси (nginx, Traefik и т.п.) подойдет, если приложение не открыто напрямую.
Reel — это фреймворк для симуляции фишинга и повышения осведомленности о безопасности. Операторы используют админ-интерфейс для управления кампаниями, рабочими процессами, шаблонами и целями. Фишинговый сервер обслуживает целевые страницы кампаний и выполняет рабочие процессы — графы плагинов на основе узлов — при каждом запросе.
В app.py есть две точки входа в приложение: create_app() для фишингового сервера и create_admin_app() для админ-интерфейса. Кампании могут быть входящими (посетитель переходит по ссылке; 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, перехвата учетных данных, перенаправлений и логирования.