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

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

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

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

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
cve-2024-49113-ldap_nightmare_reproduction — cve-2024-49113-ldap_nightmare_reproduction의 재현 | Kitploit
도구/GitHubGitHub/razureink/cve-2024-49113-ldap_nightmare_reproduction
Vulnerability AnalysisExploitationPenetration TestingLearning & EducationRed TeamingBinary ExploitationLabs & Practice
GitHubrazureink/cve-2024-49113-ldap_nightmare_reproduction

cve-2024-49113-ldap_nightmare_reproduction

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

cve-2024-49113-ldap_nightmare_reproduction의 재현

저장소 보기
27일 전아직 검토되지 않음

CVE-2024-49113 — LDAP Nightmare

Windows LDAP 클라이언트 원격 코드 실행(힙 기반 버퍼 오버플로)

필드값
CVECVE-2024-49113
별칭LDAP Nightmare
CVSS 3.19.8 — 치명적(Critical)
CWECWE-122 — 힙 기반 버퍼 오버플로
발견SafeBreach(2025년 1월 PoC 공개)
악용실제 환경에서 활발한 악용이 확인됨
패치Microsoft 2024년 12월 Patch Tuesday(KB5048685 / KB5048652)

1. 개요

CVE-2024-49113은 Windows LDAP 클라이언트 라이브러리(wldap32.dll)의 심각한 힙 기반 버퍼 오버플로 취약점입니다. 인증되지 않은 원격 공격자는 LDAP 쿼리를 수행하는 피해 Windows 시스템(예: 디렉터리 조회를 수행하는 도메인 컨트롤러)에 특수하게 조작된 LDAP 응답을 전송하여 이 취약점을 트리거할 수 있습니다.

Windows 도메인 컨트롤러는 다른 도메인 컨트롤러, 멤버 서버, 글로벌 카탈로그 서버에 정기적으로 LDAP 쿼리를 전송하므로 이 결함은 Active Directory 환경에서 특히 위험합니다. 악용에 성공하면 (도메인 컨트롤러에서) 로컬 시스템 계정의 컨텍스트로 원격 코드 실행이 이루어져 공격자가 대상 서버를 완전히 제어할 수 있게 됩니다.

공개된 개념 증명("LDAP Nightmare"로 명명)은 Microsoft가 2024년 12월 Patch Tuesday에서 수정 사항을 배포한 후 SafeBreach가 2025년 1월에 공개했습니다.


2. 기술 세부 정보

근본 원인

이 취약점은 RFC 4511에 정의된 LDAP(Lightweight Directory Access Protocol) 클라이언트의 Windows 구현인 wldap32.dll에 존재합니다.

LDAP 클라이언트가 Search Result Entry(검색 결과 항목) 응답을 수신하면 라이브러리는 BER(Basic Encoding Rules) 디코더 루프에서 LDAP 메시지의 프로토콜 데이터 유닛(PDU)을 구문 분석합니다. LDAP 특성(attribute) 값을 구문 분석하는 동안 힘 메모리 할당 로직의 결함으로 인해 디코더가 힙에 할당된 버퍼의 경계를 벗어나 데이터를 쓰게 됩니다.

구체적으로:

  1. BER 디코더는 LDAP 특성 값의 길이(length) 필드를 읽습니다.
  2. 이 길이를 기준으로 힙 버퍼가 할당됩니다.
  3. 디코딩 중(특히 구성 문자열(constructed strings) 또는 멀티바이트 인코딩을 처리할 때) 디코더는 버퍼 내 오프셋을 올바르게 추적하지 못합니다.
  4. 이로 인해 최대 수 킬로바이트에 달하는 제어된 힙 오버플로가 발생합니다.

트리거 조건

  • 피해자가 LDAP 쿼리(bind + 검색 요청)를 시작해야 합니다.
  • 공격자의 악성 LDAP 서버가 조작된 Search Result Entry(LDAP_RES_SEARCH_ENTRY) 응답을 전송합니다.
  • 오버플로는 응답 데이터에 대한 애플리케이션 수준 검증 이전에 발생합니다.
  • 인증이 필요하지 않으며, 익명 LDAP 바인드 중에도 오버플로가 트리거될 수 있습니다.

영향

  • 기밀성: 시스템의 모든 데이터가 완전히 유출됩니다.
  • 무결성: 전체 쓰기 권한을 획득하여 공격자가 프로그램을 설치하고, 데이터를 수정하고, 계정을 생성할 수 있습니다.
  • 가용성: 대상을 완전히 제어하여 서비스 거부가 가능합니다.
  • 지속성: 도메인 컨트롤러에서 SYSTEM 권한으로 RCE가 가능하여 전체 도메인에 걸친 횡적 이동이 가능합니다.

3. 영향을 받는 버전

지원되는 모든 Windows Server 및 Windows Client 에디션은 2024년 12월 10일 보안 업데이트 이전 버전에서 취약합니다:

Windows Server(도메인 컨트롤러 — 최고 위험)

  • Windows Server 2025, 2022, 2019, 2016, 2012 R2, 2012, 2008 R2 SP1

Windows Client(트리거 가능성은 낮지만 여전히 취약)

  • Windows 11 24H2 / 23H2 / 22H2 / 21H2
  • Windows 10 22H2 / 21H2

이 CVE를 해결하는 2024년 12월 Patch Tuesday 업데이트는 다음과 같습니다:

  • KB5048685 — Windows Server 2025 / Windows 11 24H2
  • KB5048652 — Windows Server 2022 / Windows 11 23H2
  • KB5048661 — Windows 10 22H2
  • 그 외 버전에 대한 동일한 업데이트(MSRC 공지 참조).

4. 재현 절차

구조

root@kitploit:~
┌──────────────────┐          LDAP Query           ┌─────────────────────┐
│   Victim Host    │ ──────────────────────────▶   │  Attacker LDAP      │
│  (Windows DC)    │                               │  Server (This PoC)  │
│                  │ ◀──────────────────────────   │                     │
│  wldap32.dll     │    Crafted LDAP Response      │  exploit.py         │
│  overflowed      │    (heap overflow payload)    │  port 389           │
└──────────────────┘                               └─────────────────────┘

사전 요구 사항

  • 2024년 12월 패치가 적용되지 않은 Windows 도메인 컨트롤러(또는 LDAP 쿼리를 수행하도록 구성된 Windows 호스트).
  • 공격자 시스템에 Python 3.8 이상(Windows, Linux, macOS 모두 가능).
  • 피해자에서 공격자로의 TCP 포트 389 네트워크 연결.
  • 도메인에 가입되지 않은 피해자의 경우 호스트가 공격자를 LDAP 서버로 가리키도록 구성해야 할 수 있습니다(예: hosts 파일 또는 DNS를 통해).

단계별 절차

1. 대상이 패치되지 않았는지 확인

피해자 시스템에서 설치된 KB를 확인합니다:

root@kitploit:~
Get-HotFix | Where-Object { $_.HotFixID -match "KB5048685|KB5048652" }

결과가 반환되지 않으면 시스템은 패치되지 않아 취약한 상태입니다.

2. 악성 LDAP 서버 시작

공격자 시스템에서 이 PoC를 실행합니다:

root@kitploit:~
python exploit.py --listen-ip 192.168.1.100 --listen-port 389

여기서 192.168.1.100은 공격자의 IP 주소입니다.

참고: Linux에서 포트 389에 바인딩하려면 루트(sudo) 권한이 필요합니다. Windows에서는 관리자 권한이 필요할 수 있습니다.

3. 피해자에서 LDAP 쿼리 트리거

피해자 시스템에서(PowerShell, 관리자 권한):

root@kitploit:~
# Force an LDAP search against the attacker server
$ldapPath = "LDAP://192.168.1.100/DC=evil,DC=local"
$searcher = New-Object DirectoryServices.DirectorySearcher($ldapPath)
$searcher.Filter = "(objectClass=*)"
$searcher.SearchRoot = $null

try {
    $results = $searcher.FindAll()
} catch {
    Write-Host "Connection attempted — check the PoC server for crash details"
}

또는 Windows Server/RSAT에 포함된 ldp.exe를 사용합니다:

  1. ldp.exe를 엽니다
  2. Connection → Connect → 공격자 IP, 포트 389 입력
  3. Connection → Bind → (익명 바인드를 위해 비워 둠)
  4. View → Tree → Base DN: DC=evil,DC=local
  5. Run을 클릭합니다

4. 오버플로 확인

  • PoC 서버는 [*] Sending malicious search result entry...를 출력하고 조작된 응답을 전송합니다.
  • 성공하면 피해자의 lsass.exe 또는 LDAP 클라이언트 프로세스가 액세스 위반(0xC0000005)으로 크래시되거나 시스템에 BSOD가 발생할 수 있습니다.
  • 실제 RCE를 위해서는 힙 레이아웃을 조작하고 오버플로를 제어해야 합니다. 여기에 포함된 PoC는 출발점으로서 크래시 프리미티브(서비스 거부)를 시연합니다.

Docker 기반 재현(대안)

격리된 환경에서 PoC를 실행할 수 있도록 Dockerfile이 제공됩니다:

root@kitploit:~
docker build -t ldap-nightmare .
docker run --rm -p 389:389 --cap-add=NET_ADMIN ldap-nightmare

5. 개념 증명(exploit.py)

포함된 exploit.py는 다음을 구현합니다:

  • LDAP 바인드 응답 — 익명 또는 단순 바인드를 수락합니다.
  • 조작된 Search Result Entry — 힙 오버플로 페이로드를 전달합니다.
  • 스레드 기반 연결 처리기 — 여러 피해자 연결을 처리합니다.
  • 명령줄 인자(--listen-ip, --listen-port, --payload-size)를 통해 구성 가능.

페이로드 구조

실습 대상에 대해 실행

root@kitploit:~
# Start the malicious server
sudo python exploit.py --listen-ip 0.0.0.0 --listen-port 389

# In another terminal, watch for connections
tcpdump -i any port 389 -X

6. 완화 방안

패치

2024년 12월 10일 Patch Tuesday 업데이트를 설치합니다:

  • Windows Update: 업데이트를 확인하고 2024년 12월 누적 업데이트를 설치합니다.
  • WSUS / SCCM: KB5048685 / KB5048652 / KB5048661을 승인하고 배포합니다(버전에 따라 다름).
  • Microsoft Catalog: Microsoft 업데이트 카탈로그에서 독립 실행형 패키지를 다운로드합니다.

우회 방안(패치가 지연되는 경우)

패치를 즉시 적용할 수 없는 경우:

  1. 네트워크 분리 — 신뢰할 수 없는 네트워크에서 도메인 컨트롤러로 향하는 LDAP(TCP 389 / 636) 트래픽을 차단합니다.
  2. 익명 LDAP 쿼리 비활성화 — 도메인 컨트롤러에서 익명 액세스를 제한합니다:
    root@kitploit:~
    Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Services\NTDS\Parameters" `
      -Name "LDAPServerIntegrity" -Value 2 -Type DWord
    Restart-Service NTDS
    
  3. LDAP 크래시 모니터링 — LDAP 클라이언트 크래시 감사를 활성화합니다:
    root@kitploit:~
    wevtutil qe "Windows PowerShell" /f:text /q:"*[System[EventID=1000]]"
    

7. 참고 자료


8. 법적 고지

본 자료는 교육 및 공인된 보안 테스트 목적으로만 제공됩니다. 명시적 허가 없이 시스템에 대해 CVE-2024-49113을 악용하는 행위는 불법입니다. 저자는 이 정보의 오용에 대해 책임을 지지 않습니다. 시스템을 테스트하기 전에 항상 서면 승인을 받으십시오.


도구 다운로드
오프셋필드값
0x00LDAP 메시지 태그(0x30)시퀀스
0x01–0x02총 길이(조작됨)큰 값이 오버플로를 트리거함
0x03ProtocolOp(0x64)Search Result Entry
0x04–0x0ELDAP 결과 필드표준 헤더
0x0F+특성 목록오버플로 트리거(길이 = 0xFFFF)
출처URL
Microsoft Security Response CenterMSRC CVE-2024-49113
SafeBreach(최초 발견)SafeBreach Blog — LDAP Nightmare
NVDNVD CVE-2024-49113
CWE-122힙 기반 버퍼 오버플로
RFC 4511LDAPv3 프로토콜
2024년 12월 Patch TuesdayMicrosoft 릴리스 정보