CSSluckyyy095/cyberguard
GitHub: CSSluckyyy095/cyberguard
基于 Flask 的自动化 Web 应用漏洞评估脚手架,预置 15 个功能模块并集成主流安全工具的调用框架与报告流水线。
Stars: 0 | Forks: 0
# CyberGuard — 自动化 Web 应用漏洞评估平台
基于 Flask 的脚手架,用于授权的 Web 应用侦察/漏洞评估工具。
此脚手架连接了所有 15 个模块,提供可运行的 Auth + Dashboard + DB,并带有外部安全工具(Subfinder、httpx、Katana、Nmap、WhatWeb、Nikto、ZAP API、SSLyze、Amass)的**桩代码集成点**。一旦在您的扫描主机(推荐使用 Kali Linux)上安装了这些工具,您就可以填入实际的 subprocess/API 调用。
## ⚠️ 授权要求(内置,请勿移除)
在创建扫描作业之前,每个扫描目标都必须由用户证明已获得授权(“New Scan”表单上的 `authorized` 复选框,并在 `scans` 表中记录时间戳 + 用户 ID)。此脚手架特意**不包含任何攻击性 payload/exploit 代码** —— 仅包含检测、指纹识别和报告逻辑。请保持这种方式;仅当您拥有针对此操作的单独且范围明确的授权/法律审查流程时,才接入真正的 exploitation 模块。
## 结构
cyberguard/
├── run.py # 入口
├── requirements.txt
├── .env.example
├── app/
│ ├── init.py # app factory, blueprint registration
│ ├── config.py # Dev/Prod config (SQLite -> MySQL swap point)
│ ├── extensions.py # db, login_manager, bcrypt
│ ├── models.py # all SQLAlchemy models (modules 1,3-14)
│ ├── auth/ # Module 1: User Authentication
│ ├── dashboard/ # Module 2: Dashboard
│ ├── scanner/ # Modules 3-12: scan orchestration + tool stubs
│ ├── reports/ # Module 14: PDF report generation
│ ├── admin/ # Module 15: Admin panel
│ ├── templates/
│ └── static/
## 模块 -> 文件映射
| # | 模块 | 位置 |
|---|--------|----------|
| 1 | User Authentication | `app/auth/` |
| 2 | Dashboard | `app/dashboard/` |
| 3 | Website Scanner (orchestrator) | `app/scanner/routes.py`, `app/scanner/orchestrator.py` |
| 4 | Subdomain Enumeration | `app/scanner/tools/subdomain.py` (Subfinder/Amass) |
| 5 | HTTP Probing | `app/scanner/tools/http_probe.py` (httpx) |
| 6 | Website Crawling | `app/scanner/tools/crawler.py` (Katana) |
| 7 | Port Scanning | `app/scanner/tools/port_scan.py` (Nmap + NSE) |
| 8 | Technology Detection | `app/scanner/tools/tech_detect.py` (WhatWeb) |
| 9 | Security Header Analysis | `app/scanner/tools/headers.py` |
| 10 | SSL/TLS Analysis | `app/scanner/tools/tls_analysis.py` (SSLyze) |
| 11 | Basic Vulnerability Detection | `app/scanner/tools/vuln_scan.py` (Nikto + ZAP API) |
| 12 | Risk Scoring | `app/scanner/risk_scoring.py` |
| 13 | Scan History | `app/dashboard/routes.py` (`/history`) |
| 14 | PDF Report Generation | `app/reports/pdf_generator.py` (ReportLab) |
| 15 | Admin Panel | `app/admin/` |
## 截图
**登录**

**New Scan — 模块选择**

**仪表板**

**扫描历史**

**扫描详情 — OWASP Top 10 映射**

**管理面板**

## 安装说明
### 步骤 1:克隆仓库
```
git clone https://github.com/YOUR_USERNAME/CyberGuard.git
cd CyberGuard
```
### 步骤 2:更新系统
```
sudo apt update
sudo apt upgrade -y
```
### 步骤 3:安装 Python
```
sudo apt install python3 python3-pip python3-venv python3-full -y
```
验证:
```
python3 --version
pip3 --version
```
### 步骤 4:创建虚拟环境
```
python3 -m venv venv
```
激活它(Kali Linux / Zsh):
```
source venv/bin/activate
```
您应该会看到:
(venv) kali@kali:~/CyberGuard$
### 步骤 5:升级 pip
```
python -m pip install --upgrade pip
```
### 步骤 6:安装 Python 依赖
```
pip install -r requirements.txt
```
验证:
```
pip list
```
### 步骤 7:安装 Go (Golang)
```
sudo apt install golang-go -y
```
验证:
```
go version
```
### 步骤 8:安装 ProjectDiscovery 工具
Subfinder:
```
go install github.com/projectdiscovery/subfinder/v2/cmd/subfinder@latest
```
Httpx:
```
go install github.com/projectdiscovery/httpx/cmd/httpx@latest
```
Katana:
```
go install github.com/projectdiscovery/katana/cmd/katana@latest
```
### 步骤 9:将 Go 添加到 PATH
对于 Kali Linux (Zsh):
```
echo 'export PATH=$HOME/go/bin:$PATH' >> ~/.zshrc
source ~/.zshrc
rehash
```
对于 Bash 用户:
```
echo 'export PATH=$HOME/go/bin:$PATH' >> ~/.bashrc
source ~/.bashrc
```
验证:
```
which subfinder
which httpx
which katana
```
预期:
/home/username/go/bin/subfinder
/home/username/go/bin/httpx
/home/username/go/bin/katana
### 步骤 10:安装 Nmap
```
sudo apt install nmap -y
```
验证:
```
nmap --version
```
### 步骤 11:安装 Nikto
```
sudo apt install nikto -y
```
验证:
```
nikto -Version
```
### 步骤 12:安装 WhatWeb
```
sudo apt install whatweb -y
```
验证:
```
whatweb --version
```
### 步骤 13:安装 SSLyze
```
pip install sslyze
```
验证:
```
sslyze google.com
```
### 步骤 14:初始化数据库
```
python -m flask --app run.py db-init
```
此命令将:
- 创建 SQLite 数据库
- 创建所有必需的表
- 创建默认管理员账户(如果已实现)
### 步骤 15:启动 CyberGuard
```
python run.py
```
打开:
http://127.0.0.1:5000
默认管理员登录(请立即修改):`admin / ChangeMe123!`
## 将 SQLite 替换为 MySQL
编辑 `.env`:
DATABASE_URL=mysql+pymysql://user:password@localhost/cyberguard
并执行 `pip install pymysql`。无需更改代码 —— `SQLALCHEMY_DATABASE_URI` 将从 `DATABASE_URL` 读取。
## 接入真实工具
`app/scanner/tools/` 下的每个文件都有一个 `run(target: str) -> dict` 函数,带有可运行的 subprocess 模式以及用于解析真实工具输出的 TODO。它们目前返回**模拟数据**,以便整个流水线(扫描 -> DB -> 仪表板 -> PDF 报告)可以在未安装任何工具的情况下端到端运行,以供演示/开发使用。一旦安装了 Subfinder/httpx/Katana/Nmap/WhatWeb/Nikto/SSLyze 并将其添加到 `PATH` 中,请替换掉模拟代码块(Kali Linux 自带其中大多数工具;在 Windows 上,CLI 工具请使用 WSL)。
**关于 subprocess 调用的安全说明**:每个工具包装器都使用 `shlex` 安全的参数列表(绝不使用带字符串插值的 `shell=True`),以避免通过恶意目标主机名引发命令注入。在扩展此功能时请保持此模式。
## 贡献者
- [CSSluckyyy095](https://github.com/CSSluckyyy095) — 项目负责人
- [Darshana Gautam](https://github.com/darshanagautam85) — 贡献者
标签:Flask, Python, Web安全, 反取证, 安全评估, 无后门, 蓝队分析, 逆向工具