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

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

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

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

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
CVE-2024-5243-pwn2own-toronto-2023 — TP-Link Omada ER605 라우터의 DDNS 클라이언트 데몬(cmxddnsd)을 통한 사전 인증 원격 코드 실행 익스플로잇 | Kitploit
도구/GitHubGitHub/redpack-kr/cve-2024-5243-pwn2own-toronto-2023
Vulnerability AnalysisExploitationWeb Application ExploitationPenetration TestingLearning & EducationRemote Access ToolBinary Exploitation
GitHubredpack-kr/cve-2024-5243-pwn2own-toronto-2023

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

CVE-2024-5243-pwn2own-toronto-2023

TP-Link Omada ER605 라우터의 DDNS 클라이언트 데몬(cmxddnsd)을 통한 사전 인증 원격 코드 실행 익스플로잇

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

CVE-2024-5243-pwn2own-toronto-2023

TP-Link ER605 사전 인증 RCE (CVE-2024-5242 / CVE-2024-5243 / CVE-2024-5244)

Comexe DDNS 서비스를 사용하도록 구성된 장치의 TP-Link Omada ER605 DDNS 클라이언트 데몬(cmxddnsd)을 대상으로 하는 PoC(개념 증명) 익스플로잇 체인입니다.

⚠️ 법적 고지 / 윤리: 이 저장소는 승인된 보안 연구 및 통제된 실험실 재현 전용입니다. 소유하지 않았거나 명시적 테스트 권한이 없는 시스템에는 사용하지 마십시오.


개요

이 PoC는 다음을 결합하는 체이닝 방식을 시연합니다:

  1. DDNS 프로토콜 계층에 대한 스푸핑/가장 프리미티브,
  2. ASLR을 우회하기 위한 정보 유출,
  3. ROP 기반 코드 실행으로 이어지는 제어 흐름 하이재킹.

이 체인은 다음의 공개된 이슈들에 해당합니다:

CVEZDI 권고유형 (ZDI/NVD 기준)체인에서의 개괄적 역할
CVE-2024-5244ZDI-24-503보안을 통한 은폐에 의존 (DDNS 메시지에 접근/스푸핑 가능)유효한 것처럼 보이는 DDNS 메시지 제작/스푸핑을 가능하게 함
CVE-2024-5243ZDI-24-502DNS 이름 처리 과정의 버퍼 오버플로DNS 이름 관련 상태에 영향을 주거나 오염시키고 ASLR 우회 유출 경로를 가능하게 하는 데 사용됨
CVE-2024-5242ZDI-24-501DDNS 오류 코드 처리 과정의 스택 기반 버퍼 오버플로ROP 기반 RCE를 위한 제어 흐름 하이재킹 프리미티브로 사용됨

참고: 이 README는 CVE ↔ 이슈 설명을 ZDI/NVD 표현에 맞춥니다. 정확한 익스플로잇 구성은 펌웨어 빌드 및 로컬 재현 세부 사항에 따라 달라질 수 있습니다. exploit.py와 이 저장소의 분석 노트를 참조하세요.


영향을 받는 버전

  • 대상: TP-Link Omada ER605 VPN 라우터
  • 취약 버전: < ER605(UN)_V2_2.2.4
  • 테스트 버전: 2.2.2
  • 수정 버전: ER605(UN)_V2_2.2.4 Build 20240119 (이후 버전)

위협 모델 / 사전 조건 (개괄)

ZDI는 Comexe DDNS가 활성화/구성된 경우 영향을 네트워크 인접(network-adjacent) 으로 설명합니다. 실제로 재현하려면 일반적으로 라우터의 DDNS/DNS 트래픽 경로를 충분히 관찰하고 조작하여 다음을 수행할 수 있어야 합니다:

  • Comexe DDNS 서버 측을 리디렉션/가장하고,
  • 조작된 DDNS 응답을 라우터에 전달합니다.

이 저장소는 통제된 실험실 외부에서 그러한 위치 확보를 위한 단계별 운영 가이드를 의도적으로 제공하지 않습니다.


공격 흐름 (개념)

root@kitploit:~
┌─────────────────┐                    ┌─────────────────────────┐
│   TP-Link ER605  │                    │        Attacker         │
│   (cmxddnsd)     │                    │ (authorized lab setup)  │
└───────┬─────────┘                    └───────────┬─────────────┘
        │                                          │
        │ (1) DDNS message spoofing/impersonation  │  CVE-2024-5244
        │<-----------------------------------------│
        │                                          │
        │ (2) Parsing-time overflow affects DNS-   │  CVE-2024-5243
        │     name-related state; later leak occurs│
        │     in DNS query sending path (e.g.,     │
        │     sndDnsQuery) to bypass ASLR          │
        │<-----------------------------------------│
        │                                          │
        │ (3) Error-code overflow for control-flow │  CVE-2024-5242
        │     hijack → ROP → system(command)       │
        │<-----------------------------------------│

주요 구분:

  • 파싱 오버플로는 DDNS 메시지 파싱 중에 트리거됩니다(특히 오류 코드 / DNS 이름 처리를 위한 _chkPkt 인접 파싱 로직을 통해).
  • ASLR 우회 유출은 DNS 이름 관련 상태를 오염시킨 후 DNS 쿼리 전송 경로를 통해 나중에 달성됩니다.

저장소 구성

  • exploit.py — 실험실 재현에 사용되는 PoC 구현(빌드별 상수/오프셋 입력 필요).
  • README.md — 이 문서.

구성 참고 사항 (빌드별)

이 PoC는 대상 펌웨어 및 libc에 따라 달라지는 빌드별 값(예: 오프셋, 가젯 위치, 유출 해석)을 필요로 합니다. 이러한 값은 의도적으로 플레이스홀더로 남겨져 있으며 테스트된 빌드 분석을 통해 도출해야 합니다.

예시 플레이스홀더(exploit.py 참조):

  • libc 베이스 유도 (유출 오프셋 → libc 베이스)
  • system() 오프셋
  • 적합한 MIPS 가젯 시퀀스 및 제약 조건
  • ROP 체인에서 사용되는 안정적인 명령 문자열 참조용 주소

기술 노트 (개괄)

근본 원인 패턴 (개념)

파싱 로직에서 반복되는 안티 패턴은 구분자에서 파생된 길이를 사용하여 공격자가 제어하는 필드 데이터를 대상 버퍼 크기로 적절히 제한하지 않고 복사하는 것입니다(개념적으로):

root@kitploit:~
char *end = strchr(ptr, '\x01');   // delimiter
int len = end - ptr;               // attacker-influenced length
memcpy_or_strncpy(dest, ptr, len); // missing bounds check -> overflow

ROP 가젯 (MIPS 지연 슬롯)

PoC는 MIPS 지연 슬롯에 적합한 가젯 형태를 사용합니다:

root@kitploit:~
move    $t9, $s0
jalr    $t9
move    $a0, $s1      ; delay slot

저장된 레지스터 덮어쓰기를 통해 $s0 및 $s1을 제어함으로써 간결한 system(command) 호출 시퀀스를 가능하게 합니다.

페이로드 제약 조건 (구현 의존적)

실제 페이로드 구성은 다음에 의해 제약을 받습니다:

  • 프로토콜 필드 구분자(예: \x01), 그리고
  • 복사된 데이터를 자르거나 변경할 수 있는 문자열/파싱 동작.

이 재현에 사용된 정확한 제약 조건은 exploit.py를 참조하세요.


면책 조항

이 코드와 문서는 교육 목적 및 승인된 보안 연구를 위해서만 제공됩니다. 명시적 허가 없이 사용하는 것은 금지되며 불법일 수 있습니다.


크레딧

  • 원본 취약점 발견 및 Pwn2Own Toronto 2023 연구: Claroty Research Team82
  • 이 저장소: 독립적인 재현 및 분석 작업

참조

  • ZDI-24-501 (CVE-2024-5242): https://www.zerodayinitiative.com/advisories/ZDI-24-501/
  • ZDI-24-502 (CVE-2024-5243): https://www.zerodayinitiative.com/advisories/ZDI-24-502/
  • ZDI-24-503 (CVE-2024-5244): https://www.zerodayinitiative.com/advisories/ZDI-24-503/
  • NVD 항목:
    • CVE-2024-5242: https://nvd.nist.gov/vuln/detail/CVE-2024-5242
    • CVE-2024-5243: https://nvd.nist.gov/vuln/detail/CVE-2024-5243
    • CVE-2024-5244: https://nvd.nist.gov/vuln/detail/CVE-2024-5244

도구 다운로드