
HardeningKitty - आपके Windows कॉन्फ़िगरेशन की जाँच और हार्डनिंग करता है
यह Michael Schneider द्वारा Windows Hardening Project से HardeningKitty का स्थिर संस्करण है। HardeningKitty का स्थिर संस्करण scip AG के कोड साइनिंग प्रमाणपत्र से हस्ताक्षरित है। चूँकि यह स्थिर संस्करण है, हम इस रिपॉजिटरी में पुल रिक्वेस्ट स्वीकार नहीं करते हैं, कृपया उन्हें डेवलपमेंट रिपॉजिटरी पर भेजें.
HardeningKitty Windows सिस्टम की हार्डनिंग का समर्थन करता है। सिस्टम का कॉन्फ़िगरेशन एक finding list का उपयोग करके प्राप्त और मूल्यांकित किया जाता है। इसके अलावा, सिस्टम को पूर्वनिर्धारित मानों के अनुसार हार्डन किया जा सकता है। HardeningKitty रजिस्ट्री से सेटिंग्स पढ़ता है और रजिस्ट्री के बाहर के कॉन्फ़िगरेशन पढ़ने के लिए अन्य मॉड्यूल का उपयोग करता है।
यह स्क्रिप्ट अंग्रेज़ी सिस्टम के लिए विकसित की गई थी। यह संभव है कि अन्य भाषाओं में विश्लेषण गलत हो। यदि ऐसा होता है, तो कृपया एक issue बनाएँ।
मशीन सेटिंग्स तक पहुँचने के लिए स्क्रिप्ट को प्रशासनिक विशेषाधिकारों के साथ चलाएँ। उपयोगकर्ता सेटिंग्स के लिए उन्हें सामान्य उपयोगकर्ता खाते के साथ निष्पादित करना बेहतर है। आदर्श रूप से, उपयोगकर्ता खाते का उपयोग दैनिक कार्य के लिए किया जाता है।
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=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 का लेख देखें [Installing a PowerShell Module](https://docs.microsoft.com/en-us/powershell/scripting/developer/module/installing-a-powershell-module)।
## नवीनतम रिलीज़ को स्वचालित रूप से डाउनलोड और इंस्टॉल कैसे करें
आप *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 डिफ़ॉल्ट सूची का उपयोग करता है, और केवल मध्यम गंभीरता वाले परीक्षणों की जाँच करता है।```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 पुनर्स्थापित करना संभव नहीं है। यदि यह एक आवश्यकता है, तो एक इमेज या सिस्टम बैकअप बनाकर उसे पुनर्स्थापित करें।