CertiHound - BloodHound용 AD CS 열거 도구 치트시트
CertiHound는 Active Directory Certificate Services (AD CS) 열거 도구로, 인증서 템플릿 및 CA 구성을 LDAP을 통해 수집하고 BloodHound CE 호환 형식으로 내보냅니다. PKI 노드와 인증서 악용 엣지 (ESC1–ESC 스타일 공격 경로)를 BloodHound 그래프에 추가하므로 인증서 기반 권한 상승이 클래식 AD 공격 경로와 함께 표시됩니다. Certipy의 ADCS 악용과 BloodHound의 공격 경로 시각화 사이의 격차를 메웁니다.
인가된 평가 목적에만 사용하세요. AD CS 열거에는 도메인 자격증명과 허가가 필요합니다.
설치
| 방법 | 명령어 |
|---|
| pip | pip install certihound |
| 소스에서 | 저장소를 git clone한 후 pip install -e . |
| 요구사항 | 도메인에 대한 LDAP 접근; BloodHound CE v6을 보기 위해 필요 |
| 확인 | certihound --help |
AD CS 데이터 수집
certihound -u analyst -p '***' -d example.local \
-dc dc01.example.local -o output/
| 플래그 | 목적 |
|---|
-u, --username | 도메인 사용자 |
-p, --password | 비밀번호 (또는 해시/Kerberos) |
-d, --domain | 대상 도메인 |
-dc, --domain-controller | LDAP을 통해 조회할 DC |
-o, --output | JSON 출력 디렉토리 |
--ldaps | LDAPS (636) 사용 |
출력은 BloodHound CE로 가져올 JSON 파일 집합입니다.
열거되는 항목
| AD CS 객체 | 중요성 |
|---|
| 인증서 기관 | 등록/CA 구성, 웹 등록 |
| 인증서 템플릿 | ESC 오설정의 핵심 |
| 등록 권리 | 누가 어느 템플릿을 요청할 수 있는지 |
| 템플릿 플래그 | ENROLLEE_SUPPLIES_SUBJECT, EKU 등 |
| CA 권한 | ManageCA / ManageCertificates 권리 |
노출되는 ESC 공격 경로
| ESC | 오설정 |
|---|
| ESC1 | 템플릿이 등록자가 주체를 공급하고 인증 EKU를 허용 |
| ESC2 | 모든 목적 EKU 템플릿 |
| ESC3 | 등록 에이전트 템플릿 |
| ESC4 | 취약한 템플릿 ACL (쓰기 가능한 템플릿) |
| ESC6 | CA의 EDITF_ATTRIBUTESUBJECTALTNAME2 |
| ESC7 | 취약한 CA 권한 |
| ESC8 | AD CS 웹 등록에 NTLM 릴레이 |
CertiHound는 이들을 엣지로 인코딩하므로 BloodHound가 인증서 악용을 통해 낮은 권한 사용자에서 도메인 관리자까지의 경로를 그릴 수 있습니다.
BloodHound CE로 가져오기
| 단계 | 방식 |
|---|
| 1 | CertiHound를 실행하여 JSON 생성 |
| 2 | BloodHound CE에서 수집 UI/API를 통해 JSON 업로드 |
| 3 | PKI 노드/엣지가 그래프에 나타남 |
| 4 | AD CS를 통과하는 높은 가치 대상에 대한 경로 쿼리 |
일반적인 워크플로우
# AD CS 열거 및 인증서 공격 경로를 BloodHound CE에 로드
certihound -u audit -p '***' -d corp.local -dc dc.corp.local -o adcs/
# → adcs/*.json을 BloodHound CE에 업로드한 후 쿼리
# PKI 엣지를 포함한 "Domain Admins까지의 최단 경로"
# Certipy와 결합하여 경로를 찾은 후 실제 악용
AD CS 도구 키트의 CertiHound
자료