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

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

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

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

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
asus-bsitf-0-day-poc — CVE-2026-13585에 대한 PoC | Kitploit
도구/GitHubGitHub/416rehman/asus-bsitf-0-day-poc
Privilege EscalationVulnerability AnalysisExploitationHardware SecurityBinary Exploitation
GitHub416rehman/asus-bsitf-0-day-poc

asus-bsitf-0-day-poc

CVE-2026-13585에 대한 PoC

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

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유
웹사이트

POC - ASUS bsitf.sys 커널 메모리 매핑 to 사용자 모드

CVE-2026-13585

요약

ASUS bsitf.sys (또는 AsusBSItf.sys로 배포됨) 커널 드라이버는 IOCTL 0x222808을 노출하며, 이 IOCTL은 공격자가 제어하는 크기의 물리적으로 연속된 커널 메모리를 할당하고, 이를 호출 프로세스의 주소 공간에 읽기/쓰기 권한으로 매핑한 후, 사용자 모드 가상 주소와 물리적 주소를 호출자에게 반환합니다.

장치를 열기 위해서는 관리자 권한이 필요하므로, 이는 관리자에서 커널로의 권한 상승입니다. BYOVD(Bring Your Own Vulnerable Driver) 시나리오에서 이미 관리자 권한을 가진 공격자(예: 사회 공학 또는 별도의 익스플로잇을 통해)는 이 정식 서명된 드라이버를 로드하여 커널 익스플로잇 없이 임의의 커널 메모리에 접근할 수 있습니다.

영향을 받는 버전

버전파일명패키지풀 유형
3.0.10.0bsitf.sysASUS Business Manager / AbmSvcPackageNonPagedPool (실행 가능)
3.1.10.0AsusBSItf.sysASUS SCI / AsusSoftwareManagerNonPagedPoolNx
3.1.25.0AsusBSItf.sysASUS SCI / AsusSoftwareManagerNonPagedPoolNx

모든 버전은 장치 \Device\bsitf를 생성하며 심볼릭 링크 \DosDevices\bsitf를 만듭니다.

영향

매핑된 버퍼는 새로운 커널 풀 할당이며, 임의의 커널 주소가 아닙니다. 호출자는 내용을 제어할 수 있지만 위치는 제어할 수 없습니다. 이는 진정한 임의 커널 읽기/쓰기에 비해 익스플로잇 가능성을 제한합니다.

  • 커널 풀 고갈 (DoS) — 해제 없이 반복 할당하면 NonPagedPool이 고갈되어 BSOD가 발생합니다. 할당 크기나 제한이 적용되지 않습니다.
  • 물리적 주소 노출 — IOCTL은 모든 할당의 물리적 주소를 반환하며, 정보 유출 또는 DMA 기반 공격에 유용합니다.
  • 실행 가능한 커널 메모리 스테이징 (v3.0.x만 해당) — 버전 3.0.10.0에서 풀 유형은 NonPagedPool(실행 가능)입니다. 셸코드를 사용자 모드에서 매핑된 버퍼에 쓸 수 있지만, 커널 실행을 버퍼 주소로 리디렉션하려면 별도의 취약점이 필요합니다.

v3.1.x 버전(NonPagedPoolNx)에서는 버퍼가 실행 불가능하며 실제 영향은 DoS와 물리적 주소 노출로 제한됩니다.

근본 원인

디스패치 핸들러의 IOCTL 0x222808은 입력 검증 없이 다음을 수행합니다.

root@kitploit:~
alloc_size = *(DWORD *)Irp->AssociatedIrp.SystemBuffer;  // 사용자 제어

kernel_va = MmAllocateContiguousMemory(alloc_size, 0xffffffff);
mdl = IoAllocateMdl(kernel_va, alloc_size, FALSE, FALSE, NULL);
MmBuildMdlForNonPagedPool(mdl);
user_va = MmMapLockedPages(mdl, UserMode);

output[0] = user_va;        // 사용자 모드 가상 주소
output[1] = physical_addr;  // 할당의 물리적 주소

할당 크기, 미해결 할당 수 또는 입력 검증에 대한 검사가 없습니다. 장치를 열려면 관리자 권한이 필요하지만, 핸들을 획득하면 IOCTL이 제한 없이 사용됩니다.

개념 증명

빌드

root@kitploit:~
cargo build --release

드라이버 로드

root@kitploit:~
sc create bsitf binPath= "C:\path\to\bsitf.sys" type= kernel
sc start bsitf

실행

root@kitploit:~
# 기본: 0x1000 (4KB) 할당
cargo run --release

# 사용자 정의 크기 (16진수)
cargo run --release -- 10000

예상 출력

root@kitploit:~
[*] bsitf.sys kernel memory mapping PoC
[*] target alloc size: 0x1000

[+] device handle acquired

[*] allocating 0x1000 bytes of kernel memory via IOCTL 0x222808
[+] kernel allocation succeeded:
    usermode VA:     0x000001D856F90000
    physical addr:   0x00000000BF6CB000

[*] original contents (first 16 bytes):
    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00

[*] writing 0xCC pattern (int3 sled)...
[+] readback: usermode R/W CONFIRMED

[*] freeing kernel mapping via IOCTL 0x22280C
[+] mapping freed successfully

Windows 11 24H2에서 테스트 완료 (관리자 권한 필요).

수정 방안

  1. 할당 크기를 합리적인 상한 값으로 검증
  2. 핸들당 미해결 할당 수 제한
  3. 커널 할당을 사용자 모드 주소 공간에 매핑하지 않음
  4. 물리적 주소를 사용자 모드 호출자에게 반환하지 않음
  5. 모든 버전에서 NonPagedPoolNx 사용

타임라인

날짜이벤트
2026-04-06자동화된 분석을 통해 취약점 발견
2026-04-06Windows 11 24H2에서 PoC 확인
2026-04-06ASUS PSIRT에 보고서 제출

참고 자료

  • CWE-782: insufficient Access Control로 노출된 IOCTL
  • 장치: \Device\bsitf, 심볼릭 링크: \DosDevices\bsitf
  • 디스패치 핸들러: FUN_140001070

면책 조항

이 개념 증명은 승인된 보안 연구 및 책임 있는 공개 목적으로만 제공됩니다. 소유하지 않거나 명시적 테스트 허가를 받지 않은 시스템에 대해 이를 사용하지 마십시오.

도구 다운로드