AbdulNafaySarmad1/ShadowForge

GitHub: AbdulNafaySarmad1/ShadowForge

基于 C# .NET Blazor Server 的对抗模拟平台,在安全的内存环境中演示网络攻击链各阶段并映射 MITRE ATT&CK 技术。

Stars: 0 | Forks: 0

# ShadowForge 🔥 ### 企业级对手模拟平台 · C# / .NET 8 / Blazor Server ## 架构概述 ``` ShadowForge/ ├── ShadowForge.Core/ # Interfaces, domain models, abstract base classes │ ├── Interfaces/ # IModule, IRepository, IThreatIntelService, ... │ ├── Models/ # DomainModels.cs — all value objects and entities │ └── Abstractions/ # BaseModule (Template Method pattern) │ ├── ShadowForge.Services/ # Business logic, simulation modules, API clients │ ├── ThreatIntel/ # ThreatIntelService — OTX + AbuseIPDB live calls │ ├── UserGen/ # UserGenService — randomuser.me + Bogus fallback │ ├── Network/ # NetworkSimService — realistic host/port simulation │ ├── SimulationModules.cs # ReconModule, LateralMovementModule, PersistenceModule, ReportModule │ └── ModuleRegistry.cs # Factory + Registry pattern, SimulationOrchestrator │ ├── ShadowForge.Data/ # EF Core — SQLite, repositories, entities │ ├── ShadowForgeDbContext.cs │ └── Repositories/ # Generic Repository, SessionRepository, EventRepository │ └── ShadowForge.Web/ # Blazor Server UI + SignalR hub ├── Components/Pages/ # Dashboard, Simulation, ThreatIntel, NetworkMap, MITRE, Users, Reports ├── Hubs/ # SimulationHub.cs — real-time event broadcast ├── Services/ # DashboardStateService — reactive state container └── wwwroot/ # app.css — dark hacker aesthetic ``` ## 演示的面向对象编程概念 | 概念 | 位置 | |---|---| | **接口** | `IModule`, `IRepository`, `IThreatIntelService`, `IUserGenService` | | **抽象类** | `BaseModule` — Template Method 模式 | | **继承** | `PersistentBaseModule : BaseModule`,全部 4 个具体模块 | | **多态** | `ExecuteAsync()` 分发至各模块重写的 `ExecuteCoreAsync()` | | **封装** | 私有服务状态,只读集合,内部修改方法 | | **泛型** | `IRepository`, `Repository`, `ApiResult` | | **接口(多重)** | 同一类上的 `IRealtimeModule`, `IPersistentModule` | | **设计模式** | Factory, Registry, Observer, Template Method, Strategy, Repository | | **Async / TPL** | 全局使用 `Task.WhenAll`, `CancellationToken`, `async/await` | | **LINQ** | 在 `ReportModule`, `EventRepository` 分析中的复杂聚合 | | **DI / IoC** | 完整的 ASP.NET Core DI — `IServiceProvider`, `AddScoped/Transient` | | **EF Core** | Code-first, Fluent API, `DbContext`, 迁移, repository 模式 | ## 快速开始 ### 前置条件 - [.NET 10 SDK](https://dotnet.microsoft.com/download/dotnet/8) - (可选)免费的 API 密钥 — 如果没有,应用将使用演示数据运行 ### 1. 获取免费的 API 密钥 | 服务 | URL | 提供的内容 | |---|---|---| | AlienVault OTX | https://otx.alienvault.com | 实时 IOC 订阅源,IP/域名情报 | | AbuseIPDB | https://www.abuseipdb.com/api | IP 信誉评分 | ### 2. 添加你的密钥 编辑 `ShadowForge.Web/appsettings.json`: ``` { "ApiKeys": { "OTX": "your_actual_otx_key", "AbuseIPDB": "your_actual_abuseipdb_key" } } ``` ### 3. 运行 ``` cd ShadowForge dotnet run --project ShadowForge.Web ``` 在浏览器中打开 `https://localhost:5001`。 ### 4. 首次运行 1. 点击侧边栏中的 **Run Simulation** 2. 保留默认子网并选中所有模块 3. 点击 **Launch Simulation** 4. 在 Dashboard 标签页中实时观看实时事件流 5. 完成后 — 查看 MITRE ATT&CK、Network Map 和报告 ## 模块参考 ### 侦察 模拟对给定子网的网络扫描。通过 OS 指纹识别、开放端口和运行中的服务发现 8–20 个逼真的主机。通过 AbuseIPDB + OTX 丰富发现的 IP 信息。获取实时 IOC pulse。 - MITRE: T1046 (Network Service Discovery), T1590 (Gather Victim Network Information) ### 横向移动 使用逼真的企业技术模拟对手在已发现主机之间的横向移动 — RDP, SMB, WMI, WinRM, SSH。 - MITRE: T1021.001, T1021.002, T1021.006, T1047, T1563.001 ### 持久化 演示概念性的持久化技术:计划任务、注册表运行键、Windows 服务、本地账户创建。全为模拟 — 不会对系统产生任何实际更改。 - MITRE: T1053.005, T1547.001, T1543.003, T1136.001 ### 报告生成器 汇总所有模块结果,使用 LINQ 按 MITRE 技术 ID 对事件进行分组,并生成结构化的模拟报告。 ## 注意事项 - **道德护栏**:无实际网络扫描 — 所有主机均在内存中生成 - **仅限实验室**:可以在 `NetworkSimService` 中添加 IP 白名单强制执行 - **可扩展性**:通过实现 `IModule` 并在 `ModuleRegistry` 中注册来添加新模块
标签:Blazor Server, Cloudflare, MITRE ATT&CK, PE 加载器, 威胁情报, 安全, 对抗模拟, 开发者工具, 插件系统, 超时处理