Md-zakria/WebGuard-Pro

GitHub: Md-zakria/WebGuard-Pro

一款基于 Java 17 和 JavaFX 21 构建的紫队网络安全桌面应用,在本地 DVWA 靶机上模拟红队攻击与蓝队防御的完整对抗流程,同时演示八种核心数据结构的实际应用。

Stars: 1 | Forks: 0



``` ██╗ ██╗███████╗██████╗ ██████╗ ██╗ ██╗ █████╗ ██████╗ ██████╗ ██████╗ ██████╗ ██████╗ ██║ ██║██╔════╝██╔══██╗██╔════╝ ██║ ██║██╔══██╗██╔══██╗██╔══██╗ ██╔══██╗██╔══██╗██╔═══██╗ ██║ █╗ ██║█████╗ ██████╔╝██║ ███╗██║ ██║███████║██████╔╝██║ ██║ ██████╔╝██████╔╝██║ ██║ ██║███╗██║██╔══╝ ██╔══██╗██║ ██║██║ ██║██╔══██║██╔══██╗██║ ██║ ██╔═══╝ ██╔══██╗██║ ██║ ╚███╔███╔╝███████╗██████╔╝╚██████╔╝╚██████╔╝██║ ██║██║ ██║██████╔╝ ██║ ██║ ██║╚██████╔╝ ╚══╝╚══╝ ╚══════╝╚═════╝ ╚═════╝ ╚═════╝ ╚═╝ ╚═╝╚═╝ ╚═╝╚═════╝ ╚═╝ ╚═╝ ╚═╝ ╚═════╝ ``` # WebGuard Pro ### 自动化紫队安全实验室平台 **一款双模式网络安全桌面应用程序,模拟针对 DVWA 的真实红队攻击和蓝队防御 —— 基于 Java 17、JavaFX 21 和 8 个核心数据结构构建。**
> 🎓 **CSC211 — 数据结构** | 伊斯兰堡 COMSATS 大学
[![GitHub](https://img.shields.io/badge/GitHub-Md--zakria-181717?style=for-the-badge&logo=github)](https://github.com/Md-zakria)   [![LinkedIn](https://img.shields.io/badge/LinkedIn-Muhammad_Zakria-0077B5?style=for-the-badge&logo=linkedin)](https://linkedin.com/in/muhammad-zakria-9914a0325)   [![TryHackMe](https://img.shields.io/badge/TryHackMe-ZAKxOB-212C42?style=for-the-badge&logo=tryhackme)](https://tryhackme.com/p/ZAKxOB)
## 📸 截图 ### 🏠 主屏幕 — 紫队启动台 ![主屏幕](https://static.pigsec.cn/wp-content/uploads/repos/cas/af/af4cf37fb904484a8045a155291c12555c74dc90ca52ec26fb7017ae32c36de4.png) ### 🔴 红队中心 — 攻击模式选择 ![红队中心](https://static.pigsec.cn/wp-content/uploads/repos/cas/f9/f969b46f9df892f2f47ca8d52914c85c5b60a88bdd8f46366af74106d315be76.png) ### 🔍 红队扫描 — 实时漏洞扫描器 ![红队扫描](https://static.pigsec.cn/wp-content/uploads/repos/cas/ef/ef83c5c2274b64077d27e3a3158e7d8c4f36a00b986aa99b191d4ace1ea24a4f.png) ### ⚡ 红队漏洞利用 — N-ary 攻击树 ![漏洞利用模块](https://static.pigsec.cn/wp-content/uploads/repos/cas/bc/bc6176a366ffefd6da116e62d42cfddeb7d1ef9d44af2721a98a148248644c50.png) ### 🔵 蓝队中心 — 防御模式选择 ![蓝队中心](https://static.pigsec.cn/wp-content/uploads/repos/cas/c7/c7631d03d1375a23099f0f7c96423df9ba3780d39b86d97246628c55385404b1.png) ### 📡 蓝队监控 — 实时威胁检测仪表板 ![蓝队监控](https://static.pigsec.cn/wp-content/uploads/repos/cas/ce/ce499587e5fccc168786b67c7b7e8ec042191940fae8e2bd5f2fc4ed4ed880ea.png) ### 🛡️ 蓝队防御 — 防火墙、补丁与加固 ![蓝队防御](https://static.pigsec.cn/wp-content/uploads/repos/cas/55/55e9c1dc35ef7ab5e6ab5f142b23c81e1f7ee659f7458d23b8e77a400466f1a6.png) ## 🗺️ 架构 ``` 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实验室, 域名枚举, 安全靶场, 桌面应用, 用户模式钩子绕过, 网络安全仿真