Skip to content
KitploitKITPLOIT
StrumentiBlog
Invia
StrumentiBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

··Feed·Contatto·Privacy·© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
PrintSpoofer-ReflectiveDLL — La vulnerabilità di escalation dei privilegi dello Spooler di stampa di Windows (CVE-2019-1040/CVE-2019-1019) è stata implementata come DLL riflessiva per i test di penetrazione. | Kitploit
Strumenti/GitHubGitHub/jonyfilc/printspoofer-reflectivedll
Escalation di PrivilegiExploitMovimento LateralePost-ExploitPenetration TestingRed TeamingSviluppo Payload
GitHubjonyfilc/printspoofer-reflectivedll

PrintSpoofer-ReflectiveDLL

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Condividi

La vulnerabilità di escalation dei privilegi dello Spooler di stampa di Windows (CVE-2019-1040/CVE-2019-1019) è stata implementata come DLL riflessiva per i test di penetrazione.

Vedi Repository
23425 giorni faNon ancora revisionato

Dettagli di PrintSpoofer

License Platform C++

PrintSpoofer è uno strumento che esegue un escalation dei privilegi locale sfruttando una vulnerabilità nel servizio Print Spooler di Windows (CVE-2019-1040 / CVE-2019-1019). Questo progetto implementa l'exploit PrintSpoofer in formato Reflective DLL, rendendolo adatto per l'uso con framework di penetration testing come Cobalt Strike.

Sommario

  • Panoramica
  • Come funziona
  • Dettagli tecnici
  • Requisiti
  • Compilazione
  • Utilizzo
  • Struttura del progetto
  • Disclaimer di sicurezza
  • Riferimenti

Panoramica

PrintSpoofer sfrutta una vulnerabilità nel servizio Print Spooler di Windows che consente a un utente con privilegi bassi di ottenere privilegi di livello SYSTEM. L'exploit abusa del modo in cui il servizio Print Spooler gestisce le named pipe.

Caratteristiche

  • Formato Reflective DLL — può essere caricato interamente in memoria senza toccare il disco
  • Funziona con il privilegio SE_IMPERSONATE_NAME
  • Comunica con il servizio Print Spooler utilizzando il protocollo RPC
  • Utilizza il meccanismo Named Pipe per eseguire l'impersonificazione del token

Come funziona

PrintSpoofer opera eseguendo i seguenti passaggi:

1. Controllo dei privilegi

L'exploit verifica innanzitutto se il token corrente ha il privilegio SE_IMPERSONATE_NAME. È necessario per impersonare il token di un altro utente.

2. Creazione della named pipe

Viene creata una named pipe utilizzando un UUID casuale. Il percorso della pipe è:

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

3. Attesa della connessione alla pipe

Si attende una connessione asincrona sulla named pipe creata. Viene creato un evento e la pipe viene preparata per accettare connessioni in arrivo.

4. Attivazione della connessione del Print Spooler

In un thread separato, viene effettuata una chiamata RPC al servizio Print Spooler. Invocando RpcRemoteFindFirstPrinterChangeNotificationEx, il servizio tenta di connettersi alla pipe che abbiamo creato.

5. Impersonificazione del token

Quando il servizio Print Spooler (in esecuzione come SYSTEM) si connette alla named pipe, l'exploit utilizza ImpersonateNamedPipeClient per impersonare il token del servizio. Ciò comporta l'ottenimento dei privilegi SYSTEM.

6. Operazione privilegiata

Con un token SYSTEM, è ora possibile eseguire azioni ad alta privilegi.

Dettagli tecnici

Vulnerabilità del Print Spooler

Il servizio Print Spooler di Windows elabora le notifiche della stampante attraverso named pipe. Poiché il servizio non convalida correttamente le connessioni alle pipe, un attaccante può indurlo a connettersi a una pipe malevola e quindi impersonificare il token SYSTEM.

Comunicazione RPC

Il progetto comunica con il servizio Print Spooler utilizzando MS-RPRN (Print System Remote Protocol). Questo protocollo è definito attraverso un file IDL (Interface Definition Language) e abilita le chiamate RPC.

Iniezione Reflective DLL

Una DLL riflessiva si comporta diversamente dalle DLL standard:

  • Può essere caricata direttamente in memoria senza toccare il disco
  • Non richiede l'API LoadLibrary
  • Analizza e carica manualmente il formato PE (Portable Executable)

Requisiti

Per la compilazione

  • Visual Studio 2022 (carico di lavoro Sviluppo desktop in C++)
  • Windows 10/11

Per l'esecuzione

  • Windows 10/11
  • Servizio Print Spooler in esecuzione
  • Privilegio SE_IMPERSONATE_NAME (generalmente disponibile per la maggior parte degli utenti standard)
  • Cobalt Strike o un framework simile (opzionale)

Compilazione

Compilazione con Visual Studio

  1. Aprire il file PrintSpoofer.sln in Visual Studio.

  2. Selezionare Piattaforma soluzione e Configurazione:

    • Piattaforma: x64 o Win32 (a seconda dell'architettura di destinazione)
    • Configurazione: Release (produzione) o Debug (sviluppo)
  3. Compilare la soluzione tramite Compila soluzione (Ctrl+Maiusc+B).

  4. La DLL compilata si troverà in:

    root@kitploit:~
    PrintSpoofer\x64\Release\PrintSpoofer.dll   (per x64)
    PrintSpoofer\Win32\Release\PrintSpoofer.dll (per x86)
    

Opzioni di compilazione

Il progetto utilizza le seguenti definizioni del preprocessore:

  • REFLECTIVE_DLL_EXPORTS: Abilita le esportazioni della DLL riflessiva
  • REFLECTIVEDLLINJECTION_CUSTOM_DLLMAIN: Utilizza un DllMain personalizzato
  • REFLECTIVEDLLINJECTION_VIA_LOADREMOTELIBRARYR: Abilita LoadRemoteLibraryR (in modalità Release)

Utilizzo

Utilizzo con Cobalt Strike

PrintSpoofer può essere utilizzato con il comando elevate di Cobalt Strike:

root@kitploit:~
elevate PrintSpoofer NOME_LISTENER

Dove:

  • PrintSpoofer: Il nome del modulo di elevazione
  • NOME_LISTENER: Il listener che riceverà la shell elevata

Utilizzo manuale

La DLL può essere caricata manualmente utilizzando tecniche di iniezione di DLL riflessive.

Output previsto

Un'esecuzione riuscita dell'exploit mostrerà:

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

Descrizione dei file

dllmain.cpp

  • Punto di ingresso della DLL (DllMain)
  • Controlla la logica dell'exploit
  • Gestisce le funzionalità specifiche della DLL riflessiva

PrintSpoofer.cpp

  • CheckAndEnablePrivilege: Verifica e abilita i privilegi del token
  • GenerateRandomPipeName: Genera nomi di pipe utilizzando UUID casuali
  • CreateSpoolNamedPipe: Crea named pipe e configura la sicurezza
  • ConnectSpoolNamedPipe: Prepara le pipe per le connessioni asincrone
  • TriggerNamedPipeConnection: Crea un thread per attivare la connessione del Print Spooler
  • TriggerNamedPipeConnectionThread: Esegue la chiamata RPC
  • GetSystem: Esegue l'impersonificazione del token

ms-rprn.idl

  • Definizione IDL del protocollo MS-RPRN di Microsoft
  • Elaborato dal compilatore MIDL per generare stub RPC

ReflectiveLoader.cpp

  • Implementa l'analisi del PE e il caricamento in memoria per l'iniezione di DLL riflessiva

Disclaimer

Questo strumento è destinato esclusivamente a scopi educativi e per test di penetrazione autorizzati.

Riferimenti

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

Licenza

Questo progetto è concesso in licenza con la licenza MIT. Per maggiori informazioni, consultare il file LICENSE.

Scarica lo strumento