Skip to content
KitploitKITPLOIT
FerramentasBlog
Enviar
FerramentasBlog
Enviar

Ferramentas de Hacking, PenTest e Cibersegurança para o seu Arsenal de Segurança!

Kitploit é um diretório de ferramentas de hacking, cibersegurança e pentesting. Descubra as últimas atualizações de projetos para encontrar vulnerabilidades, analisar sistemas, automatizar testes e fortalecer sua segurança.

··Feeds·Contato·Privacidade·© 2026 Kitploit

Diretório de Ferramentas

Categorias

Ver todas as categorias
Loading categories
PrintSpoofer-ReflectiveDLL — A vulnerabilidade de escalonamento de privilégios do Windows Print Spooler (CVE-2019-1040/CVE-2019-1019) foi implementada como uma Reflective DLL para testes de penetração. | Kitploit
Ferramentas/GitHubGitHub/jonyfilc/printspoofer-reflectivedll
Escalada de PrivilégiosExploraçãoMovimento LateralPós-ExploraçãoTestes de PenetraçãoRed TeamingDesenvolvimento de Payloads
GitHubjonyfilc/printspoofer-reflectivedll

Mais Populares

Ver todos →

Descubra as ferramentas mais usadas pela nossa comunidade.

Explore todas as ferramentas

Navegue pela nossa coleção de ferramentas

Ver todas as ferramentas →
Compartilhar

PrintSpoofer-ReflectiveDLL

A vulnerabilidade de escalonamento de privilégios do Windows Print Spooler (CVE-2019-1040/CVE-2019-1019) foi implementada como uma Reflective DLL para testes de penetração.

Ver Repositório
234há 25 diasAinda não revisado

Detalhes do PrintSpoofer

License Platform C++

O PrintSpoofer é uma ferramenta que realiza escalonamento local de privilégios ao explorar uma vulnerabilidade no serviço Windows Print Spooler (CVE-2019-1040 / CVE-2019-1019). Este projeto implementa o exploit PrintSpoofer no formato Reflective DLL, tornando-o adequado para uso com frameworks de teste de penetração, como o Cobalt Strike.

Sumário

  • Visão Geral
  • Como Funciona
  • Detalhes Técnicos
  • Requisitos
  • Compilação
  • Uso
  • Estrutura do Projeto
  • Aviso de Segurança
  • Referências
  • Licença

Visão Geral

O PrintSpoofer explora uma vulnerabilidade no serviço Windows Print Spooler que permite que um usuário de baixo privilégio obtenha privilégios de nível SYSTEM. O exploit abusa da forma como o serviço Print Spooler lida com named pipes.

Recursos

  • Formato Reflective DLL — pode ser carregado inteiramente em memória sem tocar no disco
  • Funciona com o privilégio SE_IMPERSONATE_NAME
  • Comunica-se com o serviço Print Spooler usando o protocolo RPC
  • Usa o mecanismo de Named Pipe para realizar a impersonação de token

Como Funciona

O PrintSpoofer opera executando as seguintes etapas:

1. Verificação de Privilégio

O exploit primeiro verifica se o token atual possui o privilégio SE_IMPERSONATE_NAME. Isso é necessário para fazer a impersonação do token de outro usuário.

2. Criação do Named Pipe

Um named pipe é criado usando um UUID aleatório. O caminho do pipe é:

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

3. Aguardando a Conexão do Pipe

Uma conexão assíncrona é aguardada no named pipe criado. Um evento é criado e o pipe é preparado para aceitar conexões de entrada.

4. Acionando a Conexão do Print Spooler

Em uma thread separada, uma chamada RPC é feita ao serviço Print Spooler. Ao invocar RpcRemoteFindFirstPrinterChangeNotificationEx, o serviço tenta se conectar ao pipe que criamos.

5. Impersonação de Token

Quando o serviço Print Spooler (executando como SYSTEM) se conecta ao named pipe, o exploit usa ImpersonateNamedPipeClient para fazer a impersonação do token do serviço. Isso resulta na obtenção de privilégios de SYSTEM.

6. Operação com Privilégios

Com um token SYSTEM, ações de alto privilégio agora podem ser executadas.

Detalhes Técnicos

Vulnerabilidade do Print Spooler

O serviço Windows Print Spooler processa notificações de impressora por meio de named pipes. Como o serviço não valida adequadamente as conexões de pipe, um atacante pode forçá-lo a se conectar a um pipe malicioso e então fazer a impersonação do token SYSTEM.

Comunicação RPC

O projeto se comunica com o serviço Print Spooler usando o MS-RPRN (Print System Remote Protocol). Este protocolo é definido por meio de um arquivo IDL (Interface Definition Language) e permite chamadas RPC.

Injeção de Reflective DLL

Uma reflective DLL se comporta de maneira diferente das DLLs padrão:

  • Pode ser carregada diretamente na memória sem tocar no disco
  • Não requer a API LoadLibrary
  • Analisa e carrega manualmente o formato PE (Portable Executable)

Requisitos

Para Compilação

  • Visual Studio 2022 (carga de trabalho de Desenvolvimento para Desktop com C++)
  • Windows 10/11

Para Execução

  • Windows 10/11
  • Serviço Print Spooler em execução
  • Privilégio SE_IMPERSONATE_NAME (disponível para a maioria dos usuários padrão por padrão)
  • Cobalt Strike ou um framework semelhante (opcional)

Compilação

Compilando com o Visual Studio

  1. Abra o arquivo PrintSpoofer.sln no Visual Studio.

  2. Selecione sua Plataforma de Solução e Configuração:

    • Plataforma: x64 ou Win32 (dependendo da arquitetura de destino)
    • Configuração: Release (produção) ou Debug (desenvolvimento)
  3. Compile a solução por meio de Build Solution (Ctrl+Shift+B).

  4. A DLL compilada estará localizada em:

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

Opções de Compilação

O projeto usa as seguintes definições de pré-processador:

  • REFLECTIVE_DLL_EXPORTS: Habilita as exportações de Reflective DLL
  • REFLECTIVEDLLINJECTION_CUSTOM_DLLMAIN: Usa um DllMain personalizado
  • REFLECTIVEDLLINJECTION_VIA_LOADREMOTELIBRARYR: Habilita o LoadRemoteLibraryR (no modo Release)

Uso

Usando com o Cobalt Strike

O PrintSpoofer pode ser usado com o comando elevate do Cobalt Strike:

root@kitploit:~
elevate PrintSpoofer LISTENER_NAME

Onde:

  • PrintSpoofer: O nome do módulo de elevação
  • LISTENER_NAME: O listener que receberá o shell elevado

Uso Manual

A DLL pode ser carregada manualmente usando técnicas de injeção de Reflective DLL.

Saída Esperada

Uma execução bem-sucedida do exploit exibirá:

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

Descrições de Arquivos

dllmain.cpp

  • Ponto de entrada da DLL (DllMain)
  • Controla a lógica do exploit
  • Lida com funcionalidades específicas de reflective DLL

PrintSpoofer.cpp

  • CheckAndEnablePrivilege: Verifica e habilita privilégios de token
  • GenerateRandomPipeName: Gera nomes de pipe usando UUIDs aleatórios
  • CreateSpoolNamedPipe: Cria named pipes e configura a segurança
  • ConnectSpoolNamedPipe: Prepara pipes para conexões assíncronas
  • TriggerNamedPipeConnection: Cria uma thread para acionar a conexão do Print Spooler
  • TriggerNamedPipeConnectionThread: Realiza a chamada RPC
  • GetSystem: Realiza a impersonação de token

ms-rprn.idl

  • Definição IDL do protocolo MS-RPRN da Microsoft
  • Processada pelo compilador MIDL para gerar stubs RPC

ReflectiveLoader.cpp

  • Implementa a análise de PE e o carregamento em memória para injeção de Reflective DLL

Aviso Legal

Esta ferramenta destina-se apenas a fins educacionais e a testes de penetração autorizados.

Referências

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

Licença

Este projeto é licenciado sob a Licença MIT. Para mais informações, consulte o arquivo LICENSE.

Baixar ferramenta