Skip to content
KitploitKITPLOIT
도구익스플로잇블로그
Log in
제출
도구익스플로잇블로그
제출

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

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

피드문의개인정보© 2026 Kitploit

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
CVE-2022-34302 — CVE-2022-34302를 시연한다. 이는 New Horizon Datasys가 서명한 부트로더의 내장 커스텀 PE/COFF 로더가 서명되지 않은 UEFI 애플리케이션을 실행함으로써 발생하는 Secure Boot 우회 취약점이다. | Kitploit
도구/GitHubGitHub/themalwareguardian/cve-2022-34302
Embedded Systems SecurityPersistence MechanismsVulnerability AnalysisExploitationReverse EngineeringHardware SecurityPapers & ResearchPayload Development

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유
Firmware Analysis
Binary Exploitation
GitHubthemalwareguardian/cve-2022-34302

CVE-2022-34302

CVE-2022-34302를 시연한다. 이는 New Horizon Datasys가 서명한 부트로더의 내장 커스텀 PE/COFF 로더가 서명되지 않은 UEFI 애플리케이션을 실행함으로써 발생하는 Secure Boot 우회 취약점이다.

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

🕷️ CVE-2022-34302 - New Horizon Datasys 부트 로더 취약점

New Horizon Datasys Reboot Restore 부트 로더 - 취약한 UEFI 애플리케이션 직접 가져오기(BYOVUA) - 서명된 부트로더에 내장된 커스텀 PE/COFF 로더를 통해 서명되지 않은 UEFI 애플리케이션을 로드하여 Secure Boot를 우회합니다.




📑 목차

  • 개요
  • 배경
    • 취약한 UEFI 애플리케이션 직접 가져오기
    • 서명된 부트로더
    • 취약점
    • 커스텀 PE/COFF 로더
    • LoadImage vs 커스텀 로더
    • PE/COFF 호환성 요구사항
    • 커널 BYOVD와의 유사점
  • 동작 방식
    • 1단계 - 서명된 부트로더 부팅
    • 2단계 - 커스텀 PE 로더 활성화
    • 3단계 - 서명되지 않은 코드 실행
    • 4단계 - 지속성
  • 익스플로잇
  • 실습 환경 구성
  • 참고 자료



개요

이 저장소는 New Horizon Datasys 부트 로더의 Secure Boot 우회 취약점인 CVE-2022-34302를 악용하여 BYOVUA (Bring Your Own Vulnerable UEFI Application) 기법을 시연합니다.

UEFI Shell 기반 취약점(CVE-2022-34301 및 CVE-2022-34303)과 달리, 이 부트로더는 UEFI Shell을 노출하지 않습니다. 대신 shdloader.efi는 자체적인 커스텀 PE/COFF 로더를 구현하여 2단계 바이너리(shdmgr.ef_)를 펌웨어의 LoadImage() 함수를 사용하지 않고, 어떠한 서명 검증도 수행하지 않은 채 로드합니다. 공격자는 shdmgr.ef_를 호환되는 임의의 UEFI 애플리케이션으로 교체하기만 하면 Secure Boot가 활성화된 상태에서 임의 코드 실행을 달성할 수 있습니다.

이는 "One Bootloader to Load Them All" 연구에서 공개된 세 가지 취약점 중 가장 위험한 것입니다. Eclypsium이 지적했듯이, 이 우회는 내장되어 있고 완전히 은밀하며 화면에 어떠한 시각적 표시도 남기지 않습니다 - 따라서 모니터가 있는 시스템에서도 보이지 않고, 서버나 산업 장비와 같은 헤드리스 시스템에서는 탐지할 수 없습니다.




배경


취약한 UEFI 애플리케이션 직접 가져오기

BYOVUA는 커널 수준에서 사용되는 BYOVD(Bring Your Own Vulnerable Driver) 기법의 UEFI 버전입니다. 취약점이 있는 서명된 커널 드라이버를 가져오는 대신, 공격자는 Secure Boot를 무력화할 수 있는 기능을 포함한 서명된 UEFI 애플리케이션을 가져옵니다.

shdloader.efi는 Microsoft가 신뢰하는 인증서로 서명되어 있기 때문에 Secure Boot에서 의심 없이 허용되며, 이 인증서를 Secure Boot 데이터베이스(db)에 포함하는 모든 시스템 - 지난 10년간 출시된 거의 모든 UEFI 지원 PC - 에서 신뢰됩니다. 일단 실행되면, 내장된 커스텀 PE 로더는 공격자에게 운영체제가 로드되기 전에 임의의 서명되지 않은 코드를 로드하고 실행할 수 있는 능력을 제공하며, 이 환경에서는 현대적인 보안 제어(ASLR, DEP, 커널 보호)가 존재하지 않습니다.


서명된 부트로더

shdloader.efi는 New Horizon Datasys의 시스템 복원 및 복구 제품(Reboot Restore Rx, RollBack Rx)의 일부로 배포되는 UEFI 부트 로더입니다. 정상적인 부팅 체인에서의 역할은 운영체제가 시작되기 전에 스냅샷 및 복원 작업을 처리하는 사전 OS 관리 구성 요소(shdmgr.ef_)를 로드하는 것입니다.

속성값
파일shdloader.efi = EFI/Boot/bootx64.efi
제조사New Horizon Datasys Inc
제품Reboot Restore Rx / RollBack Rx
CVECVE-2022-34302
서명Microsoft Windows UEFI Driver Publisher → Microsoft Corporation UEFI CA 2011
발견Eclypsium (Mickey Shkatov, Jesse Michael) - 2022년 8월
발표DEF CON 30 - "One Bootloader to Load Them All"
폐기Microsoft KB5012170을 통해 DBX에 추가됨 (2022년 8월)

취약점

이 취약점은 부트 로더 아키텍처의 설계 결함입니다. Secure Boot 서명 검증을 강제하는 펌웨어의 LoadImage() 및 StartImage() 부트 서비스를 사용하는 대신, shdloader.efi는 자체적인 커스텀 PE/COFF 로더를 구현하여 원시 디스크 바이트에서 shdmgr.ef_를 직접 읽고, 재배치하고, 실행함으로써 펌웨어의 보안 검사를 완전히 우회합니다.

핵심 문제: Secure Boot에서 신뢰하는 서명된 바이너리가 서명을 검증하지 않는 자체 이미지 로더를 포함하고 있습니다. 펌웨어는 shdloader.efi를 서명된 것으로 검증하지만, 일단 실행되면 shdmgr.ef_를 어떠한 검증도 없이 로드합니다. shdmgr.ef_를 임의의 UEFI 애플리케이션으로 교체하면 해당 애플리케이션이 전체 하드웨어 접근 권한으로 실행되며, Secure Boot는 활성화된 것으로 보고됩니다.

이는 공격자가 UEFI Shell과 상호작용하고 검증을 비활성화하기 위해 gSecurity2를 수동으로 손상시켜야 하는 CVE-2022-34301 및 CVE-2022-34303과 근본적으로 다릅니다. 여기서는 우회가 자동적이고 은밀하게 이루어집니다 - 사용자 상호작용도, 가시적인 출력도, 셸 프롬프트도 없습니다.


커스텀 PE/COFF 로더

서명된 shdloader.efi는 자체적인 PE/COFF 이미지 로더 구현을 포함하고 있습니다. Security Architectural Protocols를 호출하고 Secure Boot 데이터베이스에 대해 이미지의 서명을 검증하는 펌웨어의 LoadImage() 부트 서비스를 호출하는 대신, 이 부트로더는 다음과 같이 동작합니다:

  1. EFI_SIMPLE_FILE_SYSTEM_PROTOCOL을 사용하여 \EFI\Boot\shdmgr.ef_를 엽니다
  2. 원시 파일 내용을 메모리 버퍼로 읽습니다
  3. PE/COFF 헤더(MZ 시그니처, PE 시그니처, Optional Header)를 파싱합니다
  4. 임의의 주소에 메모리를 할당합니다
  5. 섹션 테이블에 따라 섹션을 복사합니다
  6. .reloc 섹션을 처리하고 기본 재배치를 적용합니다
  7. 진입점 주소를 확인합니다
  8. 진입점으로 점프합니다

이 과정의 어느 시점에서도 로더는 이미지의 Authenticode 서명을 검증하거나, Secure Boot 데이터베이스(db/dbx)를 확인하거나, EFI_SECURITY2_ARCH_PROTOCOL을 호출하지 않습니다. 이미지는 순전히 PE/COFF 구조적 유효성만을 기준으로 로드됩니다.```c // Pseudocode of what shdloader.efi does internally // // NOTE: This is a simplified representation. The actual // implementation was derived from reverse engineering.

EFI_STATUS LoadShdmgr(VOID) { // Step 1: Open the file File = OpenFile(L"\EFI\Boot\shdmgr.ef_");

// Step 2: Read raw bytes (no signature check)
ReadFile(File, &Buffer, &Size);

// Step 3: Parse PE/COFF headers
DosHeader = (EFI_IMAGE_DOS_HEADER *)Buffer;
PeHeader  = (EFI_IMAGE_NT_HEADERS *)(Buffer + DosHeader->e_lfanew);

// Step 4: Allocate memory and copy sections
ImageBase = AllocatePages(...);
CopySections(ImageBase, Buffer, PeHeader);

// Step 5: Apply base relocations from .reloc
Delta = ImageBase - PeHeader->OptionalHeader.ImageBase;
ApplyRelocations(ImageBase, PeHeader, Delta);

// Step 6: Jump to entry point
//         NO SIGNATURE VERIFICATION ANYWHERE
EntryPoint = ImageBase + PeHeader->OptionalHeader.AddressOfEntryPoint;
((EFI_IMAGE_ENTRY_POINT)EntryPoint)(ImageHandle, SystemTable);

}

---

<div id='LoadImageVsCustomLoader'/>

### ***LoadImage vs 커스텀 로더***
도구 다운로드