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
PrintSpoofer-ReflectiveDLL — Die Windows Print Spooler Schwachstelle zur Privilegienausweitung (CVE-2019-1040/CVE-2019-1019) wurde als Reflective DLL für Penetrationstests implementiert. | Kitploit
Tools/GitHubGitHub/jonyfilc/printspoofer-reflectivedll
Privilege EscalationExploitationLaterale BewegungPost-ExploitationPenetrationstestsRed TeamingPayload-Entwicklung
GitHubjonyfilc/printspoofer-reflectivedll

PrintSpoofer-ReflectiveDLL

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen

Die Windows Print Spooler Schwachstelle zur Privilegienausweitung (CVE-2019-1040/CVE-2019-1019) wurde als Reflective DLL für Penetrationstests implementiert.

Repository anzeigen
23vor 5 TagenNoch nicht geprüft

PrintSpoofer Details

License Platform C++

PrintSpoofer ist ein Tool, das eine lokale Privilegienausweitung durchführt, indem es eine Sicherheitslücke im Windows-Print-Spooler-Dienst ausnutzt (CVE-2019-1040 / CVE-2019-1019). Dieses Projekt implementiert den PrintSpoofer-Exploit im Reflective-DLL-Format, was ihn für den Einsatz mit Penetrationstest-Frameworks wie Cobalt Strike geeignet macht.

Inhaltsverzeichnis

  • Übersicht
  • Funktionsweise
  • Technische Details
  • Anforderungen
  • Build
  • Verwendung
  • Projektstruktur
  • Sicherheitshinweis
  • Referenzen

Übersicht

PrintSpoofer nutzt eine Sicherheitslücke im Windows-Print-Spooler-Dienst aus, die es einem Benutzer mit niedrigen Rechten ermöglicht, SYSTEM-Berechtigungen zu erlangen. Der Exploit missbraucht die Art und Weise, wie der Print-Spooler-Dienst benannte Pipes (Named Pipes) behandelt.

Features

  • Reflective-DLL-Format – kann vollständig im Speicher geladen werden, ohne die Festplatte zu berühren
  • Funktioniert mit dem SE_IMPERSONATE_NAME-Privileg
  • Kommuniziert mit dem Print-Spooler-Dienst über das RPC-Protokoll
  • Verwendet den Named-Pipe-Mechanismus zur Token-Impersonation

Funktionsweise

PrintSpoofer funktioniert, indem es die folgenden Schritte ausführt:

1. Privilegienprüfung

Der Exploit prüft zunächst, ob das aktuelle Token über das SE_IMPERSONATE_NAME-Privileg verfügt. Dies ist erforderlich, um das Token eines anderen Benutzers zu imitieren.

2. Erstellen einer benannten Pipe

Eine benannte Pipe wird mit einer zufälligen UUID erstellt. Der Pipe-Pfad lautet:

root@kitploit:~
\\.\pipe\<UUID>\pipe\spoolss

3. Warten auf Pipe-Verbindung

Auf dem erstellten Named Pipe wird auf eine asynchrone Verbindung gewartet. Ein Ereignis wird erstellt, und die Pipe wird darauf vorbereitet, eingehende Verbindungen zu akzeptieren.

4. Auslösen der Print-Spooler-Verbindung

In einem separaten Thread wird ein RPC-Aufruf an den Print-Spooler-Dienst getätigt. Durch das Aufrufen von RpcRemoteFindFirstPrinterChangeNotificationEx versucht der Dienst, eine Verbindung zu der von uns erstellten Pipe herzustellen.

5. Token-Impersonation

Wenn der Print-Spooler-Dienst (der als SYSTEM läuft) eine Verbindung zur benannten Pipe herstellt, verwendet der Exploit ImpersonateNamedPipeClient, um das Token des Dienstes zu imitieren. Dies führt zur Erlangung von SYSTEM-Berechtigungen.

6. Privilegierte Operation

Mit einem SYSTEM-Token können nun Aktionen mit hohen Berechtigungen ausgeführt werden.

Technische Details

Print-Spooler-Sicherheitslücke

Der Windows-Print-Spooler-Dienst verarbeitet Druckerbenachrichtigungen über Named Pipes. Da der Dienst Pipe-Verbindungen nicht ordnungsgemäß validiert, kann ein Angreifer ihn dazu zwingen, eine Verbindung zu einer schädlichen Pipe herzustellen und anschließend das SYSTEM-Token zu imitieren.

RPC-Kommunikation

Das Projekt kommuniziert mit dem Print-Spooler-Dienst über das MS-RPRN (Print System Remote Protocol). Dieses Protokoll wird über eine IDL-Datei (Interface Definition Language) definiert und ermöglicht RPC-Aufrufe.

Reflective-DLL-Injection

Eine Reflective-DLL verhält sich anders als Standard-DLLs:

  • Sie kann direkt in den Speicher geladen werden, ohne die Festplatte zu berühren
  • Benötigt keine LoadLibrary-API
  • Analysiert und lädt manuell das PE-Format (Portable Executable)

Anforderungen

Zum Erstellen

  • Visual Studio 2022 (C++-Desktopentwicklungsworkload)
  • Windows 10/11

Zur Ausführung

  • Windows 10/11
  • Print-Spooler-Dienst läuft
  • SE_IMPERSONATE_NAME-Privileg (standardmäßig für die meisten Standardbenutzer verfügbar)
  • Cobalt Strike oder ein ähnliches Framework (optional)

Build

Erstellen mit Visual Studio

  1. Öffnen Sie die Datei PrintSpoofer.sln in Visual Studio.
  2. Wählen Sie Ihre Projektmappenplattform und Konfiguration:
    • Plattform: x64 oder Win32 (je nach Zielarchitektur)
    • Konfiguration: Release (Produktion) oder Debug (Entwicklung)
  3. Erstellen Sie die Projektmappe über Build Solution (Strg+Umschalt+B).
  4. Die kompilierte DLL befindet sich unter:
    root@kitploit:~
    PrintSpoofer\x64\Release\PrintSpoofer.dll   (für x64)
    PrintSpoofer\Win32\Release\PrintSpoofer.dll (für x86)
    

Build-Optionen

Das Projekt verwendet die folgenden Präprozessordefinitionen:

  • REFLECTIVE_DLL_EXPORTS: Aktiviert Reflective-DLL-Exporte
  • REFLECTIVEDLLINJECTION_CUSTOM_DLLMAIN: Verwendet eine benutzerdefinierte DllMain
  • REFLECTIVEDLLINJECTION_VIA_LOADREMOTELIBRARYR: Aktiviert LoadRemoteLibraryR (im Release-Modus)

Verwendung

Verwendung mit Cobalt Strike

PrintSpoofer kann mit dem Befehl elevate von Cobalt Strike verwendet werden:

root@kitploit:~
elevate PrintSpoofer LISTENER_NAME

Wobei:

  • PrintSpoofer: Der Name des Elevator-Moduls
  • LISTENER_NAME: Der Listener, der die erhöhte Shell empfangen wird

Manuelle Verwendung

Die DLL kann manuell mithilfe von Reflective-DLL-Injection-Techniken geladen werden.

Erwartete Ausgabe

Eine erfolgreiche Exploit-Ausführung zeigt:

root@kitploit:~
[+] Found privilege: SeImpersonatePrivilege
[+] Named pipe listening...
[+] ImpersonateNamedPipeClient OK
[+] Exploit successfully, enjoy your shell

Dateibeschreibungen

dllmain.cpp

  • DLL-Einstiegspunkt (DllMain)
  • Steuert die Exploit-Logik
  • Behandelt Reflective-DLL-spezifische Funktionalität

PrintSpoofer.cpp

  • CheckAndEnablePrivilege: Prüft und aktiviert Token-Privilegien
  • GenerateRandomPipeName: Generiert Pipe-Namen mit zufälligen UUIDs
  • CreateSpoolNamedPipe: Erstellt Named Pipes und konfiguriert Sicherheit
  • ConnectSpoolNamedPipe: Bereitet Pipes für asynchrone Verbindungen vor
  • TriggerNamedPipeConnection: Erstellt einen Thread zur Auslösung der Print-Spooler-Verbindung
  • TriggerNamedPipeConnectionThread: Führt RPC-Aufruf durch
  • GetSystem: Führt Token-Impersonation durch

ms-rprn.idl

  • IDL-Definition des Microsoft MS-RPRN-Protokolls
  • Wird vom MIDL-Compiler verarbeitet, um RPC-Stubs zu generieren

ReflectiveLoader.cpp

  • Implementiert PE-Parsing und Speicherladung für Reflective-DLL-Injection

Sicherheitshinweis

Dieses Tool ist ausschließlich für Bildungszwecke und für autorisierte Penetrationstests bestimmt.

Referenzen

  • https://www.itm4n.fr/printspoofer-abusing-impersonate-privileges/
  • https://book.hacktricks.xyz/windows-hardening/windows-local-privilege-escalation

Lizenz

Dieses Projekt ist unter der MIT-Lizenz lizenziert. Weitere Informationen finden Sie in der LIZENZ-Datei.

Tool herunterladen