koruturu-tharunsaitilak/automated-network-scanner
GitHub: koruturu-tharunsaitilak/automated-network-scanner
SentinelAI 是一个集成了 Nmap、OWASP ZAP 和本地 LLM 的 AI 驱动型自动化网络与 Web 漏洞扫描平台,提供从扫描到风险评分和报告生成的端到端安全评估工作流。
Stars: 0 | Forks: 0
# SentinelAI 🛡️
SentinelAI 是一款由人工智能和开源情报 (OSINT) 工具驱动的高级 Web 与网络漏洞扫描器。它提供了一个现代化的 Flask Web 界面,用于运行、跟踪和分析漏洞扫描,自动将结果映射到已知的 CVE 数据库,评估安全风险,并利用本地大型语言模型 (LLM) 预测潜在的攻击向量。
## 🚀 核心功能
* **网络扫描**:通过集成 Nmap 进行主动端口发现和服务版本指纹识别。
* **CVE 映射**:使用官方 NVD API 对发现的软件和版本进行实时查询,并在本地存储 CVSS v3/v2 评分。
* **Web 漏洞扫描**:Header 分析、CMS/JS 框架指纹识别、HTTP 方法评估,以及缺失的安全 Header(如 HSTS、CSP 等)检查。
* **子域名发现**:通过 Subfinder(或多线程 DNS 暴力破解后备方案)进行集成的子域名枚举,并通过 HTTPx 验证存活主机。
* **OWASP ZAP 集成**:使用 OWASP Zed Attack Proxy (ZAP) API 进行自动化的 Web 爬虫和主动漏洞扫描。
* **动态风险评分**:结合上下文感知的优先级排序引擎,根据 CVSS 指标、端口暴露情况和漏洞利用可用性计算风险评分。
* **AI Copilot 与分析**:利用本地 Ollama (Mistral) 引擎生成风险摘要、攻击路径、威胁狩猎指标,并为 Copilot 聊天提供支持。
* **报告引擎**:自动生成 HTML 和 PDF 报告,用于执行摘要和详细的技术发现。
## 💻 技术栈
* **后端与 Web 服务器**:Python 3, Flask, Jinja2, SQLite3, Threading / `concurrent.futures`
* **前端**:HTML5, 原生 CSS3(自定义暗黑/高对比度样式),JavaScript, Bootstrap 5
* **安全与漏洞扫描器**:
- Nmap(通过 `python-nmap`)
- OWASP Zed Attack Proxy (ZAP)(通过自定义 REST API 集成)
- Subfinder & HTTPx
* **漏洞信息丰富**:NIST NVD API (v2)
* **AI 与 LLM 集成**:Ollama(使用 `mistral` 模型的本地部署)
* **PDF 报告生成**:ReportLab
* **隧道/远程暴露**:Ngrok
## 🛠️ 架构与核心模块
该应用程序由多个模块化组件构成:
* `app.py`:核心 Flask 应用程序,托管 API endpoint,处理路由请求并管理异步扫描任务。
* `ai_engine.py`:与 Ollama 的本地 `mistral` LLM 实例交互,生成风险摘要、攻击路径、威胁狩猎日志,并为 Copilot 聊天提供支持。
* `scanner.py`:封装 `python-nmap` 配置的网络扫描引擎。
* `web_scanner.py`:自定义的 HTTP 响应 Header 和客户端技术栈识别分析器。
* `subdomain_finder.py`:使用本地二进制路径或 DNS 暴力破解后备方案处理子域名发现。
* `zap_scanner.py`:处理与 Zed Attack Proxy 的交互,包括启动 ZAP 并运行爬虫和主动扫描。
* `cve_lookup.py`:连接到 NIST NVD 数据库 API 以获取 CVE 描述和评分。
* `risk_scorer.py`:应用基于 CVSS 的公式,并根据暴露权重进行调整以确定风险优先级。
* `database.py`:管理本地 SQLite 数据库(`sentinelai.db`)的 schema,用于记录扫描、端口和 CVE 历史数据。
* `report_generator.py`:将扫描记录转换为专业的 PDF/HTML 文件。
## 📋 前置条件
要运行 SentinelAI 并启用所有功能,请确保您的环境中已安装以下工具:
1. **Python 3.x**:确保已将 Python 添加到您的环境变量路径中。
2. **Nmap**:必须安装。默认搜索路径为 `E:\tools\nmap\nmap.exe`,或位于您的系统 PATH 中。
3. **子域名工具**:(可选,用于子域名扫描器)`subfinder` 和 `httpx` 二进制文件应位于您的 PATH 中或存放在 `C:\Tools\` 目录下。
4. **OWASP ZAP**:Zed Attack Proxy 必须安装在 `C:\Program Files\ZAP\Zed Attack Proxy\ZAP.exe` 以便自动启动,或者在端口 `8090` 上运行并使用 API Key `sentinelai-zap-key`。
5. **Ollama**:在本地 `http://localhost:11434` 运行,并已下载 `mistral` 模型(`ollama run mistral`)。
## 📦 安装与设置
1. **克隆代码仓库**:
git clone https://github.com/koruturu-tharunsaitilak/automated-network-scanner.git
cd automated-network-scanner
2. **设置虚拟环境**:
python -m venv venv
source venv/bin/activate # 在 Windows 上使用:venv\Scripts\activate
3. **安装依赖项**:
确保 `pip` 已更新,并安装所需的 Python 包(例如 `Flask`、`requests`、`python-nmap`、`fpdf2`/`reportlab` 等)。
4. **验证数据库**:
SQLite 数据库(`sentinelai.db`)会在首次启动时通过 `database.py` 自动初始化。
## 🏃 运行应用程序
对于 Windows 环境,提供了一个快速启动的批处理脚本,用于激活虚拟环境并同时启动 Flask 和 Ngrok 隧道:
```
start_sentinel (2).bat
```
或者,手动运行:
```
# 启动 Flask Server (在 http://127.0.0.1:5000 上启动)
python app.py
```
## 📄 许可证
本项目专为内部安全测试和教育研究目的而配置。请负责任地使用。
标签:AI大模型, AI风险缓解, CTI, Web安全, 云存储安全, 动态插桩, 密码管理, 插件系统, 数据可视化, 网络扫描, 自动化评估, 蓝队分析, 误配置预防, 逆向工具