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 加载器, 威胁情报, 安全, 对抗模拟, 开发者工具, 插件系统, 超时处理