whiterabb17/r3ngine

GitHub: whiterabb17/r3ngine

r3ngine 是一个生产级自动化 Web 侦察与漏洞扫描平台,旨在通过 AI 驱动的多层级流水线简化渗透测试中的信息收集与漏洞关联分析。

Stars: 7 | Forks: 3

Phoenix:浴火重生,更加强大

r3ngine v3 — 终极 Web 侦察与漏洞扫描器

New V3 Dashboard

r3ngine Latest Version   License     Inspired by rengine-ng

r3ngine 3.7.0:凤凰重生

r3ngine v3.7.0 是该平台的生产级稳定、企业级演进版本。它基于原始的 reNgine 构建,并进一步受到 rengine-ng 的启发(如果你还不了解,请查看 rengine-ng v3!)此版本大幅扩展了 攻击路径建模引擎(179 条规则,MITRE ATT&CK,10 因子评分),分布式远程 Worker证书情报(由 tlsx 驱动的 TLS 侦察),身份基础设施情报(SSO/IdP 检测),扩展的图谱与 API 情报(组织 → 应用程序 → APIEndpoint 链,配备专用的全链路可视化工具),暴露面关联引擎(跨工具去重 + 18 类分类体系),WPScan/WPTaint SAST 集成Nuclei 代理轮换基于会话的 LinkedIn OSINTTier 7 LLM 自动富化离线哈希破解智能 Tier 5 工具门控,以及完整的 目标编辑 工作流。基础设施依然由 Django 5.2.3 LTSPostgreSQL 16Gunicorn + Uvicorn ASGI 生产级服务进行强化。基于 v3.2.0 中 Celery 到 Temporal 的迁移——使用提供崩溃安全执行、完整重放历史和暂停/恢复信号的持久化工作流引擎取代了旧版的 at-most-once 任务代理——v3.7.0 专注于攻击情报深度、运营安全、水平扩展以及大规模的生产可靠性。

![-----------------------------------------------------](https://raw.githubusercontent.com/andreasbm/readme/master/assets/lines/aqua.png)

Attack Path Modeling Engine

![-----------------------------------------------------](https://raw.githubusercontent.com/andreasbm/readme/master/assets/lines/aqua.png)

R3NgineMobileSOC: Stable Release Out Now

r3ngine Mobile SOC

| 仪表盘 | 地理战术地图 | 扫描详情 | 扫描编排 | | :---: | :---: | :---: | :---: | | | | | | r3ngine 移动端 SOC 伴侣应用提供了一个完整的命令与控制界面,用于从任何设备管理扫描、审查发现结果和监控目标。功能包括 4 步扫描向导、插件选择器、实时任务日志流、动态活动徽章、ReconX 监控设置以及地理战术地图可视化。 ![-----------------------------------------------------](https://raw.githubusercontent.com/andreasbm/readme/master/assets/lines/aqua.png)

r3Ngine Plugins: Stable Release 1.5.0 Out Now

r3ngine Plugins

| Active Directory | | :---: | | | | 活动利用 | | :---: | | | | 漏洞利用准备层 | | :---: | | | 插件系统支持动态安装、带有 Ed25519 验证的签名 `.r3n` 包、Temporal 连接的活动,以及直接加载到宿主路由器中的 Module Federation UI。可用的插件包括 Active Directory Intelligence、Active Exploitation、Exploit Readiness Layer、Burp Suite Integration 和 Email Security。 ![-----------------------------------------------------](https://raw.githubusercontent.com/andreasbm/readme/master/assets/lines/aqua.png) ![-----------------------------------------------------](https://raw.githubusercontent.com/andreasbm/readme/master/assets/lines/aqua.png) ## 目录 * [关于 r3ngine](#about-r3ngine) * [工作流](#workflow) * [项目架构](#project-schema) * [功能](#features) * [快速安装](#quick-installation) * [管理与恢复](#-administration--recovery) * [贡献](#contributing) * [报告安全漏洞](#reporting-security-vulnerabilities) * [许可证](#license) ![-----------------------------------------------------](https://raw.githubusercontent.com/andreasbm/readme/master/assets/lines/aqua.png) ## 关于 r3ngine r3ngine 是一个生产级 Web 侦察和漏洞扫描平台。它将 7 层扫描流水线与 AI 驱动的情报收集、基于图谱的攻击路径建模、来自官方威胁情报源的 CVE 富化以及运营安全控制相结合——所有这些都由 [Temporal](https://temporal.io) 编排,以实现持久、崩溃安全的执行。 🦾   **端到端侦察**:通过 30 多种集成的安全工具实现,包括子域名发现、端口扫描、HTTP 爬取、目录模糊测试、屏幕截图捕获、机密扫描、漏洞评估(Nuclei, Semgrep, WPScan, Dalfox)等。 🗃️   **统一数据模型**:配备自定义查询语言。可使用类似 `http_status=200&name=admin` 的自然语言运算符跨所有发现类型过滤侦察数据。 🔧   **高度可配置的扫描引擎**:通过 YAML 进行配置。预置配置包括完整扫描、被动扫描、屏幕截图收集和 OSINT 扫描。每个参数——线程、超时、速率限制——均可调。 💎   **子扫描**:对进行中的发现立即做出响应。针对任何子域名发起定向端口扫描或漏洞评估,无需等待完整的流水线执行完毕。 🧠   **CVE 情报**:自动获取来自 NVD 的 CVSS v3.1 评分、来自 FIRST 的 EPSS 利用概率以及 CISA KEV 标记——每次启动时都会进行富化,并可通过 API 查询。 🤖   **本地 LLM 编排**:直接从 LLM Toolkit 仪表盘原生管理您本地化的 Ollama Docker 容器,以支持离线漏洞风险评估、缓解策略生成和智能报告,所有这些都无需离开您的基础设施。 📃   **PDF 报告**:支持完整扫描、漏洞和 OSINT 报告类型,配备可自定义的模板、执行摘要、由 LLM 生成的影响叙事以及修复优先级。 🌐   **分布式远程 Worker**:通过部署具有 UI 管理、安全令牌认证和自动心跳验证的独立远程 Worker,实现扫描基础设施的水平扩展。 ⚙️   **基于角色的访问控制**:提供系统管理员、渗透测试员和审计员角色,并具有精确定义的权限。 ![-----------------------------------------------------](https://raw.githubusercontent.com/andreasbm/readme/master/assets/lines/aqua.png) ## 工作流 ### Temporal 扫描流水线 (v3.2.0+) 完整的扫描流水线由 Temporal 上的 `MasterScanWorkflow` 编排。每个层级边界都是一个硬同步点——在上一层级的所有活动完成且其结果持久化到数据库之前,下一层级不会启动。 ``` flowchart TD START([▶ Scan Initiated]) --> TP subgraph S0["⚙️ Step 0 — Target Setup"] direction TB TP[TargetProfilingActivity] --> LC[LoadCheckpointActivity] end LC --> F1(( )) F1 --> SD & AI & FW & DNS & OS & SF & BD subgraph T1["🔍 Tier 1 — Discovery · all parallel"] direction TB SD[RunSubdomainDiscoveryActivity] AI[RunAmassIntelDiscoveryActivity] FW[RunFirewallVPNScanActivity] DNS[RunDNSSecurityActivity] OS["RunGenericTaskActivity · osint"] SF["RunGenericTaskActivity · spiderfoot_scan ─ requires yaml spiderfoot_scan block"] BD["RunGenericTaskActivity · subdomain_discovery uses_tools: [baddns]"] end SD & AI & FW & DNS & OS & SF & BD --> J1(( )) J1 --> PDR[ParseDiscoveryResultsActivity] PDR --> CP1{{"⏸ Pause Checkpoint"}} CP1 --> F2(( )) F2 --> HC & PS & VD subgraph T2["🌐 Tier 2 — Endpoint Discovery · all parallel"] direction TB HC["RunHTTPCrawlActivity via SeedEndpointsForCrawlActivity"] --> PHC[ParseHTTPCrawlResultsActivity] PS[RunPortScanActivity] VD["RunVigoliumDiscoveryActivity ─ requires vigolium_discovery.run_vigolium_discovery"] end PHC & PS & VD --> PT2[Dispatch tier_2 plugins] PT2 --> F3(( )) F3 --> FU & SS subgraph T3["🔗 Tier 3 — URL Fetching + Screenshot · parallel"] direction TB FU[RunFetchURLActivity] SS[RunScreenshotActivity] end FU & SS --> DFF subgraph T4["📁 Tier 4 — Directory & File Fuzzing · sequential"] direction TB DFF[RunDirFileFuzzActivity] --> PFF[ParseFuzzResultsActivity] end PFF --> PER[ParseEnumerationResultsActivity] PER --> CP2{{"⏸ Pause Checkpoint"}} CP2 --> F4(( )) F4 --> WAD & WD & SEC & VA subgraph T5["🔬 Tier 5 — Analysis · all parallel"] direction TB WAD[RunWebAPIDiscoveryActivity] WD[RunWAFDetectionActivity] SEC[RunSecretScanningActivity] VA["RunVigoliumAnalysisActivity ─ requires vigolium_analysis.run_vigolium_analysis"] end WAD & WD & SEC & VA --> J3(( )) J3 --> PAR[ParseAnalysisResultsActivity] PAR --> CP3{{"⏸ Pause Checkpoint"}} CP3 --> NUC subgraph T6["🎯 Tier 6 — Security Assessment"] direction TB subgraph NP["NucleiPlannerWorkflow · child workflow · runs first"] direction TB NUC[RunNucleiActivity / vuln stage chain] end NUC --> G6(( )) G6 --> WB & VS WB[RunWAFBypassActivity] VS["RunVigoliumScanActivity ─ requires vulnerability_scan.run_vigolium"] end WB & VS --> PASM[ParseAssessmentResultsActivity] PASM --> CP4{{"⏸ Pause Checkpoint"}} CP4 --> CV subgraph T7["🧠 Tier 7 — Intelligence · sequential"] direction TB CV[CorrelateVulnerabilitiesActivity] EC[EnrichScanCVEsActivity] CR[CalculateRiskScoresActivity] GI[GenerateImpactAssessmentActivity] SG[SyncGraphActivity] APME["RunGenericTaskActivity · run_apme"] CV --> EC --> CR --> GI --> SG --> APME end APME --> SN[SendScanNotificationActivity] SN --> DONE([✓ Scan Complete]) ``` ## 项目架构 `documents/PROJECT_SCHEMA.md` 是一份动态的架构图,说明了所有权边界、工作流清单、请求路径,以及对于特定更改通常需要注意的文件夹。 针对 AI 的入职指引也可以在 `AGENTS.md`、`CLAUDE.md` 和 `.cursorrules` 中找到,方便以低 token 消耗交接给其他 AI 助手。 ![-----------------------------------------------------](https://raw.githubusercontent.com/andreasbm/readme/master/assets/lines/aqua.png) ## 功能 ### 🛰️ 分布式 Worker、TLS、身份与 API 情报 (v3.7.0) * **分布式远程 Worker**:`ScanWorker` 模型 + `RemoteWorkersPage` 设置 UI 管理隔离的 worker 池,并带有 `auth_token` 共享密钥和抗时序攻击的心跳验证。Worker 通过 `docker-compose.worker.yml` 以无头模式运行,并发出非阻塞的 `asyncio.to_thread` 心跳;扫描仅路由到 5 分钟内活跃的 worker。 * **证书情报**:`CertificateIntelligence` 模型 + `tlsx` 接收管道持久化每个主机的颁发者/接收者/SAN/有效性/签名/指纹/通配符/自签名元数据。带有 `PROTECTS` 边和 `x_cert_intel.yaml` 规则的 APME `Certificate` 节点会突出显示过期、自签名和弱签名路径。提供 `/api/cert-intel//` REST 端点 + `CertIntelTab` 面板。 * **身份基础设施情报**:`IdentityInfraDiscovery` 通过 URL → 标题 → 标头的优先级管道对 Okta/ADFS/Auth0/Ping/Azure AD/Keycloak/通用 SAML/OIDC 端点进行编目。APME `x_identity_infra.yaml` 规则将发现映射到凭据收集和认证访问能力。提供 `/api/identity-infra//` + `IdentityInfraPanel`。 * **扩展的图谱与 API 情报**:`APIIntelligenceProfile` 通过 `(base_url, api_type)` 聚合端点,并具备 REST/GraphQL/SOAP/通用分类。新的 `Organization`(来自 `Domain.project`)、`Application`(按 Web 服务器指纹识别的子域名)和 `APIEndpoint` APME 节点及 `DEPENDS_ON`、`TRUSTS_DOMAIN` 和 `PART_OF` 边构成了新链路的顶端。`x_api_intelligence.yaml` 规则涵盖了 GraphQL 数据泄露、未经身份验证的 REST → 账户接管以及 SOAP → RCE。新的 `/api/graph/chain/` REST 端点支持带有统计磁贴和按类型深入分析的 `FullChainGraphTab` 可视化工具。采用带有白名单验证标签的两次遍历节点 + 边查询取代了先前的笛卡尔积截断。 * **暴露面关联引擎与分类体系扩展**:`ExposureCorrelator` 通过模糊 URL + 签名匹配,整合了来自 Nuclei、Semgrep、Trivy 和 Dalfox 的重复暴露面。新增 18 个暴露类别,带有 MITRE 技术映射和修复优先级,并由 18 个新测试提供支持;强化了 14 个审查边缘案例。 * **APME 攻击树 UX**:`RiskSummaryBar`、`PriorityBadge`、评分权重工具提示、推测路径部分(显示路径为何被门控拦截)以及叶节点可检测性芯片。通过 URL 编码 `targetId` 修复了攻击树的 404 问题。`ImpactExplorer` 已完全类型化并应用主题;MITRE 辅助程序合并到了 `apme.utils.mitre` 中。 * **暴露面 UI**:`ExposureList` 汇总统计栏和状态过滤芯片。`ExposureCard` 资产摘要(主机 + 路径 + 方法)。`ExposureDetailsDrawer` 将证据渲染为带有时间戳和内联关联漏洞的键值列表。 * **Feroxbuster 目录模糊测试**:新的 `run_feroxbuster` 引擎配置键可在 `ffuf` 旁边运行 `feroxbuster`,共享字典表/代理设置;结果在 URL 上进行合并和去重。在捆绑的引擎 YAML 中默认禁用。 ### 🔬 CVE 情报与富化 (v3.5.0) * **CVE 富化服务**:从 **NVD API v2.0** 获取 CVSS v3.1 指标,从 **FIRST EPSS**(通过本地源每日同步)获取利用概率评分,并同步 **CISA KEV**(已知被利用漏洞)目录。富化后的数据会被缓存(CVE 缓存 7 天,KEV 缓存 1 小时),并在外部 API 不可用时优雅降级。 * **漏洞历史追踪**:`VulnerabilityHistory` 模型可追踪历史扫描中的漏洞,自动将发现分类为、持续存在或已修复。 * **多准则关联评分**:使用可配置的工具权重、资产重要性、CISA KEV/EPSS 可利用性因子以及时间修饰符生成综合评分。扫描内重复抑制会在写入之前将发现归组到一个 `group_key` 下。 * **基于 ID 的 Neo4j 图谱同步**:Neo4j 中的 CVE 节点通过精确的 CVE ID 进行链接,并将 CVSS 基础分数和 EPSS 分数作为节点属性进行摄取,以用于攻击路径富化。 * **启动富化**:在每次编排器启动时,`sync_cve_data` 会在图谱同步完成 5 分钟后触发——自动富化所有未富化的 CVE 并刷新 KEV 目录。 * **管理命令**:使用 `python manage.py sync_cve_data --all` 进行完整的手动同步。 ### 🧠 情报与 AI 中心 * **集中化 AI 管理**:统一界面支持 **OpenAI、Anthropic (Claude 3)、Google Gemini 和本地 Ollama 模型**。 * **漏洞影响情报**:通过 LLM 自动生成影响叙事、缓解策略和优先级,并通过交互式 **Cytoscape.js 攻击路径**和状态感知的 **Impact Explorer** 进行可视化。 * **PII 网关安全**:高级隐私层,可在将敏感数据(IP、电子邮件、主机名)发送到外部 LLM 之前对其进行匿名化处理。 * **GPT 攻击面生成器**:自动生成目标配置文件并识别高价值资产。 * **自然语言查询**:使用类人运算符进行复杂的数据库查询。 ### 🛠️ 高级扫描与执行引擎 * **Burp Suite Professional 集成**(v3.4.0 插件):两阶段 Temporal 同步(导入 → 关联)、双向作用域推送、可过滤的问题网格以及实时连接健康徽章。 * **Active Directory Intelligence 插件**:全面的 AD 攻击面分析——带有 5 种布局预设的 Cytoscape.js 图谱、实时 WebSocket 流(150 毫秒批处理)、分页发现 API、7 部分 PDF 报告(`ad_modern`、`cyber_pro` 模板)以及 RBAC 证据日志。 * **攻击路径建模引擎 (APME)**:基于 Neo4j 的图谱,发现可行的攻击路线(例如,SQLi → 数据库访问 → 内网渗透),包含跨 13 个 YAML 分类文件的 **179 条攻击规则**、MITRE ATT&CK 归因、10 因子置信度评分、带有语义去重的 Dijkstra 寻路算法、约束门控(22 个门)的可行性过滤以及自动化的“目标注入”。 * **自适应压力与弹性引擎 (ASRE)**:`k6`、`wrk`、`hping3` 和 `Locust` 编排,通过 Redis Streams 和 WebSockets 提供实时 ECharts 遥测,具备安全终止开关和由 LLM 驱动的瓶颈 PDF 报告。 * **漏洞利用准备层 (ERL)**:容器化、非破坏性的漏洞验证,在适配器层内置了原生代理轮换和 OpSec 合规性。 * **自主侦察编排**:Temporal 持久化工作流,具备崩溃安全执行、10 次重试上限、在 `localhost:8080` 进行完整历史重放以及基于 UI 的恢复功能。 * **Nmap Vulners NSE 分组发现**:在 UI 和 PDF 报告中按产品版本分组显示漏洞,并提供可折叠/展开的 CVE 子表。 * **Nuclei 按严重性顺序执行**:`NucleiPlannerWorkflow` 按严重性顺序运行,以防止在大型目标集上出现 OOM,并在时间线中显示每个严重性活动的状态。 * **漏洞关联引擎**:将来自 Nuclei、Semgrep、Trivy、Gitleaks、Acunetix、Retire.js 等的发现结果统一起来,形成具有持久状态追踪的优先威胁视图。 * **扫描排队**:可选的并发限制器(`最多 1 个主扫描 + 1 个子扫描`),带有 Temporal 轮询循环和设置面板开关。 ### 🕵️ 精准侦察与 OSINT * **高级 Web API 发现**:Kiterunner、Arjun、ParamSpider、LinkFinder 和 InQL 流水线。 * **深度追踪 OSINT 引擎**:电子邮件追踪,跨平台社交档案映射,社交存在发现,战术身份排列,以及一个 **由 Playwright 驱动的 LinkedIn 情报引擎**,具备会话状态 + cookie 存储认证——兼容 MFA,不存储密码,在会话过期时可优雅地继续扫描。 * **URL 去重**:在 `fetch_url` 之后进行两次去重——URL 签名去重(保存前)合并参数变体,基于内容的去重(保存后)移除重复的 HTTP 响应——从而减少第 4-6 层的负载。 * **漏洞扫描**:Nuclei(按严重性顺序执行,自动更新模板)、Semgrep(并行下载,限制 500 个文件,每个文件限制 5 MB)、WPScan、Dalfox(深度扫描,WAF 绕过,远程有效载荷)、CRLFuzzer、S3Scanner、Gitleaks、Retire.js。 * **自定义参数发现引擎 (CPDE)**:定义自定义正则表达式和具有严重性级别的字符串匹配器,以便在爬取过程中自动标记未记录或高价值的参数。 * **WHOIS、WAF 检测和 IP 地理定位**。 ### 🥷 隐秘行动与运营安全 * **增强的代理编排**:在所有发现模块中自动获取、验证和按工具轮换代理。 * **集中式暴力破解编排**:集成 Hydra 和 Medusa 以及 Proxychains4。多服务定位:SSH、FTP、HTTP、SMB、RDP、Telnet。 * **OpSec 预设**:User-Agent 轮换、隐秘时间控制、自定义 DNS 解析器、WAF 绕过标头以及 TOR 线路轮换。 * **强化的扫描终止**:`abort_scan_history()` / `abort_subscan()` 在数据库更新之前取消所有子扫描和 Temporal 工作流,从而消除孤儿进程。 ### 🎨 可视化与管理界面 * **赛博朋克 V3 UI**:毛玻璃效果仪表盘——提供 Hacker(赛博朋克)、Hybrid(现代暗色)和 Enterprise(专业板岩)主题。 * **攻击面地图 v4.0**:fCoSE 和 KLay 布局,分层资产集群,AI 驱动的图谱搜索。 * **战术地理地图可视化**:带有 CSS 动画标记和工具提示交互的全球资产定位。 * **Bounty Hub**:HackerOne 项目管理,资产追踪以及直接的漏洞报告。 * **自动化启动同步**:在每次编排器启动时——图谱同步、CISA KEV 目录刷新、Semgrep 规则同步、卡住的扫描恢复以及完整的 CVE 富化——都将作为一次性 Temporal 计划任务触发。 * **配置导出/导入**:将 API 密钥、字典表、工具配置和扫描引擎备份和恢复到一个单一的 `.zip` 文件中。 * **扫描结果恢复**:`recover_scan_results` 管理命令可根据磁盘上的 `scan_results` 卷重建数据库——幂等操作,默认为试运行。 * **可自定义的警报**:通过 Slack、Discord、Telegram 和 Lark 发送通知。 ### ⚡ 基础设施与性能 * **Django 5.2.3 LTS**(支持至 2028 年 4 月)+ **PostgreSQL 16**(支持至 2028 年 11 月)。 * **Gunicorn + Uvicorn ASGI**:4 个 worker 的生产级服务器,完全支持 HTTP 和 Django Channels WebSocket 流的 ASGI。 * **Temporal 工作流引擎**:持久化执行,带有可配置退避的自动重试,以及针对单个工作流的取消功能。 * **自动化基础设施升级**(`make fullupgrade`):8 步操作程序,涵盖数据库备份、PostgreSQL 大版本升级(幂等)、镜像重建、应用迁移以及健康验证。 * **全局 Redis 缓存**:采用统一的 Redis 支持的缓存,取代进程级的本地内存,以提高共享状态的效率。 * **确定性资源限制**:为所有生产服务设置 Docker `deploy.resources` 限制。 ![-----------------------------------------------------](https://raw.githubusercontent.com/andreasbm/readme/master/assets/lines/aqua.png) ## 🛠️ 开发与类型安全 r3ngine 前端始终秉承“安全第一”的理念,在全局采用 `strict: true` 的 TypeScript 构建。 * **完全严格模式**:在构建时消除隐藏的空指针和未定义的属性访问。 * **契约完整性**:前端模型映射到自动生成的 OpenAPI schema(`src/types/api.ts`),并使用 `verbatimModuleSyntax` 进行 tree-shaking。 * **模块化架构**:基于功能的结构——每个模块(`targets`、`scans`、`vulnerabilities`)都维护自己的 API hooks 和类型。 * **生产强化**:CI/CD 会针对每个提交验证 `tsc -b` 和 `vite build`。 ![-----------------------------------------------------](https://raw.githubusercontent.com/andreasbm/readme/master/assets/lines/aqua.png) ## 快速安装 ### Ubuntu/VPS 的快速设置 1. 克隆代码库 git clone https://github.com/whiterabb17/r3ngine && cd r3ngine 2. 配置环境 nano .env **为确保安全,请务必更改 `POSTGRES_PASSWORD`。** 3. (可选)对于非交互式安装,请在 `.env` 中设置管理员凭据 DJANGO_SUPERUSER_USERNAME=yourUsername DJANGO_SUPERUSER_EMAIL=YourMail@example.com DJANGO_SUPERUSER_PASSWORD=yourStrongPassword 4. 在 `.env` 中配置 Temporal worker 并发数(可选) TEMPORAL_MAX_CONCURRENT_ACTIVITIES=20 TEMPORAL_MAX_CONCURRENT_WORKFLOWS=10 根据可用 RAM 推荐的值: * 4 GB:`TEMPORAL_MAX_CONCURRENT_ACTIVITIES=10` * 8 GB:`TEMPORAL_MAX_CONCURRENT_ACTIVITIES=20` * 16 GB+:`TEMPORAL_MAX_CONCURRENT_ACTIVITIES=40` Temporal UI 可在 `http://localhost:8080` 访问,用于工作流检查、历史重放和手动干预。 5. 运行安装脚本: sudo ./install.sh 对于非交互式安装:`sudo ./install.sh -n` *注意:如有需要,请先运行 `chmod +x install.sh`。* **r3ngine 可通过 `https://127.0.0.1`(或您的 VPS IP)访问。在生产环境中,请勿通过直接端口访问暴露。** ### 在其他平台上安装 对于 Mac、Windows 或其他系统,请参阅 [`docker/`](docker/) 中的安装说明,或提出 issue 以获取针对特定平台的指导。 ## 更新 ``` cd r3ngine && sudo ./update.sh ``` 对于大版本升级(包括基础设施变更),请始终使用 `make fullupgrade`,而不是简单的 `docker compose up`。 ![-----------------------------------------------------](https://raw.githubusercontent.com/andreasbm/readme/master/assets/lines/aqua.png) ## 🔧 管理与恢复 ### 扫描结果恢复 如果数据库丢失或损坏,但 `scan_results` Docker 卷完好无损,则可以使用 `recover_scan_results` 管理命令从磁盘上的文件重建数据库。 **可恢复的内容**(当存在相应的输出文件时): | 数据 | 源文件 | |------|----------------| | 域名 | 从文件夹名解析 (`domain_scanid`) | | 扫描历史 | 文件夹的 mtime 用作扫描日期 | | 子域名 | `#id_subdomain_discovery.txt`, `subdomains_*.txt`, 子扫描目录 | | 端口 + IP 地址 | `#id_port_scan.txt` — naabu JSONL 和旧版 JSON 对象格式 | | 端点 | `#id_fetch_url.txt`, `urls_*.txt` | | 漏洞 | `*_nmap_vulns.json`, `#id_nuclei_*_module.txt` | | WAF 关联 | `#id_waf_detection.txt` 链接到匹配的子域名 | **用法**(在 `web` 容器内运行): ``` # Dry-run — 预览将要恢复的内容而不写入任何内容 python manage.py recover_scan_results # Apply — 将恢复的记录写入数据库 python manage.py recover_scan_results --apply # 恢复单个 scan 文件夹 python manage.py recover_scan_results --apply --scan-dir /usr/src/scan_results/example.io_108 # 使用非默认的 results 根目录 python manage.py recover_scan_results --apply --results-root /alt/path/scan_results ``` ``` docker-compose exec web python manage.py recover_scan_results --apply ``` 该命令是**幂等的**——每次运行时都会跳过数据库中已有的扫描。 ### CVE 数据同步 ``` # 在 web 容器内: python manage.py sync_cve_data # Enrich unenriched CVEs python manage.py sync_cve_data --kev # Sync CISA KEV catalog only python manage.py sync_cve_data --refresh 30 # Re-enrich CVEs from last 30 days python manage.py sync_cve_data --all # Full sync (KEV + unenriched) ``` 在每次编排器启动 5 分钟后,也会自动运行 CVE 富化。 ### 调试 1. 启用调试模式——编辑 `docker/web/entrypoint.sh` 并在顶部添加 `export DEBUG=1`,然后执行 `docker-compose restart web`。 2. 查看日志:`make logs` 或 `docker compose logs temporal-python-orchestrator`。 3. Temporal UI:`http://localhost:8080`——完整的工作流历史、信号、事件重放。 4. 完成禁用调试模式:设置 `DEBUG=0` 并重启。 ![-----------------------------------------------------](https://raw.githubusercontent.com/andreasbm/readme/master/assets/lines/aqua.png) ## 截图 ### 扫描结果 ![](https://raw.githubusercontent.com/whiterabb17/r3ngine/main/.github/screenshots/scan_results.gif) ### 实时日志 ![](https://static.pigsec.cn/wp-content/uploads/repos/cas/cb/cb280b27b645a07c2784c2387d50b9f20f7c7e5d40c97062993ae5f134f1eb02.gif) ### 移动端界面 ![](https://raw.githubusercontent.com/whiterabb17/r3ngine/main/.github/screenshots/mobile_interface.gif) ![-----------------------------------------------------](https://raw.githubusercontent.com/andreasbm/readme/master/assets/lines/aqua.png) ## 贡献 欢迎任何规模的贡献。无论是修复拼写错误、改进 UI 还是添加新功能——每一份贡献都很重要。 您可以通过以下方式做出贡献: * 代码改进和错误修复 * 文档更新 * 新功能建议和实现 * UI/UX 改进 * 插件开发 入门指南: 1. 查看我们的[贡献指南](.github/CONTRIBUTING.md) 2. 挑选一个[未解决的 issue](https://github.com/whiterabb17/r3ngine/issues) 或提出一个新的 3. Fork 该代码库并创建您的分支 4. 进行更改并提交 pull request ![-----------------------------------------------------](https://raw.githubusercontent.com/andreasbm/readme/master/assets/lines/aqua.png) ## 提交 Issue 提交 issue 时,请尽可能提供详细的信息: 1. 启用调试模式(参见上方的[调试](#debugging)) 2. 运行 `make logs` 以捕获完整的堆栈跟踪 3. 检查浏览器开发者控制台是否存在 XHR 500 错误 4. 提交一个包含堆栈跟踪、重现步骤和系统信息的 GitHub issue ![-----------------------------------------------------](https://raw.githubusercontent.com/andreasbm/readme/master/assets/lines/aqua.png) ## 报告安全漏洞 **请勿**在 GitHub issue 上公开披露安全漏洞。 前往 [Security 标签页](https://github.com/whiterabb17/r3ngine/security) 并点击 **"Report a vulnerability"** 以打开 GitHub 的私人漏洞报告表单。请包含: - 重现步骤 - 潜在影响 - 建议的修复或缓解措施(如有) 报告将在 48-72 小时内进行审查。除非您希望保持匿名,否则在修复发布后,我们将公开致谢负责的披露行为。 ![-----------------------------------------------------](https://raw.githubusercontent.com/andreasbm/readme/master/assets/lines/aqua.png) ## 许可证 基于 GNU GPL v3 许可证分发。更多信息请参见 [LICENSE](LICENSE)。 ![-----------------------------------------------------](https://raw.githubusercontent.com/andreasbm/readme/master/assets/lines/aqua.png)

注意:本 README 的部分内容是使用 AI 语言模型编写或润色的。

标签:AI风险缓解, GitHub, Web安全, 动态插桩, 实时处理, 密码管理, 攻击路径建模, 测试用例, 自动化侦察, 蓝队分析, 请求拦截