Skip to content
KitploitKITPLOIT
HerramientasBlog
Enviar
HerramientasBlog
Enviar

¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!

Kitploit es un directorio de herramientas de hacking, ciberseguridad y pentesting. Descubre las últimas actualizaciones de proyectos para encontrar vulnerabilidades, analizar sistemas, automatizar pruebas y fortalecer tu seguridad.

··Feeds·Contacto·Privacidad·© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
PrintSpoofer-ReflectiveDLL — La vulnerabilidad de escalada de privilegios del Print Spooler de Windows (CVE-2019-1040/CVE-2019-1019) se ha implementado como un Reflective DLL para pruebas de penetración. | Kitploit
Herramientas/GitHubGitHub/jonyfilc/printspoofer-reflectivedll
Escalada de PrivilegiosExplotaciónMovimiento LateralPost-ExplotaciónPruebas de PenetraciónRed TeamingDesarrollo de Payloads
GitHubjonyfilc/printspoofer-reflectivedll

Más Populares

Ver todos →

Descubre las herramientas más usadas por nuestra comunidad.

Explora todas las herramientas

Explora nuestra colección de herramientas

Ver todas las herramientas →
Compartir

PrintSpoofer-ReflectiveDLL

La vulnerabilidad de escalada de privilegios del Print Spooler de Windows (CVE-2019-1040/CVE-2019-1019) se ha implementado como un Reflective DLL para pruebas de penetración.

Ver Repositorio
23hace 5 díasAún no revisado

Detalles de PrintSpoofer

License Platform C++

PrintSpoofer es una herramienta que realiza una escalada de privilegios local explotando una vulnerabilidad en el servicio Print Spooler de Windows (CVE-2019-1040 / CVE-2019-1019). Este proyecto implementa el exploit PrintSpoofer en formato Reflective DLL, lo que lo hace adecuado para su uso con frameworks de pruebas de penetración como Cobalt Strike.

Tabla de contenidos

  • Descripción general
  • Cómo funciona
  • Detalles técnicos
  • Requisitos
  • Compilación
  • Uso
  • Estructura del proyecto
  • Descargo de responsabilidad
  • Referencias

Descripción general

PrintSpoofer explota una vulnerabilidad en el servicio Print Spooler de Windows que permite a un usuario con pocos privilegios obtener privilegios de nivel SYSTEM. El exploit abusa de la forma en que el servicio Print Spooler maneja los named pipes.

Características

  • Formato Reflective DLL — se puede cargar completamente en memoria sin tocar el disco
  • Funciona con el privilegio SE_IMPERSONATE_NAME
  • Se comunica con el servicio Print Spooler mediante el protocolo RPC
  • Utiliza el mecanismo Named Pipe para realizar la suplantación de tokens

Cómo funciona

PrintSpoofer opera realizando los siguientes pasos:

1. Comprobación de privilegios

El exploit primero comprueba si el token actual tiene el privilegio SE_IMPERSONATE_NAME. Esto es necesario para suplantar el token de otro usuario.

2. Creación del named pipe

Se crea un named pipe utilizando un UUID aleatorio. La ruta del pipe es:

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

3. Espera de la conexión del pipe

Se espera una conexión asíncrona en el named pipe creado. Se crea un evento y el pipe se prepara para aceptar conexiones entrantes.

4. Activación de la conexión con Print Spooler

En un hilo separado, se realiza una llamada RPC al servicio Print Spooler. Al invocar RpcRemoteFindFirstPrinterChangeNotificationEx, el servicio intenta conectarse al pipe que creamos.

5. Suplantación de token

Cuando el servicio Print Spooler (que se ejecuta como SYSTEM) se conecta al named pipe, el exploit usa ImpersonateNamedPipeClient para suplantar el token del servicio. Esto da como resultado la obtención de privilegios SYSTEM.

6. Operación privilegiada

Con un token SYSTEM, ahora se pueden ejecutar acciones de alto privilegio.

Detalles técnicos

Vulnerabilidad de Print Spooler

El servicio Print Spooler de Windows procesa las notificaciones de impresora a través de named pipes. Debido a que el servicio no valida adecuadamente las conexiones de los pipes, un atacante puede obligarlo a conectarse a un pipe malicioso y luego suplantar el token SYSTEM.

Comunicación RPC

El proyecto se comunica con el servicio Print Spooler mediante el protocolo MS-RPRN (Print System Remote Protocol). Este protocolo se define a través de un archivo IDL (Interface Definition Language) y permite realizar llamadas RPC.

Inyección de DLL reflectante

Una DLL reflectante se comporta de manera diferente a las DLL estándar:

  • Se puede cargar directamente en memoria sin tocar el disco
  • No requiere la API LoadLibrary
  • Analiza y carga manualmente el formato PE (Portable Executable)

Requisitos

Para compilar

  • Visual Studio 2022 (carga de trabajo de desarrollo de C++ para escritorio)
  • Windows 10/11

Para ejecutar

  • Windows 10/11
  • Servicio Print Spooler en ejecución
  • Privilegio SE_IMPERSONATE_NAME (disponible para la mayoría de los usuarios estándar por defecto)
  • Cobalt Strike o un framework similar (opcional)

Compilación

Compilar con Visual Studio

  1. Abra el archivo PrintSpoofer.sln en Visual Studio.

  2. Seleccione la Plataforma de solución y la Configuración:

    • Plataforma: x64 o Win32 (según la arquitectura de destino)
    • Configuración: Release (producción) o Debug (desarrollo)
  3. Compile la solución mediante Build Solution (Ctrl+Shift+B).

  4. La DLL compilada se ubicará en:

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

Opciones de compilación

El proyecto utiliza las siguientes definiciones de preprocesador:

  • REFLECTIVE_DLL_EXPORTS: Habilita las exportaciones de Reflective DLL
  • REFLECTIVEDLLINJECTION_CUSTOM_DLLMAIN: Utiliza un DllMain personalizado
  • REFLECTIVEDLLINJECTION_VIA_LOADREMOTELIBRARYR: Habilita LoadRemoteLibraryR (en modo Release)

Uso

Uso con Cobalt Strike

PrintSpoofer se puede utilizar con el comando elevate de Cobalt Strike:

root@kitploit:~
elevate PrintSpoofer LISTENER_NAME

Donde:

  • PrintSpoofer: El nombre del módulo de elevación
  • LISTENER_NAME: El listener que recibirá la shell elevada

Uso manual

La DLL se puede cargar manualmente utilizando técnicas de inyección de DLL reflectante.

Salida esperada

Una ejecución exitosa del exploit mostrará:

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

Descripción de archivos

dllmain.cpp

  • Punto de entrada de la DLL (DllMain)
  • Controla la lógica del exploit
  • Maneja la funcionalidad específica de la DLL reflectante

PrintSpoofer.cpp

  • CheckAndEnablePrivilege: Comprueba y habilita privilegios del token
  • GenerateRandomPipeName: Genera nombres de pipe utilizando UUID aleatorios
  • CreateSpoolNamedPipe: Crea named pipes y configura la seguridad
  • ConnectSpoolNamedPipe: Prepara los pipes para conexiones asíncronas
  • TriggerNamedPipeConnection: Crea un hilo para activar la conexión con Print Spooler
  • TriggerNamedPipeConnectionThread: Realiza la llamada RPC
  • GetSystem: Realiza la suplantación de token

ms-rprn.idl

  • Definición IDL del protocolo MS-RPRN de Microsoft
  • Procesado por el compilador MIDL para generar los stubs RPC

ReflectiveLoader.cpp

  • Implementa el análisis del PE y la carga en memoria para la inyección de DLL reflectante

Descargo de responsabilidad

Esta herramienta está destinada únicamente a fines educativos y para pruebas de penetración autorizadas.

Referencias

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

Licencia

Este proyecto está licenciado bajo la Licencia MIT. Para más información, consulte el archivo LICENSE.

Descargar herramienta