
Набор инструментов AD CS для администраторов AD, специалистов по защитной безопасности и отъявленных red team-специалистов

Locksmith 2 — это комплексный модуль PowerShell для аудита инфраструктуры служб сертификации Active Directory (AD CS). Он выявляет ошибки конфигурации безопасности в шаблонах сертификатов, центрах сертификации и объектах инфраструктуры PKI на основе известных техник ESC (Escalation).
Созданный для администраторов AD, специалистов по безопасности и пентестеров, Locksmith 2 предоставляет:
Locksmith 2 представляет собой следующее поколение линейки открытых инструментов безопасности AD CS Locksmith, улучшая оригинал за счёт лучшей организации кода, расширенной отчётности и более глубокого анализа рисков.
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 (владелец) |
| ESC5 | Уязвимый контроль доступа к объектам PKI | Объекты инфраструктуры | ESC5a (ACL), ESC5o (владелец) |
| ESC6 | Включён EDITF_ATTRIBUTESUBJECTALTNAME2 | CA | — |
| ESC7 | Уязвимые роли администратора/менеджера CA | CA | ESC7a (администратор), ESC7m (менеджер) |
| ESC8 | Уязвимые конечные точки веб-регистрации | CA | — |
| ESC9 | Слабые сопоставления сертификатов | Шаблоны | — |
| ESC11 | Отсутствие шифрования RPC | CA | — |
| ESC13 | Политика применения OID, связанного с группой | Шаблоны | — |
| ESC16 | Отключённые расширения безопасности CRL/AIA | CA | — |
Подробную информацию о техниках 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*, чтобы заполнить хранилище.