Skip to content
KitploitKITPLOIT
工具博客
Log in
提交
工具博客
提交

黑客、渗透测试和网络安全工具,武装您的安全武器库!

Kitploit 是一个黑客、网络安全和渗透测试工具的目录。发现最新的项目更新,查找漏洞、分析系统、自动化测试并加强你的安全。

··订阅源·联系·隐私·© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
windows_hardening — HardeningKitty 与 Windows 加固设置 | Kitploit
工具/GitHubGitHub/0x6d69636b/windows_hardening
防御工具配置审计错误配置
GitHub0x6d69636b/windows_hardening

windows_hardening

HardeningKitty 与 Windows 加固设置

查看仓库
2.6k328301个月前Kitploit 审核通过

最受欢迎

查看全部 →

发现我们社区最常用的工具。

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

HardeningKitty 与 Windows 加固

简介

该项目最初只是一个针对 Windows 10 的简单加固清单。一段时间后,HardeningKitty 被创建出来,以简化 Windows 的加固过程。如今,HardeningKitty 支持来自 Microsoft、CIS Benchmarks、DoD STIG 和 BSI SiSyPHuS Win10 的指南。当然,还有我自己的加固清单。

这是一份加固检查清单,可用于个人和企业环境中对 Windows 10 进行加固。该检查清单可用于所有 Windows 版本,但在 Windows 10 家庭版中未集成组策略编辑器,必须直接在注册表中进行调整。为此,HardeningKitty 提供了 HailMary 模式。

这些设置应被视为安全和隐私方面的建议,并应仔细检查它们是否会影响您的基础设施运行或影响关键功能的可用性。在安全性和可用性之间进行权衡非常重要。

该项目最初是为 Windows 10 创建一份简单的加固检查清单。随着 HardeningKitty 的开发,重点已转向对各种知名框架/基准的审计。同时,支持多种 CIS 基准和 Microsoft 安全基线。随着 HailMary 模式的开发,也将能够在 Windows 系统上应用任何加固检查清单中的设置。

HardeningKitty

HardeningKitty 支持对 Windows 系统进行加固。系统配置通过发现列表进行检索和评估。此外,系统还可以根据预定义的值进行加固。HardeningKitty 从注册表读取设置,并使用其他模块读取注册表之外的配置。

该脚本是为英文系统开发的。在其他语言环境下,分析结果可能不正确。如果出现这种情况,请创建一个 issue。

签名版本

HardeningKitty 的开发在此仓库中进行。在 scip AG 的仓库 中有一个 HardeningKitty 的稳定版本,已使用 scip AG 的代码签名证书进行签名。这意味着 HardeningKitty 也可以在仅允许签名脚本的系统上运行。

如何运行

以管理员权限运行脚本以访问计算机设置。对于用户设置,最好使用普通用户账户执行。理想情况下,使用日常工作的用户账户。

下载 HardeningKitty 并将其复制到目标系统(脚本和列表)。然后可以导入并执行 HardeningKitty:```powershell PS C:\tmp> Import-Module .\HardeningKitty.psm1 PS C:\tmp> Invoke-HardeningKitty -EmojiSupport

     =^._.^=
    _(      )/  HardeningKitty 0.9.0-1662273740

[*] 9/4/2022 8:54:12 AM - Starting HardeningKitty

[] 9/4/2022 8:54:12 AM - Getting user information [] Hostname: DESKTOP-DG83TOD [*] Domain: WORKGROUP

...

[] [] 9/4/2022 8:54:12 AM - Starting Category Account Policies [😺] ID 1103, Store passwords using reversible encryption, Result=0, Severity=Passed [😺] ID 1100, Account lockout threshold, Result=10, Severity=Passed [😺] ID 1101, Account lockout duration, Result=30, Severity=Passed

...

[*] 9/4/2022 8:54:12 AM - Starting Category User Rights Assignment [😿] ID 1200, Access this computer from the network, Result=BUILTIN\Administrators;BUILTIN\Users, Recommended=BUILTIN\Administrators, Severity=Medium

...

[*] 9/4/2022 8:54:14 AM - Starting Category Administrative Templates: Printer [🙀] ID 1764, Point and Print Restrictions: When installing drivers for a new connection (CVE-2021-34527), Result=1, Recommended=0, Severity=High [🙀] ID 1765, Point and Print Restrictions: When updating drivers for an existing connection (CVE-2021-34527), Result=2, Recommended=0, Severity=High

...

[*] 9/4/2022 8:54:19 AM - Starting Category MS Security Guide [😿] ID 2200, LSA Protection, Result=, Recommended=1, Severity=Medium [😼] ID 2201, Lsass.exe audit mode, Result=, Recommended=8, Severity=Low

...

[] 9/4/2022 8:54:25 AM - HardeningKitty is done [] 9/4/2022 8:54:25 AM - Your HardeningKitty score is: 4.82. HardeningKitty Statistics: Total checks: 325 - Passed: 213, Low: 33, Medium: 76, High: 3.

### 如何安装

首先创建目录 *HardeningKitty*,并在 *PSModulePath* 环境变量所列出的路径中,为每个版本创建一个子目录,例如 *0.9.3*。

将模块 *HardeningKitty.psm1*、*HardeningKitty.psd1* 以及 *lists* 目录复制到这个新目录中。```powershell
PS C:\tmp> $Version = "0.9.3"
PS C:\tmp> New-Item -Path $Env:ProgramFiles\WindowsPowerShell\Modules\HardeningKitty\$Version -ItemType Directory
PS C:\tmp> Copy-Item -Path .\HardeningKitty.psd1,.\HardeningKitty.psm1,.\lists\ -Destination $Env:ProgramFiles\WindowsPowerShell\Modules\HardeningKitty\$Version\ -Recurse

更多信息请参阅 Microsoft 的文章 安装 PowerShell 模块。

如何自动下载并安装最新版本

您可以使用以下脚本下载并安装 HardeningKitty 的最新版本。```powershell Function InstallHardeningKitty() { $Version = (((Invoke-WebRequest "https://api.github.com/repos/0x6d69636b/windows_hardening/releases/latest" -UseBasicParsing) | ConvertFrom-Json).Name).SubString(2) $HardeningKittyLatestVersionDownloadLink = ((Invoke-WebRequest "https://api.github.com/repos/0x6d69636b/windows_hardening/releases/latest" -UseBasicParsing) | ConvertFrom-Json).zipball_url $ProgressPreference = 'SilentlyContinue' Invoke-WebRequest $HardeningKittyLatestVersionDownloadLink -Out HardeningKitty$Version.zip Expand-Archive -Path ".\HardeningKitty$Version.zip" -Destination ".\HardeningKitty$Version" -Force $Folder = Get-ChildItem .\HardeningKitty$Version | Select-Object Name -ExpandProperty Name Move-Item ".\HardeningKitty$Version$Folder*" ".\HardeningKitty$Version" Remove-Item ".\HardeningKitty$Version$Folder" New-Item -Path $Env:ProgramFiles\WindowsPowerShell\Modules\HardeningKitty$Version -ItemType Directory Set-Location .\HardeningKitty$Version Copy-Item -Path .\HardeningKitty.psd1,.\HardeningKitty.psm1,.\lists\ -Destination $Env:ProgramFiles\WindowsPowerShell\Modules\HardeningKitty$Version\ -Recurse Import-Module "$Env:ProgramFiles\WindowsPowerShell\Modules\HardeningKitty$Version\HardeningKitty.psm1" } InstallHardeningKitty

### 示例

#### 审计

默认模式为 _audit_。HardeningKitty 执行审计,将结果保存到 CSV 文件并创建日志文件。文件会自动命名并带有时间戳。使用参数 _ReportFile_ 或 _LogFile_,也可以指定自定义的名称和路径。

_Filter_ 参数可用于筛选加固列表。为此,必须使用 PowerShell ScriptBlock 语法,例如 `{ $_.ID -eq 4505 }`。以下元素可用于筛选:ID、Category、Name、Method 和 Severity。```powershell
Invoke-HardeningKitty -Mode Audit -Log -Report

HardeningKitty 可以通过参数 FileFindingList 定义的特定列表来执行。如果在同一系统上多次运行 HardeningKitty,隐藏机器信息可能会很有用。参数 SkipMachineInformation 就是用于此目的。```powershell Invoke-HardeningKitty -FileFindingList .\lists\finding_list_0x6d69636b_user.csv -SkipMachineInformation

HardeningKitty 使用默认列表,并且仅检查严重性为 Medium 的测试。```powershell
Invoke-HardeningKitty -Filter { $_.Severity -eq "Medium" }

Config

config 模式会检索系统的所有当前设置。如果某项设置尚未配置,HardeningKitty 将使用存储在发现列表中的默认值。此模式可与其他功能结合使用,例如创建备份。

HardeningKitty 获取当前设置并将其存储在报告中:```powershell Invoke-HardeningKitty -Mode Config -Report -ReportFile C:\tmp\my_hardeningkitty_report.csv

#### 备份

备份非常重要。真的非常重要。因此,HardeningKitty 也提供了一个功能,用于检索当前配置并以可部分恢复的形式保存。

**免责声明:** HardeningKitty 会尝试恢复原始配置。这在注册表项方面效果相当不错,Hardening Kitty 确实会尽力而为。但备份功能并非快照,也不能替代真正的系统备份。在 HailMary 之后,仅靠 HardeningKitty 无法将系统 1:1 还原。如果需要做到这一点,请创建镜像或系统备份并进行恢复。

_Backup_ 开关指定文件以发现列表的形式写入,因此可用于 _HailMary_ 模式。备份的名称和路径可通过参数 _BackupFile_ 指定。```powershell
Invoke-HardeningKitty -Mode Config -Backup

请在目标系统上测试此函数,确认其确实能正常工作后再进行任何重大更改。薛定谔式的备份是危险的。

非默认查找列表

请注意,如果未指定 -FileFindingList,备份将引用默认查找列表。在 HailMary 模式下部署_特定_列表之前,请始终创建一个_引用该特定列表_的备份。```powershell Invoke-HardeningKitty -Mode Config -Backup -BackupFile ".\myBackup.csv" -FileFindingList ".\list{list}.csv"

##### 恢复备份

_Backup_ 开关会创建一个发现列表形式的文件,要恢复备份,请像加载任何发现列表一样在 _HailMary_ 模式下加载它:```powershell
Invoke-HardeningKitty -Mode HailMary -Log -Report -FileFindingList ".\myBackup.csv"

HailMary

HailMary 方法非常强大。它可用于在系统上部署发现项列表。所有发现项都会按照列表中的建议在该系统上设置。能力越大,责任越大。请仅在您清楚自己在做什么的情况下使用此模式。请务必对系统进行备份。

目前,过滤功能仅在 Audit 和 Config 模式下受支持。由于 HailMary 模式是一件需要谨慎处理的事情,请创建您自己的文件并删除所有您想要过滤的行。```powershell Invoke-HardeningKitty -Mode HailMary -Log -Report -FileFindingList .\lists\finding_list_0x6d69636b_machine.csv

在运行 HailMary 之前,必须选择一个发现列表。检查设置是否对系统的稳定性和功能有影响非常重要。在运行 HailMary 之前,应进行备份。

#### 创建组策略(实验性)

感谢 [@gderybel](https://github.com/gderybel),HardeningKitty 可以将发现列表转换为组策略。基本要求是必须安装 Group Policy Management PowerShell 模块。目前只能转换注册表设置,且并非所有内容都已测试。将创建一个新策略,只要未将其分配给对象,就不会对系统进行任何更改。请谨慎使用。```powershell
Invoke-HardeningKitty -Mode GPO -FileFindingList .\lists\finding_list_0x6d69636b_machine.csv -GPOName HardeningKitty-Machine-01

查找列表完整性

在写入模式(HailMary 和 GPO)中,查找列表完全控制应用到系统的内容。为确保列表在传递给操作员的过程中未被篡改(例如被投毒的仓库、共享基线、下载或通过电子邮件发送的“运行此列表”),HardeningKitty 可以验证列表是否为维护者发布的真实且未经修改的版本。

官方列表由随附在 lists\ 目录中的签名清单进行认证:

  • lists\hardeningkitty_lists_manifest.psd1 - 一个可读文件,将每个官方列表映射到其 SHA-256 哈希值
  • lists\hardeningkitty_lists_manifest.psd1.p7s - 对该清单的分离签名,使用维护者证书创建

在运行时,HardeningKitty 验证分离签名,并检查签名者的证书是否与模块中固定的指纹($HardeningKittyListSigningThumbprint)匹配。它还会将加载列表的哈希值与清单进行比较。哈希值在签名清单中的列表为官方 / 已验证。任何其他列表为自定义 / 未验证。这是来源验证,而非允许列表——完全支持自定义列表。

按模式的行为:

下载工具