ibotzhub/fulacune

GitHub: ibotzhub/fulacune

一个集成攻击路径模拟与授权目标实时安全探测的桌面平台,为红队评估和漏洞赏金提供从仿真推演到实战验证的一站式工作流。

Stars: 0 | Forks: 0

# FULACUNE **FULMEN**(拉丁语:闪电)+ **LACUNE**(法语:缺口)—— 一个用于攻击模拟和实时安全测试的平台。 FULACUNE 是一个集成了**网络威胁模拟和漏洞赏金(bug-bounty)探测平台**的单一桌面应用程序。它为您提供 **LACUNE**(在您定义的网络拓扑上模拟攻击如何传播,而无需触碰真实系统)和 **FULMEN**(通过阶段门控和范围强制执行,针对授权目标运行真实的 payload)。相同的 UI、相同的 MITRE ATT&CK 映射、相同的风险语言和报告。没有演示模式,没有模拟数据——如果一个组件发生故障,运行就会停止并报告错误。 LACUNE 遵循同样的规则:报告中不使用合成/后备数据。输出结果来源于运行输入 + 引擎/情报结果;缺失的上游数据会如实显示为缺失,而不是猜测的。 **发布姿态:** 这是**生产级软件**,而不是一次性的原型:版本化构建(`make build` 嵌入了 `version` / `git_commit` / `build_time`;运行 `./bin/fulacune -version` 或 `GET /api/health` 查看版本)、有边界的 API 负载、经过验证的自定义 playbook、**MIT 许可证** 以及 **SECURITY.md** 报告途径。**FULMEN 阶段门控**会在每次批准/跳过时向 SQLite 写入一行**审计记录**(目标 URL、范围快照、模式、客户端 IP、时间戳);可以通过 `GET /api/fulmen/audit` 查询或在 FULMEN 面板中使用审计表。HTTP API 默认监听 **127.0.0.1**(本地桌面);在没有添加您自己控制措施的情况下,不要将其暴露在网络中。请仅在**授权**的目标和程序规则内使用。 本 README 描述了 FULACUNE 是什么、它能做什么、它在网络安全(红队/模拟)和漏洞赏金方面的覆盖范围、技术栈及其选择原因,以及其中涉及的决策。有关安装和使用的信息,请参阅 **INSTALL.md** 和 **HOW_TO_USE.md**。 **源码 (hexed.systems):** Forgejo 上的 [lifelessai/fulacune](https://git.hexed.systems/lifelessai/fulacune)。 ``` git clone https://git.hexed.systems/lifelessai/fulacune.git # SSH (此实例使用端口 2222): git clone ssh://git@git.hexed.systems:2222/lifelessai/fulacune.git ``` ## 它是什么 - **单一二进制,单一窗口。** 一个原生桌面应用程序 (GTK/WebKit),同时提供 UI 和后端服务。不需要“在 Chrome 中打开此 URL”——应用程序本身就是产品。 - **六个运行时,一个工作流。** Go 负责编排;Julia 负责传播计算;Rust 负责策略(按 TTP 决定阻断/放行);R 负责生存统计和 PDF 报告;React 作为前端。Subfinder 和 Nuclei 作为插件用于侦察和扫描。只需安装一次(`./install.sh`),然后即可运行。 - **两种模式,一个数据模型。** **LACUNE** = 在您定义或导入的拓扑上进行模拟入侵,带有可选的**威胁环境时代**(`go/internal/simknowledge/knowledge.json` 中涵盖 1998–2026 年的目录),以及节点上的**实时 NVD + EPSS** 丰富信息。**FULMEN** = 在带有范围检查和阶段门控的目标 URL 上进行真实执行。两者的发现结果都会汇入同一个列表,并导出为相同的报告格式。 ## 它能做什么 *(派生自代码库:`go/internal/probe/`、`go/internal/engine/` 等)* **LACUNE (模拟)** - 在图(本地部署、AWS、Azure、身份或由 Nmap/Terraform/范围派生)上进行 SEIR 风格的传播。六种场景:钓鱼、供应链、僵尸网络、勒索软件、身份、AI 攻击。EPSS 加权目标选择;Rust 策略引擎(补丁、隔离、MFA、零信任、EDR、SIEM)按 TTP 决定阻断/放行。实时图表、事件日志、暂停/停止。取证、反事实分析、PDF 董事会报告(风险评分、Kaplan–Meier 生存曲线、ATT&CK 表)以及 ATT&CK Navigator 导出。 **FULMEN Web 模式 - 侦察 (每次均全量运行)** - **侦察路径:** 敏感/管理员路径(admin、dashboard、.env、.git/config、config.json、backup、actuator、phpinfo、.svn、WEB-INF、oauth/authorize 等)和 GraphQL 内省;冗余错误检测;响应中的敏感 JSON 键。 - **安全标头:** X-Frame-Options、CSP、HSTS;缺失 → SEC01(点击劫持风险)。 - **SameSite Cookie 审计:** GET 目标,解析 Set-Cookie;标记缺失 SameSite 或 SameSite=None 但不带 Secure 的情况 (COOKIE01)。 - **JWT:** alg:none 探测;使用篡改的 JWT 返回 200 → 视为发现。 - **IDOR:** 参数 id、user_id、order_id 等,值为 0、-1、1、2、3、UUID;标记不同的响应大小。 - **速率限制:** 突发 15 次 GET 请求;无 429/503 响应 → API02。 - **OAuth redirect_uri:** 使用 redirect_uri=evil.com 对 oauth/authorize 等进行 GET 请求;如果在 Location 或 body 中反射 → OAUTH01;带有 code/token 但无 state → OAUTH02。 - **CSRF:** 不带 Origin/Referer 的 POST 请求;返回 200 → CSRF01。 - **URL 中的 API 密钥:** 参数 api_key、apikey、key、token、access_token;响应存在差异 → API03。 - **Web3 / Ethereum RPC:** 向 ""、/rpc、/eth、/v1/jsonrpc 等发送包含 eth_blockNumber JSON-RPC 的 POST 请求;响应包含 "result" / "0x" / "eth_" → WEB301。 - **会话绑定:** 通过 GET 获取 Cookie,使用不同的 X-Forwarded-For 和 User-Agent 重放相同的 Cookie;如果都返回 200 → AUTH03(会话可能未绑定到 IP/UA)。 - **缓存投毒启发式探测:** 使用 X-Forwarded-Host: evil.com 进行 GET,然后正常 GET;如果响应不同或主体包含 evil.com → CACHE01。 - **Webhook:** POST 到 /webhook、/api/webhook 等;返回 200/202 → API04。 - **密码重置:** 将邮箱 POST 到 forgot-password、reset-password 等;返回 200 + "sent"/"check your email" → AUTH01。 - **会话固定:** 使用固定值的 session_id/cookie 进行 GET;如果 Set-Cookie 回显了该值 → AUTH02。 - **文件上传:** 向 /upload、/api/upload、/file/upload 等发送 Multipart POST;返回 200/201 且响应暗示文件被接受 → FILE01。 - **WebSocket Origin:** 使用 Origin: https://evil.com 进行连接;返回 101 Switching Protocols → WS01(需验证 Origin 验证机制)。 - **Blind SSRF:** 当设置了 `FULACUNE_SSRF_CALLBACK` 时,在 url/redirect/callback/dest/return/next/target/uri/path/fetch/request/webhook 参数中发送回调 URL。 - **TLS 探测:** TLS 1.0/1.1 (TLS01),弱密码 RC4/3DES/匿名 (TLS02),证书过期或有效期 < 30 天 (TLS03),弱 RSA 密钥 (TLS04),弱签名算法 (TLS05)。 **FULMEN Web 模式 - 注入** - **Web 注入:** 用于 XSS(包括 DOM-clobber 风格)、SQLi、NoSQLi、LDAP、SSTI、XXE、CRLF、SSRF、开放重定向、路径遍历、命令注入、批量赋值的 payload;GET + POST 表单 + POST JSON;场景选择集合(完整 Web 或单类别:xss、sqli、nosqli、ssti、crlf、ssrf、open_redirect、path_traversal、cmd_injection、mass_assignment、xxe、idor)。当场景匹配时运行批量赋值和 XXE 探测。 **FULMEN - 内置无头浏览器 (chromedp)** 当 `FULACUNE_BROWSER_PROBE=1` 或 `FULMEN_BROWSER_PROBE=1` 时: - **DOM Clobbering:** 使用注入的查询参数(例如 form id=clobberTest)加载目标;检查 window.clobberTest 和 document.getElementById 覆盖情况 → DOM01、DOM02。 - **OAuth 完整流程 (浏览器):** 使用 redirect_uri=evil.com 导航至授权 URL;跟随重定向;如果最终 URL 为 evil.com 且带有 code= 或 access_token= → OAUTH03。 - **Service Worker:** 加载后检查 navigator.serviceWorker.controller → SW01(验证 scope/cache 策略)。 **FULMEN REST / Chatbot / MCP** - Prompt 注入、系统 Prompt 提取、工具滥用;通过 Prompt 进行数据渗透;MCP 工具枚举和参数注入;越狱风格;OWASP Agentic。 **其他** - 侦察/注入/渗透前的阶段门控。范围强制执行(HackerOne、Bugcrowd、Intigriti、手动)。范围 → 拓扑;流水线(subfinder、Nuclei)。统一的发现结果,导出(markdown、Navigator、发现结果 HTML、Sigma)。情报(NVD、EPSS、STIX/TAXII)。一键安装。 ## 它不能做什么(以及为什么) *(内置探测:上述“能做什么”列表是事实来源。对于以下特定应用的情况,请使用 **FULMEN → Custom** 模式:您提供 HTTP 步骤、可选的并行批处理和断言;应用程序运行它们并像其他 FULMEN 结果一样记录发现。)* - **业务逻辑漏洞** - 没有专用的购物车/结账/优惠券自动化;请使用带有您的 URL、JSON 主体和 `body_contains` / `regex_match` 断言的 **Custom** playbook。 - **竞态条件** - 内置探测仅使用单请求/突发模式;**Custom** 模式支持 `parallel: true` 批处理以发出并发请求,然后对后续的 GET 进行断言。 - **支付绕过 / 优惠券滥用 / 免费购买** - 无支付探测;因应用而异。 - **MFA 绕过** - 无通用第二因素探测;依赖于特定流程。 - **带有真实登录的完整 OAuth/SSO** - 代码执行 redirect_uri/state 启发式探测和浏览器探测(恶意 redirect_uri → 回调);没有真实的登录或授权同意流程。 - **供应链 / 依赖混淆** - 没有包/构建上下文;请使用 SCA/依赖工具。 - **CI/CD / 流水线 / DevOps** - 没有流水线配置或非 HTTP 访问。 - **移动端** - 仅限 HTTP/API;无应用二进制文件或模拟器。 - **硬件 / IoT / 固件** - 无固件或硬件访问。 - **智能合约 / 链上利用** - 代码仅检测 Ethereum JSON-RPC (eth_blockNumber);无合约或链上工具。 - **深度密码学** - 超出 TLS 范围(版本、密码、证书、密钥大小、签名);无 Padding Oracle、密钥重用等。 - **Service Worker / 缓存投毒利用** - 代码检测 SW 注册 (SW01);无自动化缓存投毒或 SW 更新滥用。 - **反序列化 RCE** - 无 Gadget Chain 或反序列化探测;因应用而异。 - **DoS** - 未自动化;超出范围。 - **模型提取 (AI)** - 超出范围。 - **存储型 XSS(完全自动化)** - 内置 XSS 偏向反射型;**Custom** 模式可以先 POST 一个标记,然后 GET 一个页面并断言它是否出现在 HTML 中。 - **完整的 DOM/变形 XSS (Mutation XSS)** - 代码执行 DOM Clobber 检测 (DOM01/DOM02) 和 DOM Clobber payload;没有完整的 DOM XSS 或特定解析器的变形自动化。 ## LACUNE - 网络安全 / 红队侧 (模拟) LACUNE 对攻击如何在网络中传播进行建模,**无需触碰真实系统**。它适用于希望解释风险、测试控制措施并生成董事会级就绪报告的安全团队。 ### 拓扑 - **内置:** **本地部署** (防火墙、VPN、域控制器、文件服务器、邮件、终端、数据库、备份),**AWS Cloud** (IGW、ALB、WAF、EC2、Lambda、RDS、S3、IAM、CloudFront、SSM、Glacier),**Azure** (App Gateway、Front Door、NSG、VMs、AKS、SQL、Blob、Entra ID、Key Vault、Log Analytics、Backup),**以身份为中心** (终端、邮件、VPN、Active Directory、OAuthIDC、PAM、IAM、域控制器、HR/财务/代码/SaaS)。 - **导入:** Nmap XML、Terraform HCL 或**从范围派生**(来自 HackerOne / Bugcrowd / Intigriti 的范围 - 每个范围内的资产对应一个节点)。 ### 场景和杀伤链 | 场景 | 重点 | 阶段 (杀伤链) | |--------------|--------------------------|----------------------| | **Phishing** | T1566, T1078, T1021, T1003, T1041 | Recon → Initial Access → Lateral → Exfil → Persist | | **Supply chain** | T1195, T1059, T1078, T1041, T1486 | Recon → Poison → Distribute → Activate → Spread | | **Botnet** | T1190, T1059, T1071, T1021, T1486 | Scan → Infect → C2 → Propagate → Execute | | **Ransomware** | T1078, T1087, T1486, T1041 | Access → Escalate → Discover → Encrypt → Ransom | | **Identity** | 凭据窃取、Token 滥用、通过认证横向移动 | Credential → Token → Lateral → Escalate → Persist | | **AI attack** | OWASP Agentic (ASI01–ASI10) | Recon → Inject → Memory → Cascade → Exfil | ### 模拟的工作内容 - 在图上进行 **SEIR 风格的传播**;Julia 根据感染概率和 **EPSS**(来自 FIRST API 的真实漏洞利用可能性)对目标进行排名。 - **策略引擎:** 对于每个 TTP,根据您的控制措施(补丁、隔离、MFA、零信任、EDR、SIEM)决定阻断或放行。反事实分析:“如果我们进行了隔离会怎样”等。 - 基于 CVE/EPSS 加权公式的**数据渗透**;持久化事件;通过 WebSocket 呈现实时图表和事件日志。 - **取证** - 事件时间线;**反事实分析** - 每项控制措施的影响;**董事会报告** - PDF(风险评分、Kaplan–Meier 生存曲线、ATT&CK 表、反事实分析、bootstrap CI)。**ATT&CK Navigator** 层导出 (v4.5)。 ### 情报 (模拟和探测) - 按节点类型划分的 **NVD CVE**(已缓存);**EPSS** 批量查询(已缓存)。EPSS 驱动模拟中的攻击者目标排名。 - **STIX/TAXII 2.1** - MITRE ATT&CK Enterprise;引擎和报告中的 TTP 名称和战术。 ## FULMEN - 漏洞赏金侧 (实时探测) FULMEN 针对您授权的目标 URL 运行 **真实的 payload**。范围会被强制执行(HackerOne、Bugcrowd、Intigriti 或手动);**阶段门控**在 Recon、Inject 和 Exfil 之前需要明确的 Approve/Skip 操作,以防止您意外探测到超出范围或敏感的端点。 ### 探测模式 | 模式 | 作用 | |------|----------------| | **Web** | 经典的 Web 和 API 漏洞:注入、XSS、访问控制、数据暴露、侦察、安全标头、JWT、IDOR、TLS。请参阅下面的“Web 覆盖范围”。 | | **REST API** | AI/LLM JSON 端点 (/chat、/completions 等):Prompt 注入、系统 Prompt 提取、工具滥用。 | | **Web Chatbot** | 嵌入式聊天机器人组件 (Intercom、Zendesk、自定义):通过组件 API 发送相同的 AI payload。 | | **MCP Server** | 模型上下文协议:工具枚举、参数注入、采样。 | | **Custom** | JSON **playbook**:顺序或并行 HTTP 步骤、断言(`status_in`、`body_contains`、`regex_match`、`header_contains`、`duration_ms_gt` 等)带有 `when: pass|fail`。在您提供端点和检查逻辑时,可覆盖特定于程序的逻辑。 | ### 攻击场景 (FULMEN) 与 LACUNE 使用相同的场景集以保持一致性:**phishing**、**supply**、**botnet**、**ransomware**、**identity**、**ai_attack**。场景驱动实时探测的 payload 选择(例如 botnet → 命令注入风格;ai_attack → OWASP Agentic)。 ### Web 模式 - FULMEN 实际覆盖的内容 **注入 (自动化)** SQL(错误/布尔/UNION/时间盲注;GET/POST/JSON),NoSQL(MongoDB/JS),命令注入,LDAP,模板注入 (SSTI: Jinja、EL、ERB、Smarty;7×7→49),GraphQL 内省,XML (XXE: 文件 + 元数据实体),CRLF(标头注入)。 **XSS** 反射型 XSS ✓;存储型/DOM/变形(使用相同的 payload;检查反射或手动重试请求)。 **访问控制** IDOR/BOLA(id/user_id/order_id 枚举;对比响应大小差异),权限提升(批量赋值 + admin 路径),垂直/水平越权,强制浏览(admin/敏感路径),批量赋值(role、is_admin、admin、特权 POST)。 **数据暴露** 敏感数据泄露、冗余错误、堆栈跟踪、配置泄露(.env、.git、config.json、.aws),备份文件(.env.bak、.htaccess.bak、backup/、db.sql),API 密钥/凭据暴露。 **API** BOLA,批量赋值,GraphQL 内省,REST 权限提升,过度数据暴露(通过 IDOR/响应差异提示)。 **认证/会话** JWT alg:none 探测;身份验证绕过;返回 200 的 JWT 会被标记。部分包含:OAuth redirect_uri 探测(恶意 redirect_uri);OAuth state 启发式探测(带有 code/access_token 但无 state 的回调 → OAUTH02);CSRF(不带 Origin/Referer 的 POST;200 = 可能缺失 CSRF);速率限制(突发 GET 请求;如果没有 429/503 则报告);密码重置(POST forgot-password/reset;标记 "sent"/"check your email");会话固定(Set-Cookie 回显)。 **侦察和标头** 安全标头 (X-Frame-Options、CSP、HSTS);缺失时的点击劫持/UI 伪装风险 (SEC01)。**SameSite Cookie 审计** (侦察):GET 目标,解析 Set-Cookie;标记缺失 SameSite 或 SameSite=None 但不带 Secure 的情况 (COOKIE01 - 跨站发送风险)。Admin/备份路径:.svn、.hg、WEB-INF、composer.json、.DS_Store、oauth 路径、.env、.git/config、config.json、web.config.bak 等。暴露的管理后台(admin/dashboard 路径)。 **基础设施** SSRF → 内部服务访问、云元数据 (169.254.169.254)。当设置了 `FULACUNE_SSRF_CALLBACK` 时的可选 **blind SSRF**(在 url/redirect/callback 参数中携带回调 URL)。**TLS 扫描:** TLS 1.0/1.1,弱密码 (RC4、3DES、匿名),证书过期/即将过期。 **内置无头浏览器 (chromedp)** 当 `FULACUNE_BROWSER_PROBE=1` 时:无头 Chrome 运行 (1) **DOM Clobbering** - 通过查询参数注入 payload,加载页面,检查 `window.clobberTest` 和 `document.getElementById` 覆盖 (DOM01/DOM02);(2) **OAuth 完整流程** - 使用 redirect_uri=evil.com 导航至授权页面,跟随重定向,如果回调 URL 包含 code/token 则标记 (OAUTH03);(3) **Service Worker 检测** - 如果设置了 navigator.serviceWorker.controller 则报告 (SW01 - 验证 scope/cache 策略,缓存投毒风险)。 **Web 单类别场景** 完整 Web 运行上述所有内容。您也可以只运行单个类别:**xss**、**sqli**、**nosqli**、**ssti**、**crlf**、**ssrf**、**open_redirect**、**path_traversal**、**cmd_injection**、**mass_assignment**、**xxe**、**idor**。 ### AI/LLM (REST、Chatbot、MCP) - **Prompt 注入** ✓ (REST/Chatbot/MCP)。 - **通过 Prompt 的数据渗透** ✓ (Exfil 阶段 + 泄露检测)。 - **工具使用权限提升** ✓ (MCP 工具参数注入)。 - **越狱风格** ✓ (DAN、覆盖、记忆投毒)。 - **训练数据泄露** ○ (泄露启发式探测)。 - OWASP Agentic (ASI01–ASI10):系统 Prompt 提取、工具枚举、注入、记忆投毒、跨智能体级联、通过摘要/工具渗透、恶意智能体。 ### 发现和报告 (FULMEN + LACUNE) - **统一发现:** FULMEN 结果、Nuclei (Pipeline) 结果以及可选的 LACUNE 修复优先级汇总在一个列表中。可按严重程度、来源、范围、探测、模拟进行过滤。 - **导出:** Markdown(HackerOne 风格)、ATT&CK Navigator 层 JSON、发现结果 HTML。针对单个发现结果的 **Sigma** 规则草图。 - **董事会报告 (LACUNE):** 通过 R + xelatex 生成 PDF(风险评分、生存曲线、ATT&CK 表、反事实分析)。 ## 范围、流水线、导入 - **范围:** 从 **HackerOne**、**Bugcrowd** 或 **Intigriti** (API token) 加载,或**手动粘贴**。从范围为 LACUNE 创建拓扑;“使用此范围启动探测”会启动模拟并打开预先填好范围的 FULMEN。超出范围的域会在任何请求之前被阻止。 - **流水线:** **侦察** (subfinder) → **扫描** (Nuclei)。结果进入相同的发现存储中。范围用于驱动域名/URL。 - **导入:** Nmap XML 或 Terraform HCL → 拓扑;然后运行 LACUNE 或在 Pipeline 中使用。 ## 它让什么变得更简单 - **“假设分析”和“验证效果”的统一场所。** 模拟以解释风险和控件影响;在相同范围上运行实时探测,无需切换工具或报告格式。 - **范围与门控。** 范围加载一次;拓扑和 FULMEN 均可使用。阶段门控强制要求在 Recon/Inject/Exfil 之前进行明确批准。 - **通用的语言。** LACUNE 和 FULMEN 中都有 ATT&CK TTP、风险评分和反事实分析;统一的 PDF 和统一的发现结果导出流水线。 - **没有演示模式。** 所有数据均来自真实的子进程(Julia、策略引擎、R、探测)。如果缺少某些内容,应用程序会快速失败并给出明确的错误。 - **一键安装。** `./install.sh` 会将 Go/Node/Rust/Julia 拉取到 `.deps` 中,安装系统依赖(R、GTK/WebKit、xelatex、unzip),构建应用程序,并将 subfinder/nuclei 放入 `bin/` 中。幂等设计,并通过 `.versions` 锁定版本。 ## 节省的时间 - **设置:** 一个脚本代替了手动连接六个运行时和多个包管理器的工作(通常需要 30-60 分钟 → 只需运行一次 `./install.sh`)。 - **模拟 → 报告:** 从“我有一个拓扑”到“我有一份带有风险评分和反事实分析的 PDF”,一站式流程。 - **漏洞赏金运行:** 导入范围,填入目标,选择模式/场景,点击阶段门控 - 即可获得发现结果和 HackerOne 风格的报告,无需手动拼接工具或复制 payload。 - **侦察 → 发现结果:** Pipeline 先运行 subfinder 然后运行 Nuclei;结果汇入相同的发现结果列表并与其它结果一同导出。 ## 技术栈及其原因 | 组件 | 选择 | 原因 | |-----------|--------|-----| | **编排与 API** | Go | 单一二进制文件,子进程和 HTTP/WebSocket 处理,通过 CGO 支持 SQLite,单一部署构件。 | | **传播与目标定位** | Julia | 用于 SEIR 和排名的数值/图逻辑;公式的快速迭代;清晰的 JSON-in/JSON-out 契约。 | | **策略引擎** | Rust | 确定性、快速、无运行时;与 Haskell 相同的 TTP→控件和反事实逻辑,但更易于构建和发布到 `bin/` 中。 | | **统计与 PDF** | R + xelatex | Kaplan–Meier、 CI、报告表;xelatex 生成单一的 PDF。 | | **前端** | React (Vite) | 契合实时模拟 + 探测 UI;Vite 提供快速开发和小型生产构建包。 | | **桌面外壳** | GTK + WebKit | 一个原生窗口,从同一进程加载 React 应用。 | | **侦察/扫描** | subfinder + Nuclei | 行业标准;安装脚本可以将它们拉取到 `bin/` 中,以便 Pipeline 开箱即用。 | 子进程(Julia、策略引擎、R)使用 **JSON over stdin/stdout**,因此每个部分都可以独立测试和替换;Go 仍然是状态和 API 的唯一事实来源。 ## 为什么做出这些决策 - **一个应用,无浏览器后备方案。** 核心体验是“运行二进制文件,打开一个窗口”。使用 GTK/WebKit 使得 UI 始终在应用内。 - **没有模拟或演示模式。** 如果缺少 Julia 或策略引擎,模拟就会停止。这避免了静默的错误结果,并强制要求一个可复现的环境(例如 install.sh 或 Docker)。 - **FULMEN 中的阶段门控。** 真实的 payload 可能会击中生产或预发布环境。门控强制要求在每个阶段之前进行 Approve/Skip。 - **范围无处不在。** 范围驱动拓扑 (LACUNE)、探测白名单 (FULMEN) 和流水线域名/URL。一个摄取路径可保持范围一致。 - **默认使用 Rust 作为策略引擎。** 与 Haskell 引擎逻辑相同;Rust 提供单一静态二进制文件和更简单的 CI/安装。Haskell 仍为可选项。 - **幂等安装,版本锁定。** 重新运行 `./install.sh` 会跳过现有的工具和侦察二进制文件;`.versions` 锁定 Go/Node/Julia/侦察工具的标签。 - **统一的发现。** FULMEN 和 Nuclei 写入同一个存储,因此过滤、导出和 Navigator 层不需要合并电子表格或使用多个 UI。 ## 快速开始 ``` chmod +x install.sh ./install.sh ``` 首次运行:将运行时安装到 `.deps` 中,提示一次输入 sudo(用于 R、GTK/WebKit、xelatex),构建应用程序,将 subfinder/nuclei 安装到 `bin/` 中,然后启动 FULACUNE。之后:在项目文件夹中运行 `make run`。 - **安装:** INSTALL.md - **使用应用程序:** HOW_TO_USE.md ## 要求 **Linux (主要):** Go 1.22+、GCC (CGO/sqlite)、Julia 1.9+、Rust (cargo)、R 4.3+、Node 18+ (构建)、xelatex (PDF)、GTK3 + WebKit2GTK (桌面窗口)。install.sh 可以安装或拉取其中的大部分。 **Windows:** install.ps1 (请参阅 INSTALL.md)。 ## 构建 (手动) ``` make julia rust react make build make run ``` `make build-server` 构建一个无头二进制文件(无窗口),用于 CI 或服务器使用。 ## CI 和贡献 - 工作流:[.github/workflows/ci.yml](.github/workflows/ci.yml) — `gofmt`、`go vet`、`go test`、`govulncheck`,以及 React lint / test / build (Node 22)。 - 本地 pre-push:`make ci-local`(在 Linux 上安装 **libsqlite3-dev** 以便运行 CGO 存储测试;如果已安装 `govulncheck`,请运行 `make vulncheck`)。 - 指南:[CONTRIBUTING.md](CONTRIBUTING.md)。发布说明:[CHANGELOG.md](CHANGELOG.md)。 ## 标志和环境变量 `-addr` (默认为 `:8080`)、`-db` (默认为 `./fulacune.db`)、`-tick`、`-static`、`-julia`、`-policy`、`-rscript`、`-nvd-key`、`-taxii`、`-taxii-user`、`-taxii-pass`。推荐使用环境变量:`NVD_API_KEY`、`TAXII_URL`、`TAXII_USER`、`TAXII_PASS`。
标签:API安全, CISA项目, Cloudflare, EVTX分析, Go语言, HTTP API, IP 地址批量处理, JSON输出, MITRE ATT&CK, SQLite, 可视化界面, 合法合规, 安全报告, 安全测试, 插件系统, 攻击性安全, 攻击模拟, 数据展示, 无线安全, 日志审计, 本地应用, 桌面应用, 程序破解, 红队, 网络安全, 网络安全审计, 范围控制, 隐私保护, 驱动签名利用