
👻 CVE-2026-54121 - 최고의 CertiGhost AD CS 멀티 익스플로잇 프레임워크 | 로그 DC/LDAP 서버, 인증서 남용, PKINIT 해시 추출을 갖춘 고급 툴킷. 기능: 안전 점검 감지, 완전 멀티스레드 익스플로잇. 🛡️ CVSS 8.8 높음 - 윤리적으로 사용하고, 합법적으로 유지하세요. 🔒

익스플로잇 프레임워크 & 감사 툴킷
승인된 보안 테스트 전용입니다.
이 도구는 교육 및 승인된 침투 테스트 목적으로만 제공됩니다. 저자와 기여자는 이 소프트웨어로 인해 발생하는 어떠한 오용이나 피해에 대해서도 책임지지 않습니다. 사용자는 테스트 전에 대상 소유자로부터 명시적인 서면 허가를 받았음을 확인할 전적인 책임이 있습니다. 컴퓨터 시스템에 대한 무단 접근은 관련 연방법, 주법 및 국제 사이버 범죄법에 따라 불법입니다. 이 소프트웨어를 사용함으로써 귀하는 다음에 동의합니다:
CVE-2026-54121 (**"Certighost"**라고 명명됨)은 Microsoft Active Directory Certificate Services(AD CS)의 권한 상승(EoP) 취약점입니다. 이를 통해 낮은 권한의 도메인 사용자가 도메인 컨트롤러 컴퓨터 계정을 사칭하고 인증서 위조를 통해 완전한 도메인 관리자 장악을 달성할 수 있습니다.
CWE-285)로 인해 존재합니다.DCSync 작업을 실행합니다.| 속성 | 값 |
|---|---|
| [+] 발견 / 패치 | 2026년 7월 (Microsoft Patch Tuesday) |
| [+] CVSS 점수 | 8.8 (HIGH) |
| [+] 코드명 | Certighost |
| [+] 영향받는 제품 | Microsoft Active Directory Certificate Services |
| [+] 수정된 버전 | 2026년 7월 보안 업데이트 |
| [+] 인증 | 낮은 권한의 도메인 계정 |
| [+] 영향 | 전체 Active Directory 도메인 장악 |
detect_ip를 제거하고, 로깅 및 출력을 비활성화할 것을 권장합니다. 이 버전에는 **"stealthcert.py"**를 사용하십시오.| 기능 | exploit.py (전체 프레임워크) | stealthcert.py (최소) |
|---|---|---|
| 대상 입력 | 단일 / 파일 / Shodan | 단일만 |
| 대량 스캔 | [+] 예 (멀티스레드) | [-] 아니오 |
| 스레드 풀 | [+] 구성 가능 (-t) | [-] 단일 스레드 |
| 스레드 풀 상한 | [+] min(threads, total) | [-] 해당 없음 |
| Shodan 통합 | [+] 예 (--shodan) | [-] 아니오 |
| 스트리밍 JSONL 출력 | [+] 예 | [-] 아니오 |
| JSON 보고서 | [+] 예 | [-] 아니오 |
| CSV 보고서 | [+] 예 | [-] 아니오 |
| JSONL 스트리밍 | [+] 예 | [-] 아니오 |
| 로그 파일 (로테이팅) | [+] certighost.log (멱등 핸들러) | [-] 로그 파일 없음 |
| stderr/stdout 분리 로깅 | [+] 예 (_log_info / _warn / _err) | [+] 예 (sys.stderr) |
| 진행 표시줄 | [+] 실시간 (Vuln, Pwned, 속도) | [-] 아니오 |
| 스캔 요약 | [+] 예 | [-] 아니오 |
| 시그널 핸들러 (SIGINT) | [+] 정상 취소 | [-] 아니오 |
| 안전 감지 모드 | [+] --detect (기본) | [-] 항상 익스플로잇 |
| 전체 익스플로잇 모드 | [+] --exploit (옵트인) | [+] 항상 켜짐 |
| 악성 LDAP 서버 | [+] 예 | [+] 예 |
| 악성 LSA/SMB 서버 | [+] 예 | [+] 예 |
| Netlogon 오라클 | [+] 예 | [+] 예 |
| Netlogon E-bit (DC 호스팅 CA) | [+] 0x800 | 0x20 | [+] 0x800 | 0x20 |
| 인증서 요청 (ICPR) | [+] 예 | [+] 예 |
| PKINIT AS-REQ | [+] 예 | [+] 예 |
| PKINIT 해시 추출 | [+] 예 | [+] 예 |
| DCSync (krbtgt) | [+] 예 (자동, shutil.which PATH 확인) | [-] 아니오 |
| 자동 컴퓨터 생성 | [+] 예 | [+] 예 |
| 사용자 지정 컴퓨터 계정 | [+] 예 | [+] 예 |
| 사용자 지정 대상 계정 | [+] 예 | [+] 예 |
| 자동 DC 검색 | [+] 예 (LDAP 통해) | [+] 예 (LDAP 통해) |
| 사용자 지정 템플릿 | [+] 예 (--template) | [+] 예 (--template) |
| LDAP / LDAPS | [+] 토글 (--use-ldap) | [+] 토글 (--use-ldap) |
| TCP 기반 공격자 IP 감지 | [+] TCP 우선, UDP 폴백 | [+] TCP 우선, UDP 폴백 |
| 사용자 지정 리스너 IP | [+] 예 (--listener) | [+] 예 (--listener) |
| 비밀번호 인증 | [+] 예 | [+] 예 |
| 파일에서 비밀번호 | [+] --password-file | [-] 아니오 |
| 환경 변수에서 비밀번호 | [+] CERTIGHOST_PASSWORD | [-] 아니오 |
| NTLM 해시 인증 | [+] 예 | [+] 예 |
| 파일에서 해시 | [+] --hashes-file | [-] 아니오 |
| 환경 변수에서 해시 | [+] CERTIGHOST_HASHES | [-] 아니오 |
| 파일에서 컴퓨터 비밀번호/해시 | [+] --computer-pass-file, --computer-hash-file | [-] 아니오 |
| 자격 증명 argv 정리 | [+] _sanitize_argv() | [-] 아니오 |
| 엄격한 해시 파싱 (3개 이상 부분 → 오류) | [+] 예 | [+] 예 |
| 입력 검증 (도메인/사용자/해시/IP) | [+] _validate_inputs() | [-] 아니오 |
| Python 버전 요구 사항 | [+] 3.9+ | [-] 확인 안 함 |
| 아티팩트 유지 | [-] 항상 유지 | [+] --keep-files (기본: 삭제) |
| .pfx/.ccache 정리 | [~] 부분 (DCSync 이후만) | [+] 예 (--keep-files가 아니면) |
| 실패 시 정리 | [~] 부분 | [+] 전체 (try/finally) |
| 프록시 지원 | [-] 제거됨 | [-] 아니오 |
| Tor 지원 | [-] 제거됨 | [-] 아니오 |
| SSL 검증 토글 | [-] 제거됨 | [-] 아니오 |
| 재시도 로직 | [-] 제거됨 | [-] 아니오 |
| 속도 제한 | [-] 제거됨 | [-] 아니오 |
| 타임아웃 제어 | [-] 제거됨 | [-] 아니오 |
| 상세 모드 | [+] 예 (-v) | [-] 아니오 |
| 조용한 모드 | [+] 예 (-q) | [-] 아니오 |
| 배너 | [+] 전체 컬러 배너 | [-] 배너 없음 |
| 컬러 출력 | [+] 예 | [-] 아니오 |
| 스텔스 / 최소 로깅 | [-] 파일에 로깅 | [+] 파일 로깅 없음 |
| 영구 아티팩트 | [+] .ccache + .pfx 저장 | [+] 기본적으로 삭제 |
| 권장 대상 | 레드팀 참여 | 단발성 작업 |
| 디스크 흔적 | 더 큼 (로그, 보고서, 아티팩트) | 최소 (아티팩트만) |
| 포렌식 흔적 | 로그 파일, JSON 보고서, .ccache, .pfx (자격 증명은 argv에 없음) | 최소 (일시적만) |
| 설정 복잡도 | 중간 (불필요한 플래그 제거됨) | 낮음 (필수 플래그 적음) |
| 종속성 | impacket, cryptography, asn1crypto, pyasn1, pycryptodome, dnspython, shodan (선택) | impacket, cryptography, asn1crypto, pyasn1, pycryptodome |
| 루트 필요 | [+] 예 (포트 445 + 389) | [+] 예 (포트 445 + 389) |
| 출력 형식 | 구조화됨 (JSON/CSV/JSONL) | 단일 라인 (user:lm:nt) |
| 주요 사용 사례 | 보고를 포함한 대량 익스플로잇 | 스텔스 단일 대상 익스플로잇 |
| 매개변수 | 설명 | 예시 |
|---|---|---|
-d, --domain | 대상 도메인 DNS 이름 (필수) | -d playground.local |
-u, --username | 낮은 권한의 도메인 사용자 (필수) | -u lowpriv |
-p, --password | 사용자 비밀번호 | -p Password123 |
--password-file | 파일에서 사용자 비밀번호 읽기 | --password-file pass.txt |
-H, --hashes | NTLM 해시 [LM:]NT | -H :8846f7eaee8fb117ad06bdd830b7586c |
--hashes-file | 파일에서 NTLM 해시 읽기 | --hashes-file hash.txt |
--dc-ip | 도메인 컨트롤러 IP (필수) | --dc-ip 192.168.1.10 |
--ca-ip | 인증 기관 IP (선택) | --ca-ip 192.168.1.20 |
--ca | CA 이름 (설정하지 않으면 자동 검색) | --ca "PLAYGROUND-CA" |
--listener | 악성 서버용 공격자 IP | --listener 192.168.1.100 |
--target-account | 사칭할 계정 (예: DC01$) | --target-account DC01$ |
--template | 인증서 템플릿 (기본: Machine) | --template Machine |
--computer-name | 기존 컴퓨터 계정 이름 ($ 포함) | --computer-name GHOSTABCD$ |
--computer-pass | 기존 컴퓨터 비밀번호 | --computer-pass CGabc123... |
--computer-pass-file | 파일에서 기존 컴퓨터 비밀번호 읽기 | --computer-pass-file comp_pass.txt |
--computer-hash | 기존 컴퓨터 NT 해시 | --computer-hash 8846f7ea... |
--computer-hash-file | 파일에서 기존 컴퓨터 해시 읽기 | --computer-hash-file comp_hash.txt |
--use-ldap | LDAPS (636) 대신 LDAP (389) 사용 | --use-ldap |
--exploit | 익스플로잇 수행 (옵트인) | --exploit |
--detect | 감지만 (기본) | --detect |
-t, --threads | 대량 스캔용 최대 스레드 (1-500) | -t 10 |
-o, --output | 출력 파일 (.json, .csv, .jsonl) | -o results.json |
-v, --verbose | 상세 출력 | -v |
-q, --quiet | 조용한 모드 | -q |
-h, --help | 도움말 표시 | -h |
제거된 매개변수 (더 이상 지원되지 않음): --timeout, --retry, --delay, --proxy, --no-verify, --tor.