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

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

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

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

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
CVE-2026-54121-CertiGhost — CVE-2026-54121 (Certighost) AD CS DC-impersonation PoC. Patched SAN handling + MAQ-safe account reuse. | Kitploit
도구/GitHubGitHub/marcgoam/cve-2026-54121-certighost
Authentication & AuthorizationPrivilege EscalationVulnerability AnalysisExploitationLateral MovementPenetration TestingAdversarial Attack
GitHubmarcgoam/cve-2026-54121-certighost

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

CVE-2026-54121-CertiGhost

CVE-2026-54121 (Certighost) AD CS DC-impersonation PoC. Patched SAN handling + MAQ-safe account reuse.

저장소 보기
10224일 전아직 검토되지 않음

CVE-2026-54121 (Certighost) - 패치된 포크

CVE-2026-54121에 대한 개념 증명 도구의 작동하는 포크이며, _Certighost_라고도 합니다. 원본 연구 및 PoC는 @H0j3n 과 @aniqfakhrul 이 수행했으며, 자세한 분석은 다음에서 확인할 수 있습니다:

  • https://gist.github.com/H0j3n/a5ef2609b5f2944ac2390a191a534c26.

이 포크는 요청된 SAN을 존중하는 CA에서 PKINIT가 성공하지 못하게 하던 SAN 처리를 수정하고, --target-san 파싱을 강화하며, 컴퓨터 계정 처리를 재구성하여 ms-DS-MachineAccountQuota를 더 이상 소진하지 않도록 합니다.

사용법

루트로 실행하세요. rogue LDAP 및 SMB 서비스는 권한 있는 포트 389와 445를 필요로 합니다.

root@kitploit:~
sudo python3 certighost.py -d playground.local -u lowpriv -p 'Password1234' --dc-ip 192.168.1.10

성공적으로 완료되면 대상 인증서(.pfx)와 Kerberos 캐시(.ccache)가 현재 작업 디렉토리에 기록됩니다.

이 스크립트의 기능

  1. 단일 안정적인 컴퓨터 계정(CERTIGHOST$, 첫 실행 시 생성됨)을 재사용하거나 --computer-name을 통해 지정된 계정을 사용합니다.
  2. 두 개의 rogue 리스너를 시작합니다: 포트 445의 SMB/LSA 서버와 포트 389의 LDAP 서버.
  3. 해당 컴퓨터 계정으로 인증서 요청을 보내며, 제어된 IP를 가리키는 사용자 정의 cdc 속성(--listener를 통해, 생략 시 자동 감지)과 대상 DC의 DNS 이름을 포함한 rmd 속성을 포함합니다.
  4. CA는 rogue LSA/LDAP 리스너에 다시 연결합니다. 리스너는 생성된 계정으로 인증(Netlogon을 통해 실제 DC에서 검증됨)하고 CA의 조회에 대상 DC의 ID(sAMAccountName, SID, dNSHostName)로 응답합니다.
  5. CA는 DC에 속한 유효한 인증서를 발급합니다.
  6. 스크립트는 DC의 pfx로 PKINIT을 수행하여 .ccache와 NT 해시를 요청합니다.

이 포크의 변경 사항

1. SAN 수정 (PKINIT 성공)

원본은 인증서 SAN을 CSR subjectAltName 확장과 SAN:dns= 요청 속성 모두 rogue 컴퓨터의 호스트 이름으로 구성했으며, 대상 DC의 FQDN 대신 사용했습니다. 요청된 SAN을 존중하는 CA에서는 발급된 인증서가 rogue 계정의 dNSHostName을 가지게 되어 PKINIT이 잘못된 주체로 매핑되어 다음 오류와 함께 실패했습니다:

root@kitploit:~
KDC_ERR_CLIENT_NAME_MISMATCH(Reserved for PKINIT)

이제 SAN은 대상 DC의 dNSHostName(rmd_value / target_dns)을 사용하며, 이는 PKINIT이 머신 계정을 매핑하는 값입니다. 발급된 인증서는 이제 DNS:<dc>.<domain>을 제시하고 AS-REQ가 DC로 마무리됩니다.

2. 강화된 --target-san

--target-san은 이제 MEEREEN, MEEREEN$, 또는 FQDN meereen.essos.local ( sAMAccountName 또는 dNSHostName으로 매칭됨) 중 하나를 허용하며, 더 이상 짧은 NAME 형식만 허용하지 않습니다.

3. 컴퓨터 계정 재사용 (MAQ 소진 없음)

원본은 실행할 때마다 새로운 무작위 GHOST********$ 계정을 생성했습니다. ms-DS-MachineAccountQuota를 통해 생성된 컴퓨터 계정은 도메인 관리자가 소유하므로(생성자가 아님), 낮은 권한의 사용자는 삭제할 수 없습니다. 따라서 반복 실행 시 고아 계정으로 인해 할당량(기본 10개)이 빠르게 소진되었습니다.

이 포크는 단일 안정적인 계정(CERTIGHOST$, 존재하지 않을 때만 생성됨)을 재사용하므로 할당량이 증가하지 않으며 실행 간에 정리할 것이 없습니다.

4. 잔여 계정 경고

계정이 처음 생성될 때 스크립트는 AD에 남아 있음을 알리는 경고를 출력합니다:

root@kitploit:~
[!] WARNING: computer account CERTIGHOST$ was created and is left in AD.

계정은 후속 실행에서 재사용을 위해 남아 있습니다. 완전히 제거하려면 도메인 관리자(개체 소유자)가 삭제해야 합니다:

root@kitploit:~
Get-ADComputer CERTIGHOST | Remove-ADComputer -Confirm:$false

요구 사항

  • Python 3
  • impacket
  • cryptography, pyasn1, asn1crypto, pycryptodomex

참고 자료

  • https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-54121
  • https://gist.github.com/H0j3n/a5ef2609b5f2944ac2390a191a534c26
  • https://github.com/aniqfakhrul/CVE-2026-54121 (원본 PoC)

면책 조항

공인된 보안 테스트 및 교육 목적으로만 사용하십시오. 테스트할 명시적 권한이 있는 시스템에 대해서만 사용하십시오.

도구 다운로드