
مجموعة أدوات AD CS لمسؤولي AD ومتخصصي الأمن الدفاعي وفِرَق الفريق الأحمر الوقحة

Locksmith 2 هي وحدة PowerShell شاملة لتدقيق البنية التحتية لخدمات شهادات Active Directory (AD CS). تحدد حالات سوء التكوين الأمني عبر قوالب الشهادات وسلطات إصدار الشهادات وكائنات البنية التحتية لـ PKI استنادًا إلى تقنيات ESC (التصعيد) المعتمدة.
صُممت Locksmith 2 لمسؤولي AD ومتخصصي الأمن ومختبري الاختراق، وتوفر:
تمثل Locksmith 2 الجيل التالي في سلسلة Locksmith من أدوات AD CS الأمنية مفتوحة المصدر، حيث تحسّن على النسخة الأصلية بتنظيم أفضل للكود وتقارير معززة وتحليل أعمق للمخاطر.
Install-Module -Name Locksmith2 -Scope CurrentUser -Force
git clone https://github.com/jakehildreth/Locksmith2.git
cd Locksmith2
Import-Module .\Locksmith2.psd1
Invoke-Locksmith2
New-LS2Dashboard
| التقنية | الوصف | الكائنات المستهدفة | التقنيات الفرعية |
|---|---|---|---|
| ESC1 | قوالب الشهادات المُهيأة بشكل خاطئ | القوالب | — |
| ESC2 | إساءة استخدام SubCA للشهادات | القوالب | — |
| ESC3 | قيود وكيل التسجيل | القوالب | ESC3c1, ESC3c2 |
| ESC4 | التحكم في الوصول القابل للاستغلال | القوالب | ESC4a (ACL), ESC4o (owner) |
| ESC5 | التحكم في الوصول لكائنات PKI القابل للاستغلال | كائنات البنية التحتية | ESC5a (ACL), ESC5o (owner) |
| ESC6 | تمكين EDITF_ATTRIBUTESUBJECTALTNAME2 | سلطات الشهادات (CAs) | — |
| ESC7 | أدوار مسؤول/مدير CA القابلة للاستغلال | سلطات الشهادات (CAs) | ESC7a (admin), ESC7m (manager) |
| ESC8 | نقاط نهاية التسجيل عبر الويب القابلة للاستغلال | سلطات الشهادات (CAs) | — |
| ESC9 | تعيينات الشهادات الضعيفة | القوالب | — |
| ESC11 | غياب تشفير RPC | سلطات الشهادات (CAs) | — |
| ESC13 | سياسة تطبيق OID المرتبطة بالمجموعة | القوالب | — |
| ESC16 | تعطيل امتدادات أمان CRL/AIA | سلطات الشهادات (CAs) | — |
للحصول على معلومات مفصلة حول تقنيات ESC، راجع Certified Pre-Owned من SpecterOps.
Invoke-Locksmith2ينفذ تدقيقًا أمنيًا شاملًا لـ AD CS بحثًا عن جميع ثغرات ESC المعروفة.
Invoke-Locksmith2 [-Forest <String>] [-Credential <PSCredential>] [-Mode <Int>]
[-SkipVersionCheck] [-SkipPowerShellCheck]
[-ExpandGroups] [-Rescan]
# -Mode values:
# (omit) = return LS2Issue objects to the pipeline (default)
# 0 = Emulates Mode 0/no parameters from the original Locksmith: output issues to console as table
# 1 = Emulates Mode 1 from the original Locksmith: output issues + fix scripts to console as list
Find-LS2VulnerableTemplateيفحص قوالب الشهادات بحثًا عن ثغرات ESC محددة.
Find-LS2VulnerableTemplate -Technique <String>
# Supported: ESC1, ESC2, ESC3c1, ESC3c2, ESC4a, ESC4o, ESC9, ESC13
يُعيد: كائنات LS2Issue للاستخدام البرمجي
Find-LS2VulnerableCAيفحص سلطات إصدار الشهادات بحثًا عن مشكلات في التكوين وتعيينات أدوار خطرة.
Find-LS2VulnerableCA -Technique <String>
# Supported: ESC6, ESC7a, ESC7m, ESC8, ESC11, ESC16
يُعيد: كائنات LS2Issue للاستخدام البرمجي
Find-LS2VulnerableObjectيفحص كائنات البنية التحتية PKI (الحاويات، حسابات الكمبيوتر) بحثًا عن مشكلات أمنية.
Find-LS2VulnerableObject -Technique <String>
# Supported: ESC5a, ESC5o
يُرجع: كائنات LS2Issue للاستخدام البرمجي
Get-LS2Storesيُرجع مخازن البيانات الداخلية التي تم تعبئتها أثناء عمليات التدقيق للفحص والتحليل.
Get-LS2Stores [-Name <String>]
# Valid -Name values: PrincipalStore, AdcsObjectStore, DomainStore, IssueStore,
# SafePrincipals, DangerousPrincipals, StandardOwners
# Omit -Name to return all stores.
يعيد:
Set-LS2Forestيعيّن الغابة المستهدفة للفحص. مفيد لتشغيل عمليات فحص متعددة أو استخدام دوال Find-LS2Vulnerable* بشكل مستقل.
Set-LS2Forest -Forest <String>
Set-LS2Credentialيعيّن بيانات الاعتماد لاستعلامات AD. مفيد لتشغيل عمليات فحص متعددة أو استخدام دوال Find-LS2Vulnerable* بشكل مستقل.
Set-LS2Credential -Credential <PSCredential>
Find-LS2RiskyPrincipalينتقل من تحليل المخاطر المتمركز حول التكوين إلى التحليل المتمركز حول الهوية الأساسية. يجمع الثغرات حسب كل هوية أساسية لإظهار أي المستخدمين أو حسابات الخدمة لديهم أعلى تعرض لـ AD CS.
Find-LS2RiskyPrincipal [-Technique <String>] [-MinimumIssueCount <Int>] [-Top <Int>] [-Rescan]
يُرجع: PSCustomObject مع Principal وIssueCount وTechniques وVulnerableObjects وIssues
New-LS2Dashboardيُنشئ لوحة تحكم HTML تفاعلية من نتائج الفحص الحالية. يتضمن PSWriteHTML (مضمّن) — لا حاجة لتثبيت منفصل.
New-LS2Dashboard [-FilePath <String>] [-Show] [-ExpandGroups] [-Online]
المرتجعات: ملف HTML في المسار المحدد. شغّل Invoke-Locksmith2 أو Find-LS2Vulnerable* أولاً لتعبئة المخزن.
Locksmith 2 هو "مفتوح المصدر، مساهمة معترف بها"، وهذا يعني أن أي مساهمة يجب مناقشتها مع المشرفين قبل تقديمها.