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

# 网络安全审计工具
这是一个单文件的 PowerShell 安全审计工具。它可在8个安全域内运行67项自动化检查,将发现的问题映射到7个合规框架和 MITRE ATT&CK,生成多层级报告,并与所有主流 RMM 平台集成以实现无人值守部署。
一个脚本。无需预装任何依赖。可在任何 Windows 机器上运行,从独立工作站到企业域控制器。





## 设计初衷
大多数安全审计工具要么是需要代理和基础设施的昂贵商业平台,要么是只能检查少量设置并将文本输出到控制台的简单脚本。对于需要进入任何环境(无论是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集成, 专业报告, 企业安全, 单文件工具, 反取证, 合规映射, 合规框架, 多层报告, 头部署, 安全域, 安全扫描, 安全评估, 快速部署, 数字取证, 无依赖, 时序注入, 网络安全, 网络资产管理, 脚本工具, 自动化检查, 自动化脚本, 跨环境兼容, 远程管理, 隐私保护