cdburgess75/ShellKnight

GitHub: cdburgess75/ShellKnight

一款企业级 PowerShell 端点安全修复工具,通过 8 个引擎自动清除 PUP、恶意软件持久化机制并进行安全加固与合规评估。

Stars: 1 | Forks: 0

企业端点安全与修复工具

PowerShell v1.05 Windows Datto MIT

自动化移除 PUP、浏览器劫持程序、广告软件及恶意软件持久化机制。
专为 MSP、IT 管理员和安全专业人员构建。
## 什么是 ShellKnight? ShellKnight 是一款完全静默、无界面的 PowerShell 端点修复工具,专为 MSP 和 RMM 部署而设计。它运行 8 个智能引擎,涵盖从 PUP 移除和恶意软件 IOC 检测到强化检查、合规性评估和安全分级等所有内容——整个过程无需任何用户交互。 由 **ParaTech LLC** 构建和维护。 ShellKnight 是 **[Fortress AI](https://github.com/cdburgess75/ShellKnight)** 平台的一个组件——这是一个正在构建的完整 MSP 管理技术栈,旨在取代 Datto RMM + Datto EDR。 ## 目录 1. [功能](#features) 2. [引擎概述](#engine-overview) 3. [快速开始](#quick-start) 4. [配置](#configuration) 5. [输出与报告](#output--reporting) 6. [评分系统](#grading-system) 7. [RMM 部署](#rmm-deployment) 8. [系统要求](#requirements) 9. [版本历史](#version-history) ## 功能 - **8 引擎模块化修复流水线** - 从 [Neo23x0/signature-base](https://github.com/Neo23x0/signature-base) 动态下载 IOC - 支持 API key 的 MalwareBazaar SHA256 哈希查询 - 多层 AV/EDR 检测 — Datto AV、Huntress EDR、Windows Defender、COMODO、N-able 等 - 远程访问工具全面清点 — ScreenConnect(所有实例)、TeamViewer、AnyDesk、MeshAgent 等 - 针对在勒索软件攻击链中被积极利用的工具提供 **[RISKWARE-RAT]** 分类 - 包含差异报告(与上次运行进行比较)的 A–F 安全与性能评分 - 检测到医疗保健软件时进行 HIPAA 技术保障措施评估 - 检测到执法软件时进行 CJIS 合规性检查 - CIS Benchmark Lite (Level 1) — 每次运行检查 9 项关键控制 - PowerShell 脚本块日志记录 — 启用 4104 审计并扫描混淆行为 - Windows Defender 威胁历史记录,并在检测到 IOC 时自动进行快速扫描 - 引擎进度指示器 — 实时显示每个引擎的运行时间 - 过时配置文件检测,支持安全的可选自动删除 - 非活动账户自动禁用,具有可配置的阈值和服务器保护 - 基于存在时间的临时文件清理 — 仅删除早于可配置阈值的文件 - 大型文件查找器 — 标记 Outlook OST/PST 问题、ISO 文件、意外的大型文件 - SMBv1、LLMNR、NetBIOS、NLA — 检测并支持可选的自动修复 - ScreenConnect 流氓实例检测与移除 - 每次运行生成 JSON 输出,便于进行全舰队趋势追踪 - 零依赖 — 纯 PowerShell 编写,无需外部模块 - 兼容 PowerShell 3.0 – 7.x ## 引擎概述 ShellKnight 依次运行 8 个引擎。每个引擎均可独立配置启用/禁用。 | 引擎 | 名称 | 功能描述 | |--------|------|--------------| | 1 | Intel Engine | 从 Neo23x0 下载最新的哈希、文件名和 C2 IOC。离线时回退到硬编码的 IOC。 | | 2 | Assessment Engine | 机器基线 — 硬件、OS、正常运行时间、域、AV/EDR 检测、BitLocker、CVE 检查 | | 3 | Hardening Engine | 密码策略、RDP/NLA、SMBv1、LLMNR、NetBIOS、防火墙、本地管理员审计、进程审计 | | 4 | Process Engine | 终止恶意软件进程、移除恶意服务、移除恶意计划任务 | | 5 | Persistence Engine | Run/RunOnce 注册表键、启动文件夹、WMI 订阅、浏览器策略、Defender 排除项 | | 6 | Filesystem Engine | 临时文件/缓存清理、浏览器扩展移除、PUA 注册表键、过时配置文件报告、大文件查找器 | | 7 | Detection Engine | 木马/RAT IOC 扫描、RiskWare 检测、MalwareBazaar 哈希查询、hosts 文件、勒索软件金丝雀、网络连接、远程访问清单 | | 8 | Reporting Engine | Windows Update 名称、趋势追踪、事件日志 IOC 检查 (7045)、USB 审计、近期软件、HIPAA/CJIS/CIS 合规性、Defender 历史记录 | ## 快速开始 **直接从 GitHub 运行 — 粘贴到提升权限的 PowerShell 命令提示符中:** ``` Set-ExecutionPolicy Bypass -Scope Process -Force; $f="$env:TEMP\ShellKnight.ps1"; irm https://raw.githubusercontent.com/cdburgess75/ShellKnight/main/ShellKnight.ps1 -OutFile $f; & $f ``` **或者如果已经保存在磁盘上:** ``` # 以 Administrator 身份运行 Set-ExecutionPolicy Bypass -Scope Process -Force .\ShellKnight.ps1 ``` 输出将写入: - **日志:** `C:\ProgramData\ShellKnight\Logs\ShellKnight_YYYY-MM-DD_HHMM.log` - **JSON:** `C:\ProgramData\ShellKnight\JSON\ShellKnight_YYYY-MM-DD_HHMM_HOSTNAME.json` ## 配置 所有配置都位于脚本顶部,位于标记清晰的各个部分中。无需外部配置文件。 ``` # --- EMAIL 警报 --- $SK_Email_Enabled = $false $SK_Email_Server = 'smtp.office365.com' # --- MALWAREBAZAAR --- $SK_MalwareBazaar_Enabled = $true $SK_MalwareBazaar_ApiKey = 'your-api-key-here' # --- 扫描深度 --- $SK_ScanDepth = 'Standard' # Standard, Deep, Compliance # --- 加固选项 --- $SK_DisableSMBv1 = $false # Auto-disable SMBv1 when found $SK_DisableLLMNR = $false # Disable LLMNR via registry $SK_EnforceRDP_NLA = $false # Enforce NLA on RDP $SK_DisableNetBIOS = $false # Disable NetBIOS on all adapters # --- 账户管理 --- $SK_AutoDisableInactiveAccounts = $false # Auto-disable inactive accounts $SK_AutoDisableThresholdDays = 547 # 18 months default $SK_AutoDisableOnServers = $false # Never auto-disable on servers # --- 过期配置文件删除 --- $SK_DeleteStaleProfiles = $false # Auto-delete stale profiles $SK_DeleteStaleProfileDays = 1095 # 3 years default # --- SCREENCONNECT --- $SK_ScreenConnect_InstanceID = '' # Your managed SC instance ID $SK_RemoveRogueScreenConnect = $true # Remove non-matching AppData instances ``` ## 输出与报告 ### 屏幕输出 | 标签 | 颜色 | 含义 | |-----|-------|---------| | `[SUCCESS]` | 绿色 | 操作成功完成 | | `[WARN]` | 黄色 | 需要注意,未采取行动 | | `[FAILED]` | 红色 | 尝试了操作但失败 | | `[IOC]` | 品红色 | 入侵指标 — 需要分析师审查 | | `[HARDEN]` | 青色 | 已应用强化操作 | | `[RISKWARE-RAT]` | 品红色 | 在勒索软件攻击链中被利用的远程访问工具 | ### 退出代码 | 代码 | 含义 | |------|---------| | 0 | 干净 — 未发现问题 | | 1 | 错误或操作失败 | | 2 | 存在 IOC 警报 — 需要分析师审查 | ## 评分系统 ShellKnight 为安全性和性能分配 A–F 评级。 ### 安全性评级扣分 | 发现项 | 扣分 | |---------|-----------| | 发现 IOC | 每项 -15(最多 -50) | | 未检测到 AV | -25 | | Defender 被禁用 | -20 | | OS 已停止支持 | -20 | | 启用了 SMBv1 | -20 | | BitLocker 关闭 | -15 | | Windows Update 过时 | -15 | | 无 NLA 的 RDP | -15 | | 密码最短长度为 0 | -20 | | 密码少于 8 位 | -10 | | 密码少于 12 位 | -5 | ### 性能评级扣分 | 发现项 | 扣分 | |---------|-----------| | 磁盘可用空间 < 5 GB | -40 | | 磁盘可用空间 < 10 GB | -25 | | RAM < 4 GB | -30 | | 运行时间 > 60 天 | -20 | | 电脑使用年限 > 5 年 | -15 | ## RMM 部署 ### Datto RMM / CentraStage 使用以下内容创建一个 PowerShell Component: ``` Set-ExecutionPolicy Bypass -Scope Process -Force; $f="$env:TEMP\ShellKnight.ps1"; irm https://raw.githubusercontent.com/cdburgess75/ShellKnight/main/ShellKnight.ps1 -OutFile $f; & $f ``` - 运行身份:`SYSTEM` - 捕获 stdout 以供报告审查 - 在退出代码为 `2`(存在 IOC)时发出警报 该 Component 在每次运行时都会从 GitHub 下载最新版本到 `%TEMP%`,因此全舰队范围内的更新是即时的——无需重新上传组件。 ShellKnight 完全静默且无界面——无需用户交互,没有弹窗,也不会自动触发重启。 ## 系统要求 - Windows 7 / Server 2008 R2 或更高版本 - PowerShell 3.0 或更高版本 - 管理员 / SYSTEM 权限 - 需要互联网连接以下载 Intel Engine IOC(如果不可用则回退到硬编码的 IOC) ## 版本历史 | 版本 | 日期 | 亮点 | |---------|------|------------| | v1.05 | 2026 年 5 月 | 全舰队反馈批次 — NVDisplay CIM 回退、SMBv1 任务白名单、挖掘程序模式词边界修复、Datto EDR/HP 打印机 Event 7045 白名单、IOC 计数器修复、Domain Admins 抑制、系统配置文件排除、注册表扫描优化 | | v1.04 | 2026 年 5 月 | 误报修复:Intel IOC 文件名匹配现在会在终止前进行路径检查——合法的系统/供应商二进制文件(例如 NVIDIA)不再被标记 | | v1.03 | 2026 年 5 月 | PS 3.0/4.0 兼容性(`::new()` → `New-Object`)、`??` 操作符修复、ErrorActionPreference 稳定化、Phase 6 null 保护 | | v1.02 | 2026 年 5 月 | Log-Fail 计数器修复、远程访问匹配修复、屏幕上的执行摘要 | | v1.01 | 2026 年 5 月 | 从头开始的 8 引擎重写 — Intel、Assessment、Hardening、Process、Persistence、Filesystem、Detection、Reporting | | v0.79 | 2026 年 5 月 | Phase 进度指示器、CIS Benchmark Lite、启动影响分类 | | v0.78 | 2026 年 5 月 | Defender 集成、PS 脚本块审计、magic bytes 审计、HIPAA/CJIS 检查、WU 名称 | | v0.77 | 2026 年 5 月 | 风险差异报告、大型文件查找器、浏览器凭据检查、N-able 检测、HIPAA/可接受使用 | | v0.76 | 2026 年 5 月 | SMBv1/LLMNR/NLA/NetBIOS 自动修复、MBSetup/PCDr 白名单、COMODO 检测 | | v0.75 | 2026 年 5 月 | RiskWare 检测 (GameHack/CoinMiner/Dell CVE)、SC AppData 扫描、31 个新的 PUA 目标 | | v0.74 | 2026 年 5 月 | 强化操作分离、过时配置文件删除、基于存在时间的临时文件清理、评分改进 | | v0.73 | 2026 年 5 月 | 账户自动禁用、14 个新的 PUA 目标、勒索软件/hosts/配置文件白名单 | | v0.72 | 2026 年 5 月 | 扫描深度框架、低磁盘故障保护、Phases 22-28、性能上限 | | v0.71 | 2026 年 5 月 | AV 去重、Dell CPM WMI 白名单、简化页眉、INFO 从屏幕隐藏 | | v0.70 | 2026 年 5 月 | 路径重构、MalwareBazaar Auth-Key、Datto AV 服务名称修复 | | v0.69 | 2026 年 5 月 | 文件顶部配置、email/syslog 联调、PUA 扩展、前后摘要 | | v0.68 | 2026 年 5 月 | ShellKnight 重命名、全面健康评估、A-F 评级、JSON 输出 | 完整更新日志:[CHANGELOG.md](CHANGELOG.md) ## 作者 **C. David Burgess** ⭐ 如果 ShellKnight 帮助您保持了机器的整洁,请给这个仓库点个 Star!
标签:AI合规, IPv6, Libemu, OpenCanary, PowerShell, 企业安全, 子域名枚举, 恶意软件清理, 系统安全, 终端安全, 网络资产管理, 自动化运维