SysAdminDoc/Network_Security_Auditor

GitHub: SysAdminDoc/Network_Security_Auditor

一个基于PowerShell的Windows网络安全审计工具,自动化执行检查并生成合规报告,填补商业工具与简单脚本之间的空白。

Stars: 6 | Forks: 0

Network Security Auditor

Version License Platform

# 网络安全审计工具 这是一个单文件的 PowerShell 安全审计工具。它可在8个安全域内运行67项自动化检查,将发现的问题映射到7个合规框架和 MITRE ATT&CK,生成多层级报告,并与所有主流 RMM 平台集成以实现无人值守部署。 一个脚本。无需预装任何依赖。可在任何 Windows 机器上运行,从独立工作站到企业域控制器。 ![PowerShell](https://img.shields.io/badge/PowerShell-5.1+-blue?logo=powershell) ![Windows](https://img.shields.io/badge/Windows-10%2F11%2FServer-0078D4?logo=windows) ![Version](https://img.shields.io/badge/Version-4.1.0-brightgreen) ![License](https://img.shields.io/badge/License-MIT-green) image image ## 设计初衷 大多数安全审计工具要么是需要代理和基础设施的昂贵商业平台,要么是只能检查少量设置并将文本输出到控制台的简单脚本。对于需要进入任何环境(无论是5人的办公室、医疗诊所还是500个座位的企业)并在不到一小时内生成一份专业、有据可依的安全评估报告的IT专业人士来说,缺少介于两者之间的选择。 本工具填补了这一空白。它会自动检测环境,运行所有可能执行的检查,跳过不适用的项目,根据真实合规框架对结果进行评分,并生成适合高管、IT经理和技术人员的报告。它可以通过 RMM 静默运行以进行定期批量评估,也可以通过精美的 GUI 交互式地进行现场审计。 ## 快速开始 ### 下载 **[下载 NetworkSecurityAudit.ps1](https://github.com/SysAdminDoc/Network_Security_Auditor/releases/latest/download/NetworkSecurityAudit.ps1)** 或通过 PowerShell 下载(以管理员身份运行): ``` irm https://github.com/SysAdminDoc/Network_Security_Auditor/releases/latest/download/NetworkSecurityAudit.ps1 | iex ``` ### 交互模式(GUI) ``` # 右键 → 用 PowerShell 运行,或: .\NetworkSecurityAudit.ps1 ``` 工具会自动提升为管理员权限,检测您的环境(域/工作组/混合),并启动 GUI。点击 **扫描全部** 以运行所有适用的检查。 ### 无人值守模式(RMM / 计划任务) ``` # 完整扫描,所有导出,静默 .\NetworkSecurityAudit.ps1 -Silent -ScanProfile Full # 快速评估,仅生成执行报告 .\NetworkSecurityAudit.ps1 -Silent -ScanProfile Quick -ReportTier Executive # HIPAA 合规扫描,自定义输出路径 .\NetworkSecurityAudit.ps1 -Silent -ScanProfile HIPAA -OutputPath "C:\Reports\audit.html" # 完整扫描,包含所有导出格式 .\NetworkSecurityAudit.ps1 -Silent -ExportJSON -ExportCSV -ExportJSONL ``` ## 功能特性 ### 67 项自动化安全检查 每项检查都在具有超时保护的独立运行空间中运行。结果包括发现文本、证据收集、严重性评级和合规映射。
身份与访问 (10 项检查) | ID | 检查项 | 严重性 | |----|-------|----------| | IA01 | 特权组 + 委派 | 严重 | | IA02 | 服务账户 + Kerberoast 风险 | 严重 | | IA03 | MFA 覆盖范围 | 严重 | | IA04 | 已离职员工账户 | 严重 | | IA05 | 密码策略 | 高 | | IA06 | PAM / 特权访问 (LAPS) | 高 | | IA07 | 共享/通用账户 | 中 | | IA08 | 访客/供应商账户生命周期 | 中 | | IA09 | 条件访问 / 远程访问 | 中 | | IA10 | 陈旧/不活跃账户 (90天以上) | 高 |
终端安全 (10 项检查) | ID | 检查项 | 严重性 | |----|-------|----------| | EP01 | Defender / EDR 部署 + ASR 规则 | 严重 | | EP02 | BitLocker / 磁盘加密 | 严重 | | EP03 | SMB / 协议加固 (签名, NTLM, LLMNR) | 高 | | EP04 | 补丁合规性 | 高 | | EP05 | 本地管理员 / 权限提升路径 | 高 | | EP06 | 主机防火墙 + 攻击面 | 中 | | EP07 | 应用控制 + 宏策略 (AppLocker/WDAC) | 中 | | EP08 | 硬件安全 (VBS, Credential Guard, LSA, TPM, Secure Boot) | 高 | | EP09 | AutoRun / AutoPlay | 低 | | EP10 | 生命周期结束的操作系统 | 高 |
网络边界 (10 项检查) | ID | 检查项 | 严重性 | |----|-------|----------| | NP01 | 防火墙规则 (any/any, 陈旧, 过于宽泛) | 严重 | | NP02 | 开放端口 + 监听服务 | 严重 | | NP03 | VPN 配置 + 分裂隧道 | 高 | | NP04 | DNS 过滤配置 | 高 | | NP05 | 出站 / 出向过滤 | 高 | | NP06 | 陈旧防火墙规则 | 中 | | NP07 | IDS/IPS 存在性 + 签名 | 中 | | NP08 | TLS / 加密配置 (SCHANNEL) | 低 | | NP09 | NAT / 端口转发暴露 | 高 | | NP10 | 固件 / 软件版本状况 | 中 |
备份与恢复 (8 项检查) | ID | 检查项 | 严重性 | |----|-------|----------| | BR01 | 备份解决方案检测 (3-2-1 规则) | 严重 | | BR02 | 备份恢复测试证据 | 严重 | | BR03 | 不可变 / 气隙备份 | 严重 | | BR04 | RTO/RPO 文档 | 高 | | BR05 | 备份加密 | 高 | | BR06 | 备份监控 / 告警 | 高 | | BR07 | 灾难恢复计划 / 桌面演练 | 中 | | BR08 | 云/SaaS 备份 (M365, Google Workspace) | 中 |
日志与监控 (8 项检查) | ID | 检查项 | 严重性 | |----|-------|----------| | LM01 | DNS 查询日志记录 | 高 | | LM02 | 集中式日志记录 / SIEM | 高 | | LM03 | 审计策略 + PowerShell 日志记录 | 高 | | LM04 | 防火墙日志记录 + 保留策略 | 中 | | LM05 | 失败登录监控 | 中 | | LM06 | 文件完整性监控 | 中 | | LM07 | 日志保留 + 事件日志大小 (CIS 基准) | 中 | | LM08 | 安全告警 + 通知 | 高 |
网络架构 (7 项检查) | ID | 检查项 | 严重性 | |----|-------|----------| | NA01 | 网络分段 | 严重 | | NA02 | VLAN 分离 (用户/服务器/IoT/访客) | 高 | | NA03 | 无线安全 (WPA3/WPA2-Enterprise) | 高 | | NA04 | 网络文档 / 图表时效性 | 中 | | NA05 | 802.1X / NAC 部署 | 中 | | NA06 | 管理接口隔离 | 中 | | NA07 | 交换机端口安全 + 未使用端口管理 | 高 |
物理安全 (6 项检查) | ID | 检查项 | 严重性 | |----|-------|----------| | PS01 | 物理访问控制 + 屏幕锁定 | 高 | | PS02 | 访客签到 / 访问策略 | 中 | | PS03 | 摄像头 / 监控覆盖 | 中 | | PS04 | 清洁桌面 / 凭证暴露 | 中 | | PS05 | 网络接口 / 访客 VLAN 安全 | 低 | | PS06 | UPS / 电源保护 | 低 |
常见发现 (8 项检查) | ID | 检查项 | 严重性 | |----|-------|----------| | CF01 | 具有域管理员权限且密码弱的服务账户 | 严重 | | CF02 | 出站过滤缺失 | 严重 | | CF03 | 备份从未进行恢复测试 | 严重 | | CF04 | 已离职员工账户仍活跃 | 严重 | | CF05 | 开放文件共享 | 高 | | CF06 | 扁平网络(无分段) | 高 | | CF07 | 宽泛的本地管理员权限 | 高 | | CF08 | 无 DNS / 内容过滤 | 高 |
### 合规框架映射 每项检查都映射到8个框架中的一个或多个控制项: | 框架 | 标准 | 覆盖范围 | |-----------|----------|----------| | **CIS** | Controls v8.1 | 全部67项检查已映射 | | **NIST** | SP 800-171 Rev 3 | 全部67项检查已映射 | | **CMMC** | Level 2 (v2.0) | 全部67项检查已映射 | | **HIPAA** | Security Rule | ~45 项检查 | | **PCI-DSS** | v4.0.1 | ~48 项检查 | | **SOC 2** | Type II (Trust Criteria) | ~60 项检查 | | **ISO 27001** | :2022 (Annex A) | 全部67项检查已映射 | | **DISA STIG** | Windows Server/Client | 全部67项检查已映射 | 框架特定的扫描配置文件仅运行与该标准相关的检查。 ### MITRE ATT&CK 映射 所有67项检查都映射到 ATT&CK 企业技术(v15.1)并包含战术和技术 ID。HTML 报告包含一个可视化的热图,显示对 ATT&CK 矩阵的覆盖范围并识别差距。 ### CISA KEV 交叉参考 ### Active Directory IOC 检测 除了错误配置检查,该工具还能检测活跃的入侵指标: - **Golden Ticket 风险** — krbtgt 密码年龄监控(应每180天轮换一次) - **DCSync 权限** — 拥有“复制目录更改”权限的非标准账户 - **AdminSDHolder 篡改** — AdminSDHolder 容器上意外的 ACE - **SID History 滥用** — 拥有来自外部域的 SID History 的账户 - **ADCS 漏洞** — ESC1/ESC6/ESC8/ESC10 证书模板和 CA 错误配置 ### 域安全成熟度评分 - **特权访问** (30%) — 域管理员最小化、LAPS、Kerberoast 风险、服务账户 - **身份卫生** (25%) — 陈旧账户、密码策略、MFA、供应商生命周期 - **基础设施加固** (25%) — Credential Guard、SMB/TLS、EDR、补丁 - **可见性** (20%) — SIEM、审计策略、失败登录监控、IDS/IPS ### 勒索软件就绪性评分 一个专门的评分引擎评估跨四个领域的勒索软件抵御能力: - **预防** — EDR、AppLocker/WDAC、宏限制、出站过滤 - **防护** — Credential Guard、LSA 保护、BitLocker、本地管理员控制 - **检测** — IDS/IPS、SIEM、日志记录、告警 - **恢复** — 备份不可变性、恢复测试、灾难恢复规划、RTO/RPO 该分数产生一个独立的字母等级,与整体安全分数分开。 ### 加权风险评分 检查按严重性(严重=10,高=7,中=5,低=3)和类别重要性进行加权。加权分数产生一个总体字母等级: | 等级 | 分数 | 含义 | |-------|-------|---------| | A | 90-100% | 强大的安全态势 | | B | 80-89% | 良好,存在微小差距 | | C | 70-79% | 中等风险,需要行动 | | D | 60-69% | 存在显著差距 | | F | <60% | 严重风险 | ### 三层报告 每个 HTML 报告最多可包含三层,每层针对不同的受众: - **高管层** — 字母等级、风险摘要、前5项发现、勒索软件就绪性、合规状态。一页,无行话。 - **管理层** — 类别细分、修复路线图(包含优先级/工作量/时间线)、框架记分卡、趋势指标。 - **技术层** — 完整的发现及证据、每项检查的合规映射、MITRE 技术参考、修复步骤、扫描时间戳。 ### GUI 完整的 WPF 界面,包含: - **7 种深色主题** — Midnight(默认)、Slate、Nord、Dracula、Monokai、Solarized Dark、Catppuccin Mocha - **分类标签导航**,显示每个类别的扫描进度 - **每项检查的控件** — 状态下拉菜单、发现、证据、备注、修复任务分配/截止日期/状态 - **实时风险评分仪表板**,随着检查完成而更新 - **扫描前的连通性检查**(ping, WinRM, AD 模块, SMB, DNS, 权限提升, Defender) - **开箱即用的环境设置** — 自动安装 RSAT、配置 WinRM、设置审计策略 ### 无人值守 / 静默模式 专为 RMM 部署设计。`-Silent` 标志运行完整的扫描流程,无需任何交互: 1. 自动提升为管理员 2. 检测环境(域/工作组/独立) 3. 运行选定的扫描配置文件 4. 导出 HTML 报告 + 结构化数据 5. 将发现写入 RMM 平台字段 6. 返回退出码用于 RMM 告警 ### RMM 集成 自动平台检测和字段填充: | 平台 | 方法 | 字段 | |----------|--------|--------| | NinjaRMM | `Ninja-Property-Set` | 等级、分数、日期、发现、勒索软件、合规 | | Datto RMM | CentraStage UDF Registry | Custom1-5 | | ConnectWise Automate | LabTech EDF Registry | 等级、分数、日期、勒索软件、合规、报告路径 | | Syncro | `Set-SyncroCustomField` | SecurityAuditGrade、Score、Ransomware、Compliance | | HaloPSA | Registry Cache | 等级、分数、勒索软件、合规 | | 通用 | `HKLM:\SOFTWARE\NetworkSecurityAudit` | 所有字段(任何 RMM 均可读取) | ### 退出代码 | 代码 | 条件 | RMM 操作 | |------|-----------|------------| | 0 | A/B 等级,无严重失败 | 绿色 | | 1 | D/F 等级 **或** 勒索软件分数 < 40% | 立即告警 | | 2 | 存在发现,等级 C+ | 需要审查 | | 3 | 任何合规框架 < 60% | 合规告警 | ### 导出格式 | 格式 | 文件 | 用例 | |--------|------|----------| | HTML | `SecurityAudit_*.html` | 人类可读的报告,包含所有三层 | | JSON | `*_findings.json` | 每个发现的结构化数据,包含完整元数据 | | JSONL | `*_siem.jsonl` | 每个发现一个事件,适用于 Splunk/Elastic/Sentinel | | CSV | `*.csv` | 透视表分析,包含合规列 | | SARIF | `*.sarif` | 静态分析结果交换格式,适用于 GitHub/Azure DevOps | | PDF | `*.pdf` | 通过 Edge/Chrome 无头渲染生成的便携式报告 | | Intune | `*_intune.json` | 用于条件访问的设备合规发现脚本 | | 合规摘要 | `*_summary.json` | 紧凑的 RMM 仪表板负载 | ## 要求 - **PowerShell** 5.1+(随 Windows 10/11 和 Server 2016+ 提供) - **Windows** 10/11 或 Server 2016/2019/2022/2025 - **管理员** 权限提升(通过 UAC 自动提示) - **无需外部模块** — 脚本会处理一切 实现完整覆盖的可选条件: ## 参数 ``` -Silent Run headless (no GUI). Auto-scans, exports, exits. -ScanProfile Quick | Standard | Full | ADOnly | LocalOnly | HIPAA | PCI | CMMC | SOC2 | ISO27001 | STIG Default: Full (all 67 checks) -OutputPath Report output path. Default: Desktop -ReportTier Executive | Management | Technical | All Default: All -ReadOnly Safety mode - skip system-modifying checks. Default: $true -Client Client name for report header. Default: domain name or computer name -Auditor Auditor name for report header. Default: current username -ExportJSON Also export structured findings JSON -ExportCSV Also export CSV -ExportJSONL Also export SIEM-format JSONL -ExportSARIF Also export SARIF 2.1.0 for GitHub/Azure DevOps -ExportPDF Also export PDF via Edge/Chrome headless ``` ## 扫描配置文件 | 配置文件 | 检查数 | 时间 | 用例 | |---------|--------|------|----------| | **快速** | ~20 | ~15 分钟 | 仅关键项的现场分类 | | **标准** | ~45 | ~30 分钟 | 常规评估 | | **完整** | 67 | ~60 分钟 | 全面审计 | | **仅AD** | ~12 | ~10 分钟 | 仅域相关检查 | | **仅本地** | ~55 | ~45 分钟 | 仅端点(无需 AD) | | **HIPAA** | ~45 | ~30 分钟 | 医疗健康合规 | | **PCI** | ~48 | ~35 分钟 | 支付卡合规 | | **CMMC** | 67 | ~60 分钟 | 国防承包商合规 | | **SOC 2** | ~60 | ~50 分钟 | 服务组织合规 | | **ISO 27001** | 67 | ~60 分钟 | 国际标准合规 | | **STIG** | 67 | ~60 分钟 | 适用于国防部/政府的 DISA STIG | ## RMM 部署示例 ### NinjaRMM ``` # 添加为脚本化条件或定时自动化任务 powershell.exe -ExecutionPolicy Bypass -File "C:\Tools\NetworkSecurityAudit.ps1" -Silent -ScanProfile Standard # 结果将自动显示在设备自定义字段中 ``` ### Datto RMM ``` # 组件脚本 — 结果写入 UDF Custom1-5 powershell.exe -NoProfile -ExecutionPolicy Bypass -File "C:\Tools\NetworkSecurityAudit.ps1" -Silent -ScanProfile Quick -ReportTier Executive ``` ### ConnectWise Automate ``` # 脚本 — 结果写入 EDF 注册表项 powershell.exe -NoProfile -ExecutionPolicy Bypass -File "C:\Tools\NetworkSecurityAudit.ps1" -Silent -ExportJSON -ExportCSV # 监控退出码:0=绿色,1=严重,2=警告,3=合规失败 ``` ### 计划任务(任何环境) ``` # 每周安全态势检查 $action = New-ScheduledTaskAction -Execute "powershell.exe" -Argument "-NoProfile -ExecutionPolicy Bypass -File C:\Tools\NetworkSecurityAudit.ps1 -Silent -ScanProfile Standard -OutputPath C:\Reports" $trigger = New-ScheduledTaskTrigger -Weekly -DaysOfWeek Monday -At 6am Register-ScheduledTask -TaskName "WeeklySecurityAudit" -Action $action -Trigger $trigger -RunLevel Highest -User "SYSTEM" ``` ## 评分机制 ### 整体安全分数 67项检查中的每一项都有一个严重性权重(严重=10,高=7,中=5,低=3)。每个类别也有一个反映其相对重要性的权重。分数计算方式如下: ``` Per-category: (earned points / max points) * 100 Overall: weighted average across all categories ``` 通过 = 满分,部分通过 = 一半分数,失败 = 零,不适用 = 从计算中排除。 ### 勒索软件就绪性 一个单独的100分量表评估特定的勒索软件防御能力,映射到四领域模型(预防、防护、检测、恢复)。这会产生一个独立的等级——一个环境可能在整体上得分良好,但如果备份和恢复控制薄弱,在勒索软件就绪性上可能得分较低。 ### 合规评分 每个框架配置文件定义了哪些检查映射到哪些控制项。分数表示通过或部分通过的适用控制项的百分比。 ## 保存 / 加载 / 差异比较 审计状态(所有检查状态、发现、证据、备注、修复跟踪)可以保存为 JSON 并稍后重新加载。这使得: - 跨会话暂停和恢复审计 - 比较两个审计快照以显示随时间改进的情况 - 建立安全态势的历史记录 ## 项目结构 这是一个设计上的单文件工具。一个 `.ps1` 文件,无模块,无配置文件,无构建过程。下载并运行即可。 ``` NetworkSecurityAudit.ps1 # The entire tool (~8,900 lines) README.md # This file ``` ## 许可证 MIT ## 致谢 使用 PowerShell 5.1、WPF 以及阅读 CIS 基准、NIST 出版物和 RMM API 文档的大量时间构建而成。
标签:AI合规, Cloudflare, IPv6, IT安全, Libemu, MITRE ATT&CK, PowerShell, RMM集成, 专业报告, 企业安全, 单文件工具, 反取证, 合规映射, 合规框架, 多层报告, 头部署, 安全域, 安全扫描, 安全评估, 快速部署, 数字取证, 无依赖, 时序注入, 网络安全, 网络资产管理, 脚本工具, 自动化检查, 自动化脚本, 跨环境兼容, 远程管理, 隐私保护