cloudsecnetwork/phishintel

GitHub: cloudsecnetwork/phishintel

一款开源的AI驱动钓鱼模拟工具,帮助组织通过逼真的网络钓鱼演练评估和提升员工安全意识。

Stars: 15 | Forks: 3

# PhishIntel: AI 驱动的网络钓鱼模拟工具 ### 什么是 PhishIntel? **[PhishIntel](https://phishintel.com)** 是一款开源、AI 驱动的网络钓鱼模拟工具,专为逼真的网络安全意识培训而设计。它通过模拟现实世界的钓鱼攻击来帮助组织评估其网络安全态势,从而提高用户意识并最大限度地降低风险。 使用 PhishIntel,您可以创建根据组织需求量身定制的自定义钓鱼活动。该工具提供有关用户行为的详细分析和洞察,帮助您了解培训计划的有效性并确定需要改进的领域。 ### 主要功能 - **AI 驱动的活动**:利用人工智能制作高度逼真的钓鱼活动,这些活动模仿现实世界的攻击技术并适应您的组织环境。 - **用户意识跟踪**:分析用户如何响应模拟攻击,帮助识别高风险个人或群体以进行针对性的培训干预。 - **综合报告**:生成详细的报告,深入了解用户与钓鱼邮件的交互情况,包括点击率、提交模式和活动有效性指标。 - **自定义配置**:配置钓鱼内容、日程安排和活动参数,以符合您组织的培训目标和安全策略。 ## 本地开发设置 ### 前置条件 在本地设置项目之前,请确保已安装以下内容: - **Node.js**(版本 16 或更高) - **npm**(随 Node.js 一起提供) - **Docker**(用于运行 MongoDB 容器) - **Git**(用于克隆仓库) ### 第 1 步:克隆仓库 ``` git clone https://github.com/cloudsecnetwork/phishintel.git cd phishintel ``` ### 第 2 步:使用 Docker 设置 MongoDB #### 启动 MongoDB 容器 ``` docker run -d --name mongodb -p 27017:27017 mongo:8.0 ``` #### 验证 MongoDB 是否正在运行 ``` docker ps ``` #### 停止 MongoDB(需要时) ``` docker stop mongodb ``` #### 启动 MongoDB(停止后) ``` docker start mongodb ``` ### 第 3 步:配置环境变量 在根目录下创建一个 `.env` 文件: ``` NODE_ENV=development DB_URL=mongodb://localhost:27017/phishintel ADMIN_PASSWORD=admin123 SESSION_SECRET=your-unique-session-secret-here PORT=8080 ``` ### 第 4 步:启动后端(API) 从项目根目录运行: ``` # 安装 backend dependencies npm install # 启动 MongoDB 后,初始化 root admin(仅限首次): node scripts/initRootAdmin.js # 启用 auto-reload 启动 backend nodemon app.js ``` ### 第 5 步:配置前端环境(可选) 如果您需要自定义 API 端点,请在 `client` 目录中创建一个 `.env` 文件: ``` REACT_APP_API_URL=http://localhost:8080 ``` ### 第 6 步:启动前端 在一个单独的终端中运行: ``` cd client npm install npm start ``` ### 第 7 步:访问应用程序 - **管理控制台**: http://localhost:3000/console - **后端 API**: http://localhost:8080 ## 生产部署 对于生产部署,请考虑以下几点: ### 后端生产环境 ``` # 安装 dependencies npm install # 将 NODE_ENV 设置为 production export NODE_ENV=production # 启动 application(不使用 nodemon) npm start ``` ### 前端生产构建 ``` cd client npm run build ``` 优化后的构建将创建在 `client/build` 文件夹中,可以由您的 Web 服务器提供服务或与后端集成。 ### 安全注意事项 - 为 `ADMIN_PASSWORD` 和 `SESSION_SECRET` 使用强且唯一的密码 - 在生产环境中配置 HTTPS - 设置反向代理(nginx, Apache)以提高安全性和性能 - 对所有敏感配置使用环境变量 - 定期更新依赖项 ## Docker 部署 您可以通过两种方式使用 Docker 运行 PhishIntel。**不要同时运行这两种方法,以避免容器和端口冲突。** ### 1. 使用 `docker-compose`(推荐大多数用户使用) - **优点:** 最简单,管理应用程序和 MongoDB,通过 Docker 卷自动持久化数据,一键启动和关闭。 - **缺点:** 如果您想自定义端口或容器名称,设置会稍微复杂一点。 同时启动应用和 MongoDB: ``` docker-compose up ``` - MongoDB 数据持久化保存在 `phishintel_mongo_data` Docker 卷中。 - 停止并移除容器(但保留数据): docker-compose down - 停止并移除容器**并**删除所有 MongoDB 数据: docker-compose down -v ### 2. 使用 `docker run`(手动,高级) - **优点:** 控制力更强,可以单独运行应用或 DB,适用于高级场景。 - **缺点:** 您必须自己管理 MongoDB 和数据持久化。 启动 MongoDB(数据持久化保存在 Docker 卷中): ``` docker run -d --name mongodb -p 27017:27017 -v phishintel_mongo_data:/data/db mongo:8.0 ``` 启动 PhishIntel 应用(连接到正在运行的 MongoDB): ``` docker run --name phishintel \ -e NODE_ENV=development \ -e DB_URL="mongodb://host.docker.internal:27017/phishintel" \ -e ADMIN_PASSWORD=YourSecurePassword \ -e SESSION_SECRET=your-session-secret \ -e PORT=8080 \ -p 8080:8080 \ cloudsecnetwork/phishintel:latest ``` - 数据持久化保存在 `phishintel_mongo_data` Docker 卷中(与 compose 相同)。 - 停止并移除容器(但保留数据): docker stop phishintel mongodb docker rm phishintel mongodb - 移除数据卷(危险:删除所有 MongoDB 数据): docker volume rm phishintel_mongo_data ### **重要:避免冲突** - **不要**同时运行这两种方法。两者使用相同的容器名称和主机端口。 - 使用 `docker ps` 查看正在运行的容器。 - 在切换方法之前,使用 `docker-compose down` 或 `docker stop`/`docker rm` 进行清理。 ## 环境变量 PhishIntel 依赖多个环境变量进行正确配置。这些变量应在 `.env` 文件中定义以用于本地开发,或在 Docker 部署时在运行时传入。 | Variable | Description | |------------------|-----------------------------------------------------------------------------| | `NODE_ENV` | 定义环境模式。本地设置使用 `development`,实时部署使用 `production`。如果未设置 NODE_ENV,默认为 'production'。仅在需要开发日志和功能时将其设置为 'development'。 | | `DB_URL` | MongoDB 连接字符串。可以指向本地 MongoDB 实例或像 MongoDB Atlas 这样的托管集群。示例:`mongodb://localhost:27017/phishintel` 或 `mongodb+srv://:@cluster.mongodb.net/phishintel`。 | | `ADMIN_PASSWORD` | 默认 `admin` 用户的初始密码。**仅在设置期间使用一次,用于创建 root 管理员帐户。初始设置后,您可以通过 Web 界面更改管理员密码。** | | `SESSION_SECRET` | 用于签名用户会话的安全随机字符串。请保密此值,尤其是在生产环境中。 | | `PORT` | 后端服务器监听的端口。默认为 `8080`。如有需要,您可以更改此设置。 | ### 前端环境变量 前端(client)可能需要额外的环境变量。如有需要,在 `client` 目录中创建一个 `.env` 文件: | Variable | Description | Default | |-----------------------|------------------------------------------------|----------------------------| | `REACT_APP_API_URL` | 后端 API 端点 URL | `http://localhost:8080` | ## 测试 ### 后端测试 运行后端测试(如果可用): ``` npm test ``` ### 前端测试 运行前端测试: ``` cd client npm test ``` ## 获取帮助 如果您在使用或设置 PhishIntel 时遇到任何问题,可以通过以下方式获取支持: - **浏览现有问题** 首先检查 [GitHub Issues 部分](https://github.com/cloudsecnetwork/phishintel/issues),看看您的问题是否已被解决。 - **提交新问题** 如果找不到解决方案,请[提交一个新的 GitHub issue](https://github.com/cloudsecnetwork/phishintel/issues/new)。请务必包含: - 对问题清晰简洁的描述 - 重现步骤 - 任何相关的错误消息或日志 - 您的环境详细信息(操作系统、Node.js 版本、MongoDB 版本等) - **检查日志** 日志通常可以帮助识别问题: - 对于后端问题,请检查运行应用程序的终端 - 对于 Docker 用户,请使用: docker logs - **验证您的环境** 仔细检查您的 `.env` 文件配置是否正确,以及 MongoDB 等服务是否正在运行且可访问。 - **需要直接支持?** 我们为贡献者和早期采用者维护了一个私有的 Discord 服务器。虽然尚未公开访问,但您可以通过 [hello@cloudsecnetwork.com](mailto:hello@cloudsecnetwork.com) 直接联系我们,我们将很乐意为您提供帮助或在适当情况下发出邀请。 您的反馈非常宝贵,我们将帮助您成功使用 PhishIntel!
标签:AI驱动, Docker, ESC8, GNU通用公共许可证, MITM代理, MongoDB, Node.js, PhishIntel, SecOps, 云安全架构, 企业安全, 威胁情报, 安全合规, 安全意识, 安全教育, 安全测试, 安全运营, 安全防御评估, 开发者工具, 开源安全工具, 意识培训, 扫描框架, 攻击性安全, 攻击模拟, 暗色界面, 社会工程学, 网络代理, 网络安全, 网络资产管理, 自定义脚本, 请求拦截, 逆向工程平台, 邮件安全, 隐私保护, 驱动签名利用