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, 云存储安全, 密码管理, 属性图, 插件系统, 无后门, 网络安全, 网络扫描, 逆向工具, 隐私保护