
AD 관리자, 방어 보안 전문가, 그리고 더러운 레드 팀원을 위한 AD CS 툴킷

Locksmith 2는 Active Directory Certificate Services(AD CS) 인프라를 감사하기 위한 종합적인 PowerShell 모듈입니다. 확립된 ESC(Escalation) 기법을 기반으로 인증서 템플릿, 인증 기관, PKI 인프라 개체 전반의 보안 오구성을 식별합니다.
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 기법에 대한 자세한 내용은 SpecterOps의 Certified Pre-Owned를 참조하십시오.
Invoke-Locksmith2알려진 모든 ESC 취약점에 대한 포괄적인 AD CS 보안 감사 스캔을 수행합니다.
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
Returns: 프로그래밍 방식으로 사용하기 위한 LS2Issue 객체
Find-LS2VulnerableCA인증 기관의 구성 문제와 위험한 역할 할당을 스캔합니다.
Find-LS2VulnerableCA -Technique <String>
# Supported: ESC6, ESC7a, ESC7m, ESC8, ESC11, ESC16
다음을 반환합니다: 프로그래밍 방식으로 사용하기 위한 LS2Issue 객체
Find-LS2VulnerableObjectPKI 인프라 객체(컨테이너, 컴퓨터 계정)의 보안 문제를 스캔합니다.
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-LS2CredentialAD 쿼리를 위한 자격 증명을 설정합니다. 여러 스캔을 실행하거나 Find-LS2Vulnerable* 함수를 독립적으로 사용할 때 유용합니다.
Set-LS2Credential -Credential <PSCredential>
Find-LS2RiskyPrincipal구성 중심에서 주체(principal) 중심 위험 분석으로 전환합니다. 취약점을 개별 주체별로 집계하여 어떤 사용자 또는 서비스 계정이 가장 높은 AD CS 노출도를 가지는지 보여줍니다.
Find-LS2RiskyPrincipal [-Technique <String>] [-MinimumIssueCount <Int>] [-Top <Int>] [-Rescan]
반환: Principal, IssueCount, Techniques, VulnerableObjects, Issues를 포함하는 PSCustomObject
New-LS2Dashboard현재 스캔 결과로부터 대화형 HTML 대시보드를 생성합니다. PSWriteHTML이 포함되어(벤더링됨) 있으므로 별도 설치가 필요하지 않습니다.
New-LS2Dashboard [-FilePath <String>] [-Show] [-ExpandGroups] [-Online]
반환: 지정된 경로의 HTML 파일. 저장소를 채우려면 먼저 Invoke-Locksmith2 또는 Find-LS2Vulnerable*를 실행하세요.
Locksmith 2는 "오픈 소스, 승인된 기여" 방식입니다. 즉, 모든 기여는 제출 전에 유지 관리자와 논의해야 합니다.
Locksmith 2는 합법적인 보안 평가 및 방어 목적으로만 제공됩니다. 보안 감사를 실행하기 전에 적절한 승인을 받을 책임은 사용자에게 있습니다. 저자는 이 도구로 인한 오용이나 손해에 대해 책임지지 않습니다.
MIT License w/Commons Clause - 자세한 내용은 LICENSE 파일을 참조하세요.
Made with 💜 by Jake Hildreth