lavanya-0005/Network-security-scanner-using-cybersecurity
GitHub: lavanya-0005/Network-security-scanner-using-cybersecurity
NetScan 是一个基于 Python 的网络安全扫描器,通过 13 个功能模块实现漏洞评估、合规检查与持续监控,帮助安全团队识别网络风险并生成多格式的修复报告。
Stars: 1 | Forks: 0
# NetScan — 网络安全扫描器 v3.0
### 一个深度防御漏洞评估工具
## 目录
1. [这是什么](#1-what-this-is)
2. [系统要求](#2-system-requirements)
3. [安装说明](#3-installation)
4. [快速入门 — Flask UI](#4-quick-start--flask-ui)
5. [快速入门 — CLI](#5-quick-start--cli)
6. [演示指南](#6-demo-walkthrough)
7. [全部 13 个模块详解](#7-all-13-modules-explained)
8. [UI 功能指南](#8-ui-features-guide)
9. [CLI 参考](#9-cli-reference)
10. [导出格式](#10-export-formats)
11. [可选工具与集成](#11-optional-tools-and-integrations)
12. [故障排除](#12-troubleshooting)
13. [架构概述](#13-architecture-overview)
## 1. 这是什么
NetScan 是一个全面的基于 Python 的网络安全扫描器,它实现了
项目摘要中的每一项技术:
| 摘要要求 | 实现方式 |
|---|---|
| 扫描主机、设备、端口、服务 | 模块 1(主机发现)+ 模块 2(端口扫描器) |
| 过时的软件 / 缺失的补丁 | 模块 3(CVE 漏洞检查器) |
| 开放 / 不必要的端口 | 模块 3(端口风险评估) |
| 不安全的配置 | 模块 4(SSL/TLS 审计器)+ 模块 6(HTTP 扫描器) |
| 恶意活动的迹象 | 模块 9(行为分析器) |
| 自动化检测引擎 + 漏洞数据库 | 模块 3(CVE 数据库 + 置信度评分) |
| 行为分析 | 模块 9(端口异常、可疑组合、规避检测) |
| 按严重程度和可利用性划分优先级 | 模块 7(风险评分器,基于 CVSS 权重) |
| 持续监控 | 模块 10(带有增量差异比对的定时扫描守护进程) |
| 合规性检查 | 模块 11(PCI-DSS / NIST SP 800-53 / ISO 27001) |
| 详细报告 | 模块 8(JSON、HTML、SIEM CEF、Snort、Ansible、修复指南) |
| 减少误报 | 置信度评分 + 单项发现抑制列表 |
| 已认证扫描 | 模块 12(FTP、Redis、HTTP Basic Auth) |
| SIEM 集成 | 用于 Splunk / Sentinel / QRadar 的 CEF 输出 |
| IDS 集成 | 从已确认的发现中自动生成 Snort 规则 |
| 网络隔离 | 模块 13(VLAN 间可达性探测) |
| 补丁管理自动化 | Ansible playbook 生成 |
| 修复工作流 | 带有 SLA 的优先级四轨行动计划 |
## 2. 系统要求
### 强制要求
| 要求 | 最低版本 | 备注 |
|---|---|---|
| Python | 3.10 | 推荐 3.11 或 3.12 |
| pip | 22+ | 随 Python 一起捆绑提供 |
| OS | Linux / macOS / Windows 10+ | 推荐使用 Linux 以获得完整的 ICMP 支持 |
```
# 首先检查你的 Python 版本
python3 --version
```
## 3. 安装说明
### 步骤 1 — 解压
```
unzip netscan_full.zip
cd netscan_full
```
### 步骤 2 — 创建虚拟环境(推荐)
```
# 创建
python3 -m venv venv
# 在 Linux/macOS 上激活
source venv/bin/activate
# 在 Windows 上激活
venv\Scripts\activate
```
### 步骤 3 — 安装 Python 依赖
```
pip install -r requirements.txt
```
安装内容:
| 包 | 用途 |
|---|---|
| flask | Web UI 服务器和 SSE 流式传输 |
| requests | HTTP 安全扫描(模块 6) |
| dnspython | DNS 枚举和区域传送(模块 5) |
| colorama | CLI 模式下的彩色终端输出 |
| tabulate | 终端表格格式化 |
| cryptography | SSL/TLS 证书检查(模块 4) |
| schedule | 持续监控调度器(模块 10) |
### 步骤 4 — 验证
```
python3 -c "
import flask, requests, dns.resolver, colorama, cryptography, schedule
print('All dependencies OK')
"
```
## 4. 快速入门 — Flask UI
```
python app.py
```
在浏览器中打开 **http://localhost:5000**
可选标志:
```
python app.py --port 8080 # use different port
python app.py --debug # show Python errors in browser
```
## 5. 快速入门 — CLI
扫描器也可以在没有 Flask UI 的情况下作为独立的 CLI 工具运行。
```
# Full scan — 全部 13 个模块
python network_scanner.py --target 192.168.1.1 --full
# Subnet sweep
python network_scanner.py --target 192.168.1.0/24 --ports 1-1024
# Web + SSL + DNS 审计
python network_scanner.py --target example.com --web --ssl --dns
# 包含 SIEM、IDS、Ansible、合规性的所有内容
python network_scanner.py --target 10.0.0.1 \
--full --siem --ids --patch-report --compliance pci_dss
```
## 6. 演示指南
在所有演示中,使用您自己的机器 (127.0.0.1) 或您控制的 VM。
### 演示 1 — 基础端口扫描
1. 运行 `python app.py` 并打开 http://localhost:5000
2. 在 Target 字段中输入 `127.0.0.1`
3. 将 Ports 设置为:`21,22,23,80,443,3306,5432,6379,8080,8443`
4. 启用:仅 Port Scan
5. 点击 **INITIATE SCAN**
您将看到:
- 随着每个阶段的激活,阶段跟踪器会亮起
- Ports 标签页填充了开放端口、服务名称、版本和 banner 的表格
- Vulnerabilities 标签页显示了 CVE 匹配项及其置信度百分比和补丁指南
- 如果存在任何可疑端口组合,行为分析器将触发
- 终端实时流式传输每个事件
### 演示 2 — Web 安全审计
1. 输入域名或本地 Web 服务器地址
2. 启用:Port Scan + SSL/TLS + HTTP Audit
3. 点击 **INITIATE SCAN**
您将看到:
- Ports 标签页中的 SSL/TLS 卡片显示 TLS 版本、证书到期天数、弱加密算法发现
- HTTP 标签页显示安全标头检查清单(绿色 = 存在,红色 = 缺失)
- 如果探测的 24 个路径中有任何一个响应非 404,则显示敏感路径发现
### 演示 3 — DNS 枚举
1. 输入域名
2. 启用:DNS Enum
3. 点击 **INITIATE SCAN**
您将看到:
- DNS 标签页包含找到的所有记录类型(A、AAAA、MX、NS、TXT、CNAME、SOA)
- 发现的子域名以绿色胶囊形式列出
- 如果缺少 SPF 或 DMARC 记录,则显示 MEDIUM 发现
- 如果区域传送成功,则显示 CRITICAL 发现
### 演示 4 — 合规性检查
1. 输入您的目标
2. 将 Compliance Framework 下拉菜单设置为:PCI-DSS
3. 启用:Port Scan + SSL/TLS + HTTP Audit
4. 点击 **INITIATE SCAN**
您将看到:
- Compliance 标签页包含检查的所有 PCI-DSS 控制项表格
- 每个控制项的 PASS / FAIL 状态,以及违规计数和详细信息
- 摘要行显示通过率(例如“14/22 个控制项已通过”)
- 涵盖的控制项包括 1.1.6、1.2.1、4.1、6.3.3、6.4.1、8.3.6
### 演示 5 — 全部六种导出格式
在任何完成的扫描之后:
1. 在侧边栏中向下滚动到 Export Reports 部分
2. 点击每个按钮:
| 按钮 | 下载内容 |
|---|---|
| JSON | 完整的机器可读扫描结果 |
| HTML | 深色主题合规报告 |
| SIEM | 用于 Splunk / Sentinel / QRadar 的 CEF 格式事件 |
| Snort | 准备好加载的 IDS 规则文件 |
| Ansible | 针对每个漏洞主机的修复 playbook |
| Workflow | 带有 SLA 分配的优先级四轨行动计划 |
### 演示 6 — 认证扫描
1. 在您的测试系统上设置一个具有默认凭证的服务。
好选项:没有密码的 Redis,启用匿名登录的 FTP。
2. 启用:Port Scan + Auth Scan
3. 点击 **INITIATE SCAN**
您将看到:
- 第 7 阶段在端口扫描后激活
- 任何被接受的默认凭证都将显示为 CRITICAL 发现
- 显示确切有效的凭证对
- 包含补丁指南(例如“在 redis.conf 中设置 requirepass;绑定到 127.0.0.1”)
### 演示 7 — 误报抑制
1. 运行任何产生发现的扫描
2. 转到 Vulnerabilities 标签页
3. 找到一个您想要接受为已知风险的发现
4. 点击该发现上的 **Suppress** 按钮
5. 该发现淡化至 35% 不透明度(已确认状态)
6. 再次运行相同的扫描 — 该发现被静默跳过
抑制密钥将写入磁盘上的 `.scan_suppress.json`。
### 演示 8 — 持续监控 (CLI)
```
python network_scanner.py \
--target 192.168.1.0/24 \
--ports 22,80,443,3306,3389 \
--monitor \
--interval 300
# 每 5 分钟的示例输出:
# [MONITOR] 计划扫描开始于 2025-01-15T14:00:00
# [MONITOR] 自上次运行以来的 2 个新发现:
# [VULN] [CRITICAL] 192.168.1.42:23 — Telnet 以明文传输数据
# [MONITOR] 风险评分增加了 10 分
# [MONITOR] 下次计划扫描:2025-01-15T14:05:00
```
每个周期仅报告新发现。Ctrl+C 停止守护进程。
### 演示 9 — 分段验证 (CLI)
```
python network_scanner.py \
--target 10.0.1.0/24 \
--segments 10.0.1.0/24,10.0.2.0/24
# 示例输出:
# [WARN] 分段违规:10.0.1.0/24 -> 10.0.2.5:22 (SSH)
# [WARN] 分段违规:10.0.1.0/24 -> 10.0.2.5:3306 (MySQL)
# 分段检查:420 次探测,2 个违规
```
## 7. 全部 13 个模块详解
**模块 1 — 主机发现**
扫描目标 IP 或 CIDR 以查找活动主机。使用 ICMP ping,对于阻止 ICMP 的主机,
回退到探测端口 80、443、22、445 上的 TCP。并发运行
— /24 扫描大约需要 5 秒钟。
**模块 2 — 端口扫描器**
TCP connect 扫描和 banner 抓取。记录端口、状态、服务名称、原始
banner,并通过正则表达式提取结构化的版本字符串(例如 Apache/2.4.49)。
**模块 3 — 漏洞检查器**
每个开放端口上运行两种检测策略:
1. CVE 数据库匹配 — 在 VULN_SIGNATURES 中查找版本(Apache/2.4.49 映射到 CVE-2021-41773 CRITICAL)
2. 端口风险评估 — 标记无论版本如何都具有结构性危险的服务(Telnet 端口 23 始终为 CRITICAL)
每个发现都带有一个置信度分数(1.0 = 版本完全匹配,0.7 = 部分匹配)和
一个接受已知风险的抑制机制。
**模块 4 — SSL/TLS 审计器**
测试证书有效性(过期、自签名)、已弃用的协议支持
(SSLv2、SSLv3、TLSv1.0、TLSv1.1)和弱密码套件(RC4、DES、3DES、NULL、
EXPORT、MD5)。
**模块 5 — DNS 枚举器**
查询所有标准记录类型,尝试 AXFR 区域传送(如果
成功则为 CRITICAL),并发地暴力破解 30 个常见子域名,并检查
SPF 和 DMARC 记录。
**模块 6 — HTTP 安全扫描器**
静态分析:审计 7 个安全标头(HSTS、CSP、X-Frame-Options 等)、
CORS 策略、Cookie 的 Secure/HttpOnly 标志、服务器版本披露。
动态分析:探测 24 个敏感路径(.env、.git/HEAD、phpinfo.php、/admin/ 等)
**模块 7 — 风险评分器**
使用 CVSS 权重评分汇总所有发现:
score += severity_weight x confidence_weight
四个频段:LOW (0)、MEDIUM (1-19)、HIGH (20-49)、CRITICAL (50+)。
**模块 8 — 报告生成器**
六种输出格式:JSON、HTML、SIEM CEF、Snort 规则、Ansible playbook 和
优先级修复工作流文档。
**模块 9 — 行为分析器**
检测恶意活动的迹象:可疑端口组合(IRC 端口、
Metasploit 端口 4444、后门端口 31337、Cobalt Strike 端口)、非标准
服务(规避指标)、过多开放端口(>20,可能存在跳板)、banner
异常(版本欺骗)。
**模块 10 — 持续监控器**
将扫描器封装在守护进程中。将每次运行与基准文件进行比对,并报告
仅新的发现、已解决的问题、新端口和风险分数差值。启动时首次运行,
然后按计划运行。
**模块 11 — 合规性检查器**
将发现映射到 PCI-DSS(1.1.6、1.2.1、2.1、4.1、
4.2.1、6.3.3、6.4.1、6.5.4、8.3.6)、NIST SP 800-53(CM-7、SC-7、SC-8、SC-23、
SI-2、RA-5、IA-5)和 ISO 27001(A.9、A.10、A.12、A.13、.14、A.18)中的特定控制 ID。
**模块 12 — 认证扫描器**
通过原始 socket 测试 FTP 的匿名登录和 5 个常见凭证对。
测试 Redis 未经认证的 PING 响应。测试 HTTP 端点的默认
Basic Auth 凭证以应对 401 质询。
**模块 13 — 分段验证器**
获取以逗号分隔的 CIDR 列表,并探测跨分段边界的 8 个敏感端口
(22、23、3389、445、3306、5432、6379、27017)。
任何可达性都是带有特定防火墙规则的 HIGH 分段违规
建议。
## 8. UI 功能指南
### 侧边栏
| 控件 | 描述 |
|---|---|
| Target | IP、主机名或 CIDR |
| Port Range | 21,22,443 或 1-1024 |
| Threads | 1-500,默认 100 |
| Port Scan | 核心发现模块 |
| SSL/TLS | 证书和密码审计 |
| DNS Enum | 子域名和记录扫描 |
| HTTP Audit | 标头和路径审计 |
| Auth Scan | 默认凭证测试 |
| Compliance | PCI-DSS / NIST / ISO 27001 / All |
| Segments | 用于分段检查的 CIDR |
### 结果标签页
| 标签页 | 内容 |
|---|---|
| Overview | 风险分数横幅 + 主要发现摘要 |
| Vulnerabilities | 所有发现及其 CVE、严重性、置信度 %、补丁指南、抑制按钮 |
| Ports | 每个主机的端口表及其服务、版本、banner |
| Behavioral | 异常发现(可疑端口、规避、过度暴露) |
| Compliance | 逐个控制项的 PASS/FAIL 及违规详情 |
| DNS | 记录类型、子域名、SPF/DMARC 状态 |
| HTTP | 安全标头检查清单,发现的敏感路径 |
| Segmentation | VLAN 间违规发现 |
### 抑制按钮
每个漏洞都有一个 Suppress 按钮。点击它会将发现的密钥写入
`.scan_suppress.json` 并在视觉上淡化发现。抑制的发现将在
未来的扫描中被静默跳过。
### 历史扫描
侧边栏列出了最近的 20 次扫描。点击任意一个即可完全重新加载 —
所有标签页重新填充,并且导出按钮重新激活。
## 9. CLI 参考
| 标志 | 默认值 | 描述 |
|---|---|---|
| --target | 必填 | IP、主机名或 CIDR |
| --ports | 常用集 | 22,80,443 或 1-1024 |
| --threads | 150 | 并发扫描线程 |
| --ssl | off | SSL/TLS 审计 |
| --dns | off | DNS 枚举 |
| --web | off | HTTP 安全扫描 |
| --auth | off | 默认凭证测试 |
| --full | off | 所有模块 + 所有输出 |
| --compliance | none | pci_dss / nist / iso27001 / all |
| --output | off | 保存 JSON + HTML + 修复报告 |
| --siem | off | 导出 CEF 文件 |
| --ids | off | 生成 Snort 规则文件 |
| --patch-report | off | 生成 Ansible playbook |
| --monitor | off | 持续监控守护进程 |
| --interval | 3600 | 监控间隔(以秒为单位) |
| --segments | none | 10.0.1.0/24,10.0.2.0/24 |
| --suppress-file | .scan_suppress.json | 抑制列表的路径 |
| --verbose | off | 调试级别输出 |
### 退出代码
| 代码 | 含义 |
|---|---|
| 0 | 风险等级为 LOW |
| 1 | 风险等级为 MEDIUM、HIGH 或 CRITICAL |
| 130 | 被 Ctrl+C 中断 |
使用退出代码 1 来阻止 CI/CD 部署:
```
python network_scanner.py --target 10.0.0.1 --full
if [ $? -ne 0 ]; then
echo "Security issues found — blocking deployment"
exit 1
fi
```
## 10. 导出格式
### JSON
完整的结构化扫描结果。每个发现都包含主机、端口、服务、严重程度、
CVE、描述、补丁指南、置信度分数和类别。兼容
SIEM 摄取、Jira 导入和自定义处理。
### HTML
自包含的深色主题报告。包含带元数据网格的执行摘要、
风险分数横幅、完整的漏洞表、合规性结果和原始扫描数据。
在任何浏览器中打开 — 无需服务器。
### SIEM CEF (Common Event Format)
每个发现一行。适用于 Splunk、Microsoft Sentinel、IBM QRadar、ArcSight。
每行包含源 IP、端口、应用、消息、补丁指南和置信度分数。
### Snort 规则
直接加载到 Snort 3 或 Suricata 中。规则涵盖:
- 到高风险端口的入站连接
- 易受攻击的 banner 签名
- 特定于 CVE 的 payload 模式
### Ansible Playbook
每个 CRITICAL/HIGH 发现对应一个任务。由 CVE ID 和严重性标记。首先运行
`ansible-playbook scan_remediate.yml -i inventory.ini --check` 进行试运行。
### 修复工作流
四轨优先行动计划:
- 轨道 1:CRITICAL — 24 小时 SLA
- 轨道 2:HIGH — 7 天 SLA
- 轨道 3:MEDIUM — 30 天 SLA
- 轨道 4:LOW — 下个周期
每个条目包括主机、CVE、描述、行动、负责人字段和状态复选框。
## 11. 可选工具与集成
这些不是运行 NetScan 所必需的,但能显著扩展其功能。
### 网络扫描
| 工具 | 安装 | 用途 |
|---|---|---|
| nmap | `apt install nmap` 或 brew install nmap | SYN 扫描、OS 指纹识别、NSE 脚本 |
| masscan | `apt install masscan` | 适用于大范围的极快端口扫描器 |
| python-nmap | `pip install python-nmap` | 用于 nmap 的 Python 包装器 |
```
# 在 Ubuntu/Debian 上安装 nmap
sudo apt install nmap
# 在 macOS 上安装
brew install nmap
# Python wrapper
pip install python-nmap
```
### SSL/TLS 深入分析
| 工具 | 安装 | 用途 |
|---|---|---|
| testssl.sh | `apt install testssl` | 全面的 TLS 测试:BEAST、POODLE、Heartbleed、CRIME |
| sslyze | `pip install sslyze` | Python 原生 TLS 分析器 |
| openssl | 预装 | 从 CLI 手动测试密码 |
```
# 综合 TLS 测试
testssl.sh https://192.168.1.1
# Python 原生
pip install sslyze
python -m sslyze 192.168.1.1:443
```
### 漏洞数据库源(保持 CVE 为最新)
| 来源 | URL |
|---|---|
| NVD (NIST) | https://nvd.nist.gov/vuln/data-feeds — JSON 源,每日更新 |
| CVE List | https://cve.mitre.org/data/downloads |
| OSV | https://osv.dev — 开源漏洞 API |
使用来自 NVD 的新数据扩展 network_scanner.py 中的 VULN_SIGNATURES:
```
import requests
r = requests.get("https://services.nvd.nist.gov/rest/json/cves/2.0?resultsPerPage=20")
for item in r.json()["vulnerabilities"]:
cve_id = item["cve"]["id"]
desc = item["cve"]["descriptions"][0]["value"]
# Add entry to VULN_SIGNATURES
```
### SIEM 平台
| 平台 | 如何摄取 CEF 输出 |
|---|---|
| Splunk | Settings > Data Inputs > Files and Directories > 指向 .cef 文件 |
| Microsoft Sentinel | 通过 Log Analytics 工作区自定义日志上传 |
| IBM QRadar | 通过 Log Source Management 原生支持 CEF |
| Elastic SIEM | 通过 Filebeat 将 JSON 导出到 Elasticsearch |
### IDS 集成
| 工具 | 安装 | 如何使用 |
|---|---|---|
| Snort 3 | snort.org | 将 .rules 文件复制到 /etc/snort/rules/local.rules |
| Suricata | `apt install suricata` | 兼容 Snort 的规则直接可用 |
```
# 使用 Snort 测试规则
snort -T -c /etc/snort/snort.conf -R scan_snort.rules
# 重新加载 Suricata 规则
suricatasc -c reload-rules
```
### 补丁管理
| 工具 | 安装 | 如何使用 |
|---|---|---|
| Ansible | `pip install ansible` | `ansible-playbook scan_remediate.yml -i hosts.ini` |
| Ansible AWX | github.com/ansible/awx | 导入并安排自动运行 |
```
pip install ansible
# 首先进行 Dry run
ansible-playbook scan_20250115_remediate.yml \
-i inventory.ini \
--tags critical \
--check
```
### 基于 SSH 的认证扫描(比模块 12 更深入)
```
pip install paramiko netmiko
```
使用 paramiko,您可以将模块 12 扩展为通过 SSH 登录主机并检查安装的
包版本与 CVE 数据库、运行中的服务配置以及
内核补丁状态。
### Web 应用程序扫描(模块 6 的补充)
| 工具 | 安装 | 用途 |
|---|---|---|
| OWASP ZAP | zaproxy.org | 完整的 Web 应用程序漏洞扫描器 |
| nikto | `apt install nikto` | Web 服务器漏洞扫描器 |
| wfuzz | `pip install wfuzz` | Web 模糊测试工具 |
```
# 针对 NetScan 发现的目标运行 nikto
nikto -h 192.168.1.1 -port 80,8080,8443
```
### 容器和云扫描
| 工具 | 用途 |
|---|---|
| Trivy (`apt install trivy`) | 容器镜像和 Kubernetes CVE 扫描 |
| AWS Inspector | 原生 AWS 漏洞评估 |
| Prowler (`pip install prowler`) | AWS / GCP / Azure 配置错误审计 |
```
# 扫描端口扫描期间发现的 Docker image
trivy image nginx:1.16.1
# 扫描 Kubernetes 集群
trivy k8s --report summary cluster
```
### 工单系统集成
NetScan JSON 输出直接映射到 Jira / ServiceNow 工单字段。
每个漏洞都具有与标准工单属性对应的主机、端口、服务、严重程度、CVE、描述和补丁
字段。
```
# 根据发现创建 Jira ticket(示例)
curl -X POST https://your-org.atlassian.net/rest/api/3/issue \
-H "Authorization: Basic $JIRA_TOKEN" \
-H "Content-Type: application/json" \
-d '{"fields":{"project":{"key":"SEC"},"summary":"[CRITICAL] CVE-2021-41773 on 192.168.1.1","issuetype":{"name":"Bug"},"priority":{"name":"Highest"}}}'
```
## 12. 故障排除
**未找到主机**
```
# 手动测试 ICMP
ping -c 1 192.168.1.1
# 如果 ICMP 被阻止,NetScan 会自动回退到 TCP probes
# 如果怀疑有 rate-limiting,请减少线程
python network_scanner.py --target 192.168.1.1 --threads 10
```
**DNS 模块未返回任何内容**
```
python3 -c "import dns.resolver; print(dns.resolver.resolve('google.com','A'))"
pip install --upgrade dnspython
```
**SSL 审计错误**
```
pip install --upgrade cryptography
python3 -c "import ssl; print(ssl.OPENSSL_VERSION)"
# 需要 OpenSSL 1.1+ 或 LibreSSL 3+
```
**HTTP 扫描器无结果**
```
pip install --upgrade requests
python3 -c "import requests; print(requests.get('http://httpbin.org/get').status_code)"
```
**Linux 上的 ICMP 权限错误**
```
# 选项 1:使用 sudo 运行(不适用于生产环境)
sudo python network_scanner.py --target 192.168.1.0/24
# 选项 2:授予 NET_RAW capability(更安全)
sudo setcap cap_net_raw+ep $(which python3)
```
**Flask 端口已被使用**
```
lsof -i :5000
python app.py --port 5001
```
## 13. 架构概述
```
netscan_full/
├── app.py Flask backend
│ ├── POST /api/scan/start spawns background thread per scan
│ ├── GET /api/scan/stream SSE stream (real-time events to browser)
│ ├── GET /api/report/... on-demand report generation and download
│ └── GET /api/scans scan history (last 20)
│
├── network_scanner.py 13-module scanner engine (2,372 lines)
│ ├── Module 1: HostDiscovery
│ ├── Module 2: PortScanner
│ ├── Module 3: VulnerabilityChecker CVE DB + confidence scoring
│ ├── Module 4: SSLAuditor
│ ├── Module 5: DNSEnumerator
│ ├── Module 6: HTTPScanner
│ ├── Module 7: RiskScorer
│ ├── Module 8: ReportGenerator 6 output formats
│ ├── Module 9: BehavioralAnalyzer
│ ├── Module 10: ContinuousMonitor
│ ├── Module 11: ComplianceChecker PCI-DSS, NIST, ISO 27001
│ ├── Module 12: AuthenticatedScanner
│ ├── Module 13: SegmentationVerifier
│ └── Orchestrator: NetworkSecurityScanner
│
├── templates/
│ └── index.html single-page UI (HTML/CSS/JS, no framework needed)
│
├── requirements.txt
├── README.md
├── .scan_suppress.json created on first suppress action
└── .scan_baseline.json created on first --monitor run
```
### 数据流
```
Browser
|
+-- POST /api/scan/start
| Flask spawns background thread: _run_scan()
| Each scanner module pushes events to queue.Queue
|
+-- GET /api/scan/stream/ (Server-Sent Events)
| Events stream to browser in real time
| Browser updates tabs as data arrives
|
+-- GET /api/report// (on demand)
ReportGenerator writes to tmp
Flask sends file to browser for download
```
*NetScan v3.0 — 网络安全扫描器项目摘要的完整实现。*
标签:Facebook API, Flask, Python, 云存储安全, 密码管理, 属性图, 插件系统, 无后门, 网络安全, 网络扫描, 逆向工具, 隐私保护