
PrivKit est un simple beacon object file qui détecte les vulnérabilités d'élévation de privilèges causées par des mauvaises configurations sur Windows OS.
Une collection de Beacon Object Files (BOFs) pour les vérifications d'élévation de privilèges locaux sous Windows.

PrivKit est un outil open-source qui permet aux red teamers et aux testeurs d'intrusion d'identifier rapidement les vecteurs courants d'élévation de privilèges locaux sous Windows à l'aide des Beacon Object Files (BOFs) de Cobalt Strike.
Pour l'utilisation en ligne de commande et des exemples, veuillez vous référer à la section Utilisation.
Si vous trouvez des bogues, n'hésitez pas à les signaler. Vos retours sont précieux pour améliorer la qualité de ce projet !
Les auteurs et contributeurs de ce projet ne sont pas responsables de toute utilisation illégale de l'outil. Il est destiné uniquement à des fins éducatives et de tests de sécurité autorisés. Les utilisateurs sont responsables de garantir une utilisation conforme à la loi.
Remerciements spéciaux à mon ami @nickvourd pour toutes ses contributions.
Remerciements particuliers à l'équipe TrustedSec pour leur excellent projet CS-Situational-Awareness-BOF, qui a servi d'inspiration pour cet outil.
Nous exprimons notre gratitude à l'équipe Cobalt Strike pour leur documentation complète et leurs exemples sur les BOF.
PrivKit a été créé avec ❤️ par @merterpreter.
PrivKit offre une suite complète de vérifications d'élévation de privilèges, notamment :
PrivKit est écrit en C et compilé sous forme de Beacon Object Files, ce qui le rend compatible avec Cobalt Strike 4.x sur des cibles Windows.
⚠️ Veuillez vous assurer que MinGW-w64 est installé sur votre système.
ℹ️ Pour les plateformes Linux (Ubuntu/Debian), installez le paquet suivant :
sudo apt update && sudo apt install mingw-w64 -y
ℹ️ Pour les plateformes MacOS, installez le paquet suivant :
brew install mingw-w64
git clone https://github.com/mertdas/PrivKit.git
cd PrivKit
make_all.sh qui compile tous les BOFs pour les architectures x64 et x86 :./make_all.sh
Cobalt Strike -> Script Manager -> Load -> PrivCheck.cna
beacon> help
Exécutez toutes les vérifications d'élévation de privilèges en une seule fois :
beacon> PrivCheck
Exécutez des vérifications spécifiques selon les besoins :
beacon> AlwaysInstallElevatedCheck
beacon> AutologonCheck
beacon> CredentialManagerCheck
beacon> HijackablePathCheck
beacon> ModifiableAutorunCheck
beacon> ModifiableSVCCheck
beacon> TokenPrivilegesCheck
beacon> UnquotedSVCPathCheck
beacon> PowerShellHistoryCheck
beacon> UACStatusCheck
beacon> AlwaysInstallElevatedCheck
[*] BOF by @merterpreter && @nickvourd
[*] Checking AlwaysInstallElevated privilege escalation vulnerability...
=== AlwaysInstallElevated Check ===
[*] HKCU\...\Installer\AlwaysInstallElevated = 1
[*] HKLM\...\Installer\AlwaysInstallElevated = 1
[+] VULNERABLE: AlwaysInstallElevated is set in both HKCU and HKLM
beacon> UACStatusCheck
[*] BOF by @merterpreter && @nickvourd
[*] Checking UAC status, integrity level, and admin membership...
=== UAC Status Check ===
[11/27 15:08:08] [+] received output:
[*] UAC Enabled (EnableLUA): Yes
[11/27 15:08:08] [+] received output:
[*] ConsentPromptBehaviorAdmin: 5
[11/27 15:08:08] [+] received output:
(Prompt for consent for non-Windows binaries)
[11/27 15:08:08] [+] received output:
[*] PromptOnSecureDesktop: Yes
[11/27 15:08:08] [+] received output:
[11/27 15:08:08] [+] received output:
[*] Integrity Level:
[11/27 15:08:08] [+] received output:
Medium
[11/27 15:08:08] [+] received output:
[*] Local Admin Group Member: Yes
[11/27 15:08:08] [+] received output:
[*] Summary:
[11/27 15:08:08] [+] received output:
[+] User is local admin but NOT elevated (UAC filtered token)
[11/27 15:08:08] [+] received output:
[+] UAC bypass may be possible
| Check | Description |
|---|
| AlwaysInstallElevatedCheck | Vérifie la mauvaise configuration AlwaysInstallElevated dans HKCU et HKLM |
| AutologonCheck | Énumère les informations d'identification Autologon stockées dans le registre Winlogon |
| CredentialManagerCheck | Extrait les informations d'identification du gestionnaire de crédentials Windows |
| HijackablePathCheck | Identifie les répertoires accessibles en écriture dans le PATH système |
| ModifiableAutorunCheck | Trouve les exécutables autorun modifiables dans les clés Run/RunOnce |
| ModifiableSVCCheck | Trouve les services avec des permissions modifiables (DACL) |
| TokenPrivilegesCheck | Énumère les privilèges du jeton de processus actuel |
| UnquotedSVCPathCheck | Détecte les chemins de service non guillemets avec espaces |
| PowerShellHistoryCheck | Vérifie la présence du fichier d'historique PSReadLine de PowerShell |
| UACStatusCheck | Vérifie le statut UAC, le niveau d'intégrité et l'appartenance au groupe administrateur |