Md-zakria/WebGuard-Pro
GitHub: Md-zakria/WebGuard-Pro
一款基于 Java 17 和 JavaFX 21 构建的紫队网络安全桌面应用,在本地 DVWA 靶机上模拟红队攻击与蓝队防御的完整对抗流程,同时演示八种核心数据结构的实际应用。
Stars: 1 | Forks: 0
## 📸 截图
### 🏠 主屏幕 — 紫队启动台

### 🔴 红队中心 — 攻击模式选择

### 🔍 红队扫描 — 实时漏洞扫描器

### ⚡ 红队漏洞利用 — N-ary 攻击树

### 🔵 蓝队中心 — 防御模式选择

### 📡 蓝队监控 — 实时威胁检测仪表板

### 🛡️ 蓝队防御 — 防火墙、补丁与加固

## 🗺️ 架构
```
HomeScreen
├── 🔴 RED TEAM → RedTeamHub
│ ├── SCAN → RedTeamDashboard
│ │ ├── nmap (port & service discovery)
│ │ ├── nikto (web server vulnerabilities)
│ │ ├── sqlmap (SQL injection detection)
│ │ └── gobuster (directory brute force)
│ └── EXPLOIT → ExploitDashboard
│ ├── SqlInjectionExploit (dump DBs & credentials)
│ ├── XssInjector (inject & reflect payloads)
│ ├── BruteForceExploit (HTTP login brute force)
│ └── TraversalExploit (LFI + sensitive paths)
└── 🔵 BLUE TEAM → BlueTeamHub
├── MONITOR → BlueTeamDashboard
│ ├── TrafficMonitor (HashMap — IP frequency)
│ ├── LogAnalyzer (Stack — newest log first)
│ ├── AlertQueue (Queue — FIFO pipeline)
│ └── AnomalyDetector (MaxHeap — worst threat first)
└── DEFEND → DefendDashboard
├── FirewallManager (LinkedList — IP block list)
├── PatchAdvisor (ArrayList — CVE index)
├── HardenChecker (HashMap — 14 checks)
└── IncidentLogger (LinkedList — audit timeline)
```
## ⚔️ 红队功能
### 扫描模式
依次运行 4 款真实的安全工具对目标进行扫描:
| 工具 | 用途 | 使用的数据结构 |
|------|---------|-------------------|
| `nmap` | 端口与服务发现 | MinHeap (CVSS 排序) |
| `nikto` | Web 服务器错误配置检测 | HashMap (去重) |
| `sqlmap` | SQL injection 检测与数据库转储 | MinHeap + HashMap |
| `gobuster` | 使用 `common.txt` 进行目录暴力破解 | MinHeap + HashMap |
- 使用 **MinHeap** 按 **CVSS 严重程度**对结果进行排序
- 通过 **HashMap** 对发现进行去重(无重复的 CVE)
- 所有内容均**实时**流式传输到带有颜色输出的终端面板中
### 漏洞利用模式
包含四个主动漏洞利用模块以及实时可视化的攻击树:
| 模块 | 功能说明 |
|--------|-------------|
| `SqlInjectionExploit` | 运行 `sqlmap --dbs --dump`,提取数据库、表、凭据 |
| `XssInjector` | 通过 Java HttpClient 注入 6 个 XSS payload,检查反射情况 |
| `BruteForceExploit` | 使用凭据字典对 DVWA 登录进行暴力破解 |
| `TraversalExploit` | 测试 LFI payload (`../../etc/passwd`) + 探测 6 个敏感路径 |
- 结果在 JavaFX 画布上构建**实时 N-ary 攻击树**
- 节点**可点击** —— 每个节点都会显示被攻破的数据详情
- 颜色编码:🔴 根节点 · 🟡 模块 · ⚫ 发现 · 🟢 凭据 · 🔵 路径
## 🛡️ 蓝队功能
### 监控模式
被动实时监控所有进入 DVWA 的流量:
| 面板 | 类 | 数据结构 | 功能说明 |
|-------|-------|---------------|-------------|
| IP 流量表 | `TrafficMonitor` | **HashMap** | 统计每个 IP 的 HTTP 命中次数;在 30 req/IP 时触发警报 |
| 日志推送 | `LogAnalyzer` | **Stack** | 跟踪 Apache `access.log`;最新条目始终在最上面 |
| 警报队列 | `AlertQueue` | **Queue (FIFO)** | 按到达顺序排列的所有异常;LOW/MED/HIGH/CRITICAL |
| 威胁堆 | `AnomalyDetector` | **MaxHeap** | CVSS 评分 0–10;最严重的威胁始终在顶部 |
**按钮:** `Clear LOW` · `Ack All` · `⚡ Mitigate Top Threat`
### 防御模式
针对检测到的威胁采取主动行动:
| 面板 | 类 | 数据结构 | 功能说明 |
|-------|-------|---------------|-------------|
| 防火墙阻止列表 | `FirewallManager` | **LinkedList** | 手动 + 自动阻止 IP;模拟 `iptables` 规则 |
| 补丁顾问 | `PatchAdvisor` | **ArrayList** | 将 6 个 CVE 映射到每个漏洞利用;标记为 Pending/In Progress/Applied/Skipped |
| 加固检查器 | `HardenChecker` | **HashMap** | 涵盖 PHP、Apache、DVWA、网络的 14 项检查;满分为 100 分 |
| 事件记录器 | `IncidentLogger` | **LinkedList** | 将分析师的每一步操作记录到时间线及磁盘文件中 |
## 🧱 数据结构总结
| 结构 | 类 | 使用原因 |
|-----------|-------|--------------|
| **MinHeap** | `VulnerabilityReport` | 按 CVSS 分数对扫描结果进行排序(最低分 = 最严重的排前面) |
| **HashMap** | `VulnerabilityReport` + `TrafficMonitor` + `HardenChecker` | O(1) 复杂度的去重、IP 查找、配置审计 |
| **N-ary Tree** | `AttackTreeModel` | 使用可点击的节点构建完整的漏洞利用关系图模型 |
| **ArrayList** | `ExploitModule` 输出 + `PatchAdvisor` | 对结果和 CVE 列表进行索引访问 |
| **Queue** | `AlertQueue` | FIFO(先进先出)警报处理流水线 |
| **Stack** | `LogAnalyzer` | 最新的日志条目始终位于顶部 |
| **LinkedList** | `FirewallManager` + `IncidentLogger` | O(1) 复杂度用于阻止列表和时间线的插入/删除 |
| **MaxHeap** | `AnomalyDetector` | 严重程度最高的威胁始终位于顶部 |
## 🔧 前置条件
在运行 WebGuard Pro 之前,请确保已安装以下软件:
### 必备软件
| 工具 | 版本 | 用途 |
|------|---------|---------|
| Java JDK | 17+ | 运行时与编译 |
| JavaFX | 21 | GUI 框架 |
| Apache Maven | 3.9+ | 构建与依赖管理 |
| XAMPP | 最新版 | 在 `localhost:8080` 托管 DVWA |
| DVWA | 最新版 | 包含漏洞的靶标 Web 应用程序 |
| Git | 任意 | 版本控制 |
### 必备安全工具
| 工具 | 版本 | 默认路径 |
|------|---------|-------------|
| sqlmap | v1.10.5 | PATH 中的 Python 脚本 |
| gobuster | v3.8.2 | `D:\Tools\gobuster` |
| nikto | v3 | 模拟模式 |
| nmap | 最新版 | 系统 PATH |
| 字典 (`common.txt`) | — | `D:\Tools\wordlists\common.txt` |
## 🚀 安装与设置
### 1. 克隆仓库
```
git clone https://github.com/Md-zakria/WebGuard-Pro.git
cd WebGuard-Pro
```
### 2. 在 XAMPP 上启动 DVWA
```
1. Launch XAMPP Control Panel
2. Start Apache and MySQL
3. Open browser → http://localhost:8080/dvwa
4. Login: admin / password
5. Click "Setup / Reset DB"
6. Set Security Level to: Low
```
### 3. 构建项目
```
mvn clean install
```
### 4. 运行应用程序
```
mvn javafx:run
```
或者运行生成的 JAR 文件:
```
java --module-path /path/to/javafx-sdk/lib --add-modules javafx.controls,javafx.fxml -jar target/webguard-pro.jar
```
## 🎮 使用指南
### 红队工作流
```
Launch Red Team → Choose SCAN or EXPLOIT
↓
SCAN: Enter target IP → Click "Run Full Scan" → Watch live terminal output
EXPLOIT: Enter target IP → Click "Run All Exploits" → Inspect Attack Tree nodes
```
### 蓝队工作流
```
Launch Blue Team → Choose MONITOR or DEFEND
↓
MONITOR: Auto-starts → Watch 4 live panels fill in real time
DEFEND: Run Hardening Checker → Auto-Block Threats → Work through CVE Patch Advisor
```
### 推荐的实验室操作流程
1. 在 XAMPP 上启动 DVWA (`localhost:8080`)
2. 打开 WebGuard Pro → **Blue Team → Monitor**(先开始监控)
3. 切换到 **Red Team → Scan** 并运行全面扫描
4. 观察蓝队监控器实时检测攻击
5. 转到 **Red Team → Exploit** 并运行所有漏洞利用模块
6. 切换到 **Blue Team → Defend**:
- 点击 **Auto-Block Threats** → 阻止所有攻击 IP
- 完成 **Patch Advisor** 中的 CVE 处理
- 运行 **Hardening Checker** 获取基础评分
- 应用补丁 → 重新运行检查器以查看改进情况
7. 导出 **Incident Log** 作为您的审计记录
## 📁 项目结构
```
WebGuard-Pro/
├── src/
│ └── main/
│ ├── java/com/webguard/
│ │ ├── HomeScreen.java
│ │ ├── redteam/
│ │ │ ├── RedTeamHub.java
│ │ │ ├── RedTeamDashboard.java
│ │ │ ├── ExploitDashboard.java
│ │ │ ├── VulnerabilityReport.java ← MinHeap + HashMap
│ │ │ ├── AttackTreeModel.java ← N-ary Tree
│ │ │ ├── SqlInjectionExploit.java
│ │ │ ├── XssInjector.java
│ │ │ ├── BruteForceExploit.java
│ │ │ └── TraversalExploit.java
│ │ └── blueteam/
│ │ ├── BlueTeamHub.java
│ │ ├── BlueTeamDashboard.java
│ │ ├── DefendDashboard.java
│ │ ├── TrafficMonitor.java ← HashMap
│ │ ├── LogAnalyzer.java ← Stack
│ │ ├── AlertQueue.java ← Queue
│ │ ├── AnomalyDetector.java ← MaxHeap
│ │ ├── FirewallManager.java ← LinkedList
│ │ ├── PatchAdvisor.java ← ArrayList
│ │ ├── HardenChecker.java ← HashMap
│ │ └── IncidentLogger.java ← LinkedList
│ └── resources/
│ └── fxml/ + css/
├── screenshots/
├── pom.xml
└── README.md
```
## 🔐 CVE 映射(补丁顾问)
| CVE | CVSS | 漏洞 | 映射的漏洞利用 |
|-----|------|--------------|---------------|
| CVE-2023-23752 | 9.8 | 通过 DVWA 登录的 SQL Injection | `SqlInjectionExploit` |
| CVE-2021-42013 | 9.0 | Local File Inclusion / 路径遍历 | `TraversalExploit` |
| CVE-2021-41773 | 8.1 | 登录端点无速率限制 | `BruteForceExploit` |
| CVE-2022-24086 | 7.5 | 反射型 XSS — name 参数 | `XssInjector` |
| CWE-16 | 5.5 | DVWA 在低安全模式下运行 | 常规配置 |
| CWE-200 | 5.5 | phpinfo() 页面可公开访问 | 常规配置 |
## 👥 团队
| 成员 | 角色 | 模块 |
|--------|------|---------|
| **Muhammad Zakria** | 红队负责人 | RedTeamHub, RedTeamDashboard, ExploitDashboard, 所有漏洞利用模块, 攻击树, VulnerabilityReport |
| **Hafsa Mushtaq** | 蓝队负责人 | BlueTeamHub, BlueTeamDashboard, DefendDashboard, 所有监控/防御模块 |
## ⚠️ 免责声明
## 📄 许可证
根据伊斯兰堡 COMSATS 大学的学术政策,本项目**仅供教育用途**。
在 **伊斯兰堡 COMSATS 大学** 用 ❤️ 制作
如果这个仓库对您有帮助,请点个 ⭐ Star!
标签:BurpSuite集成, JavaFX, PNNL实验室, 域名枚举, 安全靶场, 桌面应用, 用户模式钩子绕过, 网络安全仿真