
HardeningKitty - يفحص ويقوي تكوين Windows الخاص بك
هذا هو الإصدار المستقر من HardeningKitty من مشروع تحصين ويندوز بواسطة Michael Schneider. الإصدار المستقر من HardeningKitty موقّع بشهادة توقيع الكود من scip AG. نظرًا لأن هذا هو الإصدار المستقر، فإننا لا نقبل طلبات السحب في هذا المستودع، يرجى إرسالها إلى مستودع التطوير.
يدعم HardeningKitty تحصين نظام ويندوز. يتم استرداد تكوين النظام وتقييمه باستخدام قائمة النتائج. بالإضافة إلى ذلك، يمكن تحصين النظام وفقًا لقيم محددة مسبقًا. يقرأ 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
لمزيد من المعلومات، راجع مقالة مايكروسوفت تثبيت وحدة 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
### النسخ الاحتياطي
النسخ الاحتياطي مهم. مهم حقًا. لذلك، لدى HardeningKitty أيضًا وظيفة لاسترجاع الإعدادات الحالية وحفظها في شكل يمكن استعادته جزئيًا.
**تنبيه:** يحاول HardeningKitty استعادة الإعدادات الأصلية. يعمل هذا بشكل جيد مع مفاتيح التسجيل، ويبذل Hardening Kitty قصارى جهده. لكن وظيفة النسخ الاحتياطي ليست لقطة نظام ولا تحل محل نسخة احتياطية حقيقية للنظام. ليس من الممكن استعادة النظام بنسبة 1:1 باستخدام HardeningKitty وحده بعد HailMary. إذا كان هذا مطلوبًا، فأنشئ صورة أو نسخة احتياطية للنظام واستعدها.
يحدد مفتاح _Backup_ أن الملف يُكتب في شكل قائمة نتائج وبالتالي يمكن استخدامه لوضع _HailMary_. يمكن تحديد اسم ومسار النسخة الاحتياطية باستخدام المعلمة _BackupFile_.```powershell
Invoke-HardeningKitty -Mode Config -Backup
يرجى اختبار هذه الوظيفة للتأكد من أنها تعمل بشكل صحيح على النظام الهدف قبل إجراء أي تغييرات جادة. إن النسخة الاحتياطية على طريقة شرودنغر خطيرة.
لاحظ أنه إذا لم يتم تحديد -FileFindingList، فسيتم إحالة النسخة الاحتياطية إلى قائمة النتائج الافتراضية. قبل نشر قائمة محددة في وضع HailMary، قم دائمًا بإنشاء نسخة احتياطية مُحالة إلى تلك القائمة المحددة.```powershell Invoke-HardeningKitty -Mode Config -Backup -BackupFile ".\myBackup.csv" -FileFindingList ".\list{list}.csv"
#### استعادة نسخة احتياطية