이것은 Michael Schneider의 Windows Hardening Project의 Hardeningkitty 의 안정적인 버전입니다. Hardeningkitty 의 안정적인 버전에는 SCIP AG 의 코드 서명 인증서가 서명되었습니다. 이것은 안정적인 버전 이므로이 repo에서 풀 요청을 허용하지 않으므로 개발 저장소로 보내주십시오 .
HardeningKitty는 Windows 시스템의 경화를 지원합니다. 시스템 구성을 검색하고 찾은 목록을 사용하여 평가합니다. 또한, 사전 정의 된 값에 따라 시스템을 강화 할 수 있습니다. HardeningKitty는 레지스트리에서 설정을 읽고 다른 모듈을 사용하여 레지스트리 밖에서 구성을 읽습니다.
이 대본은 영어 시스템을 위해 개발되었습니다. 다른 언어에서는 분석이 잘못되었을 수 있습니다. 이 문제가 발생하면 문제를 만드십시오.
기계 설정에 액세스하기 위해 관리 권한으로 스크립트를 실행하십시오. 사용자 설정의 경우 일반 사용자 계정으로 실행하는 것이 좋습니다. 이상적으로는 사용자 계정이 일상적인 작업에 사용됩니다.
HardeningKitty를 다운로드하여 대상 시스템 (스크립트 및 목록)에 복사하십시오. 그런 다음 HardeningKitty를 수입하고 실행할 수 있습니다.
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 = BUILTINAdministrators;BUILTINUsers , Recommended = BUILTINAdministrators , 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.2 와 같은 서브 디렉토리를 작성하십시오.
모듈 HardeningKitty.psm1 , HardeningKitty.psd1 및 목록 디렉토리를이 새 디렉토리에 복사하십시오.
PS C:tmp > $Version = " 0.9.2 "
PS C:tmp > New-Item - Path $ Env: ProgramFiles WindowsPowerShellModulesHardeningKitty $Version - ItemType Directory
PS C:tmp > Copy-Item - Path .HardeningKitty.psd1 , .HardeningKitty.psm1 , .lists - Destination $ Env: ProgramFiles WindowsPowerShellModulesHardeningKitty $Version - Recurse자세한 내용은 PowerShell 모듈을 설치하는 Microsoft 기사를 참조하십시오.
아래 스크립트를 사용하여 Hardeningkitty 의 최신 릴리스를 다운로드하여 설치할 수 있습니다.
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 WindowsPowerShellModulesHardeningKitty $Version - ItemType Directory
Set-Location .HardeningKitty $Version
Copy-Item - Path .HardeningKitty.psd1 , .HardeningKitty.psm1 , .lists - Destination $ Env: ProgramFiles WindowsPowerShellModulesHardeningKitty $Version - Recurse
Import-Module " $ Env: ProgramFiles WindowsPowerShellModulesHardeningKitty $Version HardeningKitty.psm1 "
}
InstallHardeningKitty기본 모드는 감사 입니다. HardeningKitty는 감사를 수행하고 결과를 CSV 파일에 저장하고 로그 파일을 만듭니다. 파일은 자동으로 명명되고 타임 스탬프를받습니다. Parameters reportFile 또는 Logfile을 사용하면 자신의 이름과 경로를 할당 할 수도 있습니다.
필터 매개 변수를 사용하여 경화 목록을 필터링 할 수 있습니다. 이를 위해 PowerShell ScriptBlock 구문을 사용해야합니다 (예 : { $_.ID -eq 4505 } . 다음 요소는 필터링에 유용합니다 : ID, 카테고리, 이름, 메소드 및 심각도.
Invoke-HardeningKitty - Mode Audit - Log - ReportHardeningKitty는 Parameter FilefindingList 로 정의 된 특정 목록으로 실행할 수 있습니다. HardeningKitty가 동일한 시스템에서 여러 번 실행되면 기계 정보를 숨기는 것이 유용 할 수 있습니다. SkipMachineInformation 매개 변수는이 목적으로 사용됩니다.
Invoke-HardeningKitty - FileFindingList .listsfinding_list_0x6d69636b_user.csv - SkipMachineInformationHardeningKitty는 기본 목록을 사용하고 심각도 매체에서만 테스트 만 확인합니다.
Invoke-HardeningKitty - Filter { $_ .Severity -eq " Medium " }모드 구성은 시스템의 모든 현재 설정을 검색합니다. 설정이 구성되지 않은 경우 HardeningKitty는 찾기 목록에 저장된 기본값을 사용합니다. 이 모드는 다른 기능과 결합하여 백업을 생성 할 수 있습니다.
HardeningKitty는 현재 설정을 가져 와서 보고서에 저장합니다.
Invoke-HardeningKitty - Mode Config - Report - ReportFile C:tmpmy_hardeningkitty_report.csv백업이 중요합니다. 정말 중요합니다. 따라서 HardeningKitty는 또한 현재 구성을 검색하고 부분적으로 복원 할 수있는 양식으로 저장하는 기능이 있습니다.
면책 조항 : Hardeningkitty는 원래 구성을 복원하려고합니다. 이것은 Registry Keys와 매우 잘 작동하며 Kitty Hicty는 실제로 최선을 다합니다. 그러나 백업 기능은 스냅 샷이 아니며 실제 시스템 백업을 대체하지 않습니다. Hailmary 이후 Hardeningkitty만으로 시스템 1 : 1을 복원하는 것은 불가능합니다. 이것이 요구 사항 인 경우 이미지 또는 시스템 백업을 만들어 복원하십시오.
백업 스위치는 파일이 찾기 목록의 형태로 작성되어 Hailmary 모드에 사용할 수 있음을 지정합니다. 백업의 이름과 경로는 매개 변수 백업 으로 지정할 수 있습니다.
Invoke-HardeningKitty - Mode Config - Backup이 기능을 테스트하여 심각한 변경을 수행하기 전에 대상 시스템에서 실제로 제대로 작동하는지 확인하십시오. Schrödinger의 백업은 위험합니다.
-fileFindingList가 지정되지 않은 경우 백업은 기본 찾기 목록을 참조합니다. Hailmary 모드에서 특정 목록을 배포하기 전에 항상 해당 목록을 참조하는 백업을 만듭니다.
Invoke-HardeningKitty - Mode Config - Backup - BackupFile " .myBackup.csv " - FileFindingList " .list{list}.csv " 백업 스위치는 찾기 목록의 형태로 파일을 생성하여 백업을 복원하여 찾은 목록과 같이 Hailmary 모드로로드합니다.
Invoke-HardeningKitty - Mode HailMary - Log - Report - FileFindingList " .myBackup.csv " Hailmary 방법은 매우 강력합니다. 시스템에서 찾기 목록을 배포하는 데 사용할 수 있습니다. 모든 결과는 목록에 권장되는 대로이 시스템에서 설정됩니다. 권력과 함께 책임이 온다. 당신이하고있는 일을 알고있는 경우에만이 모드를 사용하십시오. 시스템의 백업이 있어야합니다.
현재 필터 기능은 감사 및 구성 모드에서만 지원됩니다. Hailmary 모드는 섬세한 물질이므로 자신의 파일을 만들고 필터링하려는 모든 줄을 제거하십시오.
Invoke-HardeningKitty - Mode HailMary - Log - Report - FileFindingList .listsfinding_list_0x6d69636b_machine.csvHailmary가 실행되기 전에 찾기 목록을 선택해야합니다. 설정이 시스템의 안정성과 기능에 영향을 미치는지 확인하는 것이 중요합니다. Hailmary를 실행하기 전에 백업을해야합니다.
@gderybel 덕분에 Hardeningkitty는 찾기 목록을 그룹 정책으로 변환 할 수 있습니다. 기본 요구 사항으로 Group Policy Management PowerShell 모듈을 설치해야합니다. 현재 레지스트리 설정 만 변환 할 수 있으며 모든 것이 아직 테스트되지는 않았습니다. 객체에 할당되지 않는 한 새로운 정책이 생성되며 시스템에 변경되지 않습니다. 조심스럽게 사용하십시오.
Invoke-HardeningKitty - Mode GPO - FileFindingList .listsfinding_list_0x6d69636b_machine.csv - GPOName HardeningKitty - Machine - 01 통과 된 각각의 발견은 4 점을 제공하고, 낮은 발견은 2 점을, 중간 발견은 1 점을 제공하고 높은 결과는 0 점을줍니다.
Hardeningkitty 점수의 공식은 (점수 / 최대 점) * 5 + 1 입니다.
| 점수 | 캐주얼 등급 | 평가 전문가 |
|---|---|---|
| 6 | ? 훌륭한 | 훌륭한 |
| 5 | ? 잘하셨어요 | 좋은 |
| 4 | ? 충분한 | 충분한 |
| 3 | ? 당신은 더 잘해야합니다 | 불충분합니다 |
| 2 | ? 약한 | 불충분합니다 |
| 1 | ? 가짜 | 불충분합니다 |
Ataumo는 Hardeningkitty를위한 웹 기반 인터페이스를 구축합니다. 이 도구는 자신의 목록을 작성하는 데 사용될 수 있으며 경화 설정에 대한 추가 정보를 제공 할 수 있습니다. 소스 코드는 AGPL 라이센스에 따라 있으며 데모 사이트가 있습니다.
HardeningKitty는 다음 기준 / 벤치 마크에 대해 시스템을 감사하는 데 사용될 수 있습니다.
| 이름 | 시스템 버전 | 버전 |
|---|---|---|
| 0x6d69636b Windows 10 (기계) | 22H2 | |
| 0x6d69636b Windows 10 (사용자) | 22H2 | |
| BSI Sisyphus Windows 10 Hoher Schutzbedarf Domänenmitglied (기계) | 1809 | 1.0 |
| BSI Sisyphus Windows 10 Hoher Schutzbedarf Domänenmitglied (사용자) | 1809 | 1.0 |
| BSI Sisyphus Wind | 1809 | 1.0 |
| BSI Sisyphus Wind | 1809 | 1.0 |
| BSI Sisyphus Windows 10 정상 Schutzbedarf Einzelrechner (기계) | 1809 | 1.0 |
| BSI Sisyphus Windows 10 정상 Schutzbedarf Einzelrechner (사용자) | 1809 | 1.0 |
| CIS Microsoft Windows 10 Enterprise (Machine) | 1809 | 1.6.1 |
| CIS Microsoft Windows 10 엔터프라이즈 (사용자) | 1809 | 1.6.1 |
| CIS Microsoft Windows 10 Enterprise (Machine) | 1903 | 1.7.1 |
| CIS Microsoft Windows 10 엔터프라이즈 (사용자) | 1903 | 1.7.1 |
| CIS Microsoft Windows 10 Enterprise (Machine) | 1909 | 1.8.1 |
| CIS Microsoft Windows 10 엔터프라이즈 (사용자) | 1909 | 1.8.1 |
| CIS Microsoft Windows 10 Enterprise (Machine) | 2004 | 1.9.1 |
| CIS Microsoft Windows 10 엔터프라이즈 (사용자) | 2004 | 1.9.1 |
| CIS Microsoft Windows 10 Enterprise (Machine) | 20H2 | 1.10.1 |
| CIS Microsoft Windows 10 엔터프라이즈 (사용자) | 20H2 | 1.10.1 |
| CIS Microsoft Windows 10 Enterprise (Machine) | 21H1 | 1.11.0 |
| CIS Microsoft Windows 10 엔터프라이즈 (사용자) | 21H1 | 1.11.0 |
| CIS Microsoft Windows 10 Enterprise (Machine) | 21H2 | 1.12.0 |
| CIS Microsoft Windows 10 엔터프라이즈 (사용자) | 21H2 | 1.12.0 |
| CIS Microsoft Windows 10 Enterprise (Machine) | 22H2 | 2.0.0 |
| CIS Microsoft Windows 10 엔터프라이즈 (사용자) | 22H2 | 2.0.0 |
| CIS Microsoft Windows 10 Enterprise (Machine) | 22H2 | 3.0.0 |
| CIS Microsoft Windows 10 엔터프라이즈 (사용자) | 22H2 | 3.0.0 |
| CIS Microsoft Windows 11 엔터프라이즈 (기계) | 21H2 | 1.0.0 |
| CIS Microsoft Windows 11 엔터프라이즈 (사용자) | 21H2 | 1.0.0 |
| CIS Microsoft Windows 11 엔터프라이즈 (기계) | 22H2 | 2.0.0 |
| CIS Microsoft Windows 11 엔터프라이즈 (사용자) | 22H2 | 2.0.0 |
| CIS Microsoft Windows 11 엔터프라이즈 (기계) | 23H2 | 3.0.0 |
| CIS Microsoft Windows 11 엔터프라이즈 (사용자) | 23H2 | 3.0.0 |
| CIS Microsoft Windows Server 2012 R2 (기계) | R2 | 2.4.0 |
| CIS Microsoft Windows Server 2012 R2 (사용자) | R2 | 2.4.0 |
| CIS Microsoft Windows Server 2012 R2 (기계) | R2 | 2.6.0 |
| CIS Microsoft Windows Server 2012 R2 (사용자) | R2 | 2.6.0 |
| CIS Microsoft Windows Server 2012 R2 (기계) | R2 | 3.0.0 |
| CIS Microsoft Windows Server 2012 R2 (사용자) | R2 | 3.0.0 |
| CIS Microsoft Windows Server 2016 (기계) | 1607 | 1.2.0 |
| CIS Microsoft Windows Server 2016 (사용자) | 1607 | 1.2.0 |
| CIS Microsoft Windows Server 2016 (기계) | 1607 | 1.3.0 |
| CIS Microsoft Windows Server 2016 (사용자) | 1607 | 1.3.0 |
| CIS Microsoft Windows Server 2016 (기계) | 1607 | 2.0.0 |
| CIS Microsoft Windows Server 2016 (사용자) | 1607 | 2.0.0 |
| CIS Microsoft Windows Server 2016 (기계) | 1607 | 3.0.0 |
| CIS Microsoft Windows Server 2016 (사용자) | 1607 | 3.0.0 |
| CIS Microsoft Windows Server 2019 (기계) | 1809 | 1.1.0 |
| CIS Microsoft Windows Server 2019 (사용자) | 1809 | 1.1.0 |
| CIS Microsoft Windows Server 2019 (기계) | 1809 | 1.2.1 |
| CIS Microsoft Windows Server 2019 (사용자) | 1809 | 1.2.1 |
| CIS Microsoft Windows Server 2019 (기계) | 1809 | 2.0.0 |
| CIS Microsoft Windows Server 2019 (사용자) | 1809 | 2.0.0 |
| CIS Microsoft Windows Server 2019 (기계) | 1809 | 3.0.0 |
| CIS Microsoft Windows Server 2019 (사용자) | 1809 | 3.0.0 |
| CIS Microsoft Windows Server 2022 (기계) | 21H2 | 1.0.0 |
| CIS Microsoft Windows Server 2022 (사용자) | 21H2 | 1.0.0 |
| CIS Microsoft Windows Server 2022 (기계) | 22H2 | 2.0.0 |
| CIS Microsoft Windows Server 2022 (사용자) | 22H2 | 2.0.0 |
| CIS Microsoft Windows Server 2022 (기계) | 22H2 | 3.0.0 |
| CIS Microsoft Windows Server 2022 (사용자) | 22H2 | 3.0.0 |
| DoD Microsoft Windows 10 STIG (기계) | 20H2 | v2r1 |
| DoD Microsoft Windows 10 STIG (사용자) | 20H2 | v2r1 |
| DoD Windows Server 2019 도메인 컨트롤러 스티그 (기계) | 20H2 | v2r1 |
| DoD Windows Server 2019 도메인 컨트롤러 스티그 (사용자) | 20H2 | v2r1 |
| DoD Windows Server 2019 멤버 서버 스틱 (머신) | 20H2 | v2r1 |
| DoD Windows Server 2019 멤버 서버 스틱 (사용자) | 20H2 | v2r1 |
| DoD Windows Defender Antivirus stig | 20H2 | v2r1 |
| DoD Windows 방화벽 스티그 | 20H2 | V1R7 |
| Microsoft Edge 용 Microsoft 보안 기준선 | 87 | 결정적인 |
| Microsoft Edge 용 Microsoft 보안 기준선 | 88, 89, 90, 91 | 결정적인 |
| Microsoft Edge 용 Microsoft 보안 기준선 | 92 | 결정적인 |
| Microsoft Edge 용 Microsoft 보안 기준선 | 93, 94 | 결정적인 |
| Microsoft Edge 용 Microsoft 보안 기준선 | 95 | 결정적인 |
| Microsoft Edge 용 Microsoft 보안 기준선 | 96 | 결정적인 |
| Microsoft Edge 용 Microsoft 보안 기준선 | 97 | 결정적인 |
| Microsoft Edge 용 Microsoft 보안 기준선 | 98, 99, 100, 101, 102, 103, 104, 105, 106 | 결정적인 |
| Microsoft Edge 용 Microsoft 보안 기준선 | 107, 108, 109, 110, 111 | 결정적인 |
| Microsoft Edge 용 Microsoft 보안 기준선 | 112, 113 | 결정적인 |
| Microsoft Edge 용 Microsoft 보안 기준선 | 114, 115, 116 | 결정적인 |
| Microsoft Edge 용 Microsoft 보안 기준선 | 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127 | 결정적인 |
| Microsoft Edge 용 Microsoft 보안 기준선 | 128, 129, 130 | 결정적인 |
| Windows 10의 Microsoft 보안 기준선 | 2004 | 결정적인 |
| Windows 10의 Microsoft 보안 기준선 | 20H2, 21H1 | 결정적인 |
| Windows 10의 Microsoft 보안 기준선 | 21H2 | 결정적인 |
| Windows 10 용 Microsoft Security Baseline (기계) | 22H2 | 결정적인 |
| Windows 10 용 Microsoft 보안 기준 (사용자) | 22H2 | 결정적인 |
| Windows 11의 Microsoft 보안 기준선 | 21H2 | 결정적인 |
| Windows 11 용 Microsoft Security Baseline (Machine) | 22H2 | 결정적인 |
| Windows 11 용 Microsoft 보안 기준 (사용자) | 22H2 | 결정적인 |
| Windows 11 용 Microsoft Security Baseline (Machine) | 23H2 | 결정적인 |
| Windows 11 용 Microsoft 보안 기준 (사용자) | 23H2 | 결정적인 |
| Windows 11 용 Microsoft Security Baseline (Machine) | 24H2 | 결정적인 |
| Windows 11 용 Microsoft 보안 기준 (사용자) | 24H2 | 결정적인 |
| Windows Server (DC) 용 Microsoft 보안 기준선 | 2004 | 결정적인 |
| Windows Server 용 Microsoft Security Baseline (회원) | 2004 | 결정적인 |
| Windows Server (DC) 용 Microsoft 보안 기준선 | 20H2 | 결정적인 |
| Windows Server 용 Microsoft Security Baseline (회원) | 20H2 | 결정적인 |
| Windows Server 2022 (DC) 용 Microsoft 보안 기준선 | 21H2 | 결정적인 |
| Windows Server 2022 (회원) 용 Microsoft 보안 기준선 | 21H2 | 결정적인 |
| Office 365 Proplus (기계) 용 Microsoft 보안 기준선 | 2019 년 9 월 | 결정적인 |
| Office 365 Proplus (사용자) 용 Microsoft 보안 기준선 | 2019 년 9 월 | 결정적인 |
| Microsoft 365 Enterprise (Machine) 용 Microsoft 보안 기준선 | v2104, v2106 | 결정적인 |
| Microsoft 365 Enterprise 용 Microsoft 보안 기준선 (사용자) | v2104, v2106 | 결정적인 |
| Microsoft 365 Enterprise (Machine) 용 Microsoft 보안 기준선 | v2112 | 결정적인 |
| Microsoft 365 Enterprise 용 Microsoft 보안 기준선 (사용자) | v2112 | 결정적인 |
| Microsoft 365 Enterprise (Machine) 용 Microsoft 보안 기준선 | v2206 | 결정적인 |
| Microsoft 365 Enterprise 용 Microsoft 보안 기준선 (사용자) | v2206 | 결정적인 |
| Microsoft 365 Enterprise (Machine) 용 Microsoft 보안 기준선 | v2306, v2312 | 결정적인 |
| Microsoft 365 Enterprise 용 Microsoft 보안 기준선 (사용자) | v2306, v2312 | 결정적인 |
| Microsoft Windows Server TLS 설정 | 1809 | 1.0 |
| Microsoft Windows Server TLS 설정 (TLSV1.3과의 향후 사용) | 1903 | 1.0 |