
HardeningKitty — проверяет и усиливает вашу конфигурацию Windows
Это стабильная версия HardeningKitty из проекта Windows Hardening от Michael Schneider. Стабильная версия HardeningKitty подписана сертификатом подписи кода scip AG. Поскольку это стабильная версия, мы не принимаем pull request'ы в этом репозитории; пожалуйста, отправляйте их в репозиторий разработки.
HardeningKitty позволяет выполнять укрепление системы Windows. Конфигурация системы собирается и оценивается с использованием списка находок. Кроме того, система может быть укреплена в соответствии с заданными значениями. HardeningKitty считывает настройки из реестра, а для чтения конфигураций за пределами реестра используются другие модули.
Скрипт разработан для англоязычных систем. Возможно, что на других языках анализ будет некорректным. Пожалуйста, создайте issue, если это произойдёт.
Запускайте скрипт с правами администратора для доступа к настройкам компьютера. Пользовательские настройки лучше выполнять из-под обычной учётной записи. В идеале эта учётная запись должна использоваться для повседневной работы.
Скачайте 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* и для каждой версии подкаталог вида *0.9.3* в пути, указанном в переменной окружения *PSModulePath*.
Скопируйте модуль *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 получает все текущие настройки системы. Если параметр не был настроен, HardeningKitty использует значение по умолчанию, хранящееся в списке проверок. Этот режим можно комбинировать с другими функциями, например для создания резервной копии.
HardeningKitty получает текущие настройки и сохраняет их в отчёт:```powershell Invoke-HardeningKitty -Mode Config -Report -ReportFile C:\tmp\my_hardeningkitty_report.csv
### Backup
Резервное копирование важно. Очень важно. Поэтому HardeningKitty также имеет функцию получения текущей конфигурации и сохранения её в форме, которая может быть частично восстановлена.
**Отказ от ответственности:** HardeningKitty пытается восстановить исходную конфигурацию. Это довольно хорошо работает с ключами реестра, и Hardening Kitty действительно старается изо всех сил. Но функция резервного копирования не является снимком системы и не заменяет настоящее резервное копирование. После HailMary невозможно восстановить систему 1:1 с помощью одного лишь HardeningKitty. Если это требование, создайте образ или резервную копию системы и восстановите её.