Skip to content
KitploitKITPLOIT
FerramentasExploitsBlog
Log in
Enviar
FerramentasExploitsBlog
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.

FeedsContatoPrivacidade© 2026 Kitploit

Diretório de Ferramentas

Categorias

Ver todas as categorias
Loading categories
CVE-2021-1675 — Prova de conceito educacional para PrintNightmare (CVE-2021-1675/34527) com payload simulado não funcional, análise do fluxo de ataque, mapeamento MITRE, orientações de detecção e etapas de remediação. | Kitploit
Ferramentas/GitHubGitHub/hkenzokimura/cve-2021-1675
Escalada de PrivilégiosAnálise de VulnerabilidadesExploraçãoMovimento LateralTestes de PenetraçãoAprendizado e Educação
GitHubhkenzokimura/cve-2021-1675

CVE-2021-1675

Prova de conceito educacional para PrintNightmare (CVE-2021-1675/34527) com payload simulado não funcional, análise do fluxo de ataque, mapeamento MITRE, orientações de detecção e etapas de remediação.

Ver Repositório
29há 1 mêsAinda não revisado

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

🖨️ CVE-2021-1675 — PrintNightmare Windows Print Spooler RCE/LPE

Type: Proof of Concept — Simulated (Non-Functional) CVE: CVE-2021-1675 + CVE-2021-34527 CVSS: 7.8 (LPE) / 8.8 (RCE) Alias: PrintNightmare Patched: Junho/Julho 2021 — KB5004945 Adicionado ao CISA KEV: Julho 2021

⚠️ O payload deste PoC é explicitamente fictício e não-malicioso — apenas 4 bytes de cabeçalho DCE/RPC seguidos do nome da função em ASCII. Não executa código, não instala driver, não eleva privilégios. Uso exclusivo para fins de aprendizado e desenvolvimento de detecções.

Developed by: HKK


$ cat ./vulnerability_summary.txt

CVE-2021-1675, conhecido como PrintNightmare, é uma vulnerabilidade crítica de Remote Code Execution e Local Privilege Escalation no serviço Windows Print Spooler. A falha permite que atacantes executem código arbitrário com privilégios SYSTEM explorando a função RpcAddPrinterDriverEx(), usada para instalação remota de drivers de impressora sem validação adequada de controle de acesso.

Originalmente classificada como LPE (CVSS 7.8) e patchada no Patch Tuesday de junho de 2021, a Microsoft reclassificou a vulnerabilidade como RCE (CVSS 8.8) em 21 de junho. Para evitar confusão, o vetor RCE recebeu um novo identificador, CVE-2021-34527 — ambos são comumente chamados de PrintNightmare.


$ cat ./timeline.txt

Jun 08, 2021  Microsoft publica patch inicial no Patch Tuesday — CVE-2021-1675 (LPE, CVSS 7.8)
Jun 21, 2021  Microsoft reclassifica como RCE (CVSS 8.8)
Jun 29, 2021  Pesquisadores publicam PoC acidentalmente — acreditando ser a mesma vuln já patchada
Jul 01, 2021  CVE-2021-34527 atribuído para o vetor RCE — distinto do LPE original
Jul 02, 2021  Microsoft lança patch emergencial out-of-band: KB5004945
Jul 2021      CISA adiciona ao Known Exploited Vulnerabilities Catalog
              Exploração ativa por grupos de ransomware (Vice Society, Magniber, etc.)

$ cat ./architecture.txt

Por que o Print Spooler é um vetor tão valioso?

┌──────────────────────────────────────────────────────────────────────────┐
│              PRINTNIGHTMARE — ATTACK FLOW                                │
│                                                                          │
│  ATACANTE (usuário autenticado)         WINDOWS PRINT SPOOLER           │
│                                                  (spoolsv.exe)          │
│  1. Autenticar com qualquer             ┌────────────────────────────┐   │
│     conta de domínio válida             │  Roda como SYSTEM          │   │
│                    │                    │  Ativo por padrão em todos │   │
│  2. Conectar via RPC ao                 │  os Windows, incluindo DCs │   │
│     named pipe \pipe\spoolss            └──────────────┬─────────────┘   │
│                    │                                   │                 │
│  3. Chamar RpcAddPrinterDriverEx()                     │                 │
│     com path para DLL maliciosa ──────────────────────►│                 │
│     (UNC: \\attacker\share\evil.dll)                   │                 │
│                                           ┌────────────▼────────────┐   │
│                                           │ Print Spooler carrega   │   │
│                                           │ o driver (DLL) como     │   │
│                                           │ SYSTEM sem verificar    │   │
│                                           │ origem ou integridade   │   │
│                                           └────────────┬────────────┘   │
│                                                        │                 │
│  ◄── RCE / LPE como SYSTEM ───────────────────────────┘                 │
│       New admin user, reverse shell,                                     │
│       ransomware deployment, etc.                                        │
│                                                                          │
│  ─────────────────────────────────────────────────────────────────────  │
│  ESTE POC: apenas TCP connect + 25 bytes → sem RPC real → sem exploit   │
└──────────────────────────────────────────────────────────────────────────┘

$ cat ./design_decisions.md

1. Análise do Payload Fictício

fake_rpc_payload = b"\x05\x00\x0b\x03RpcAddPrinterDriverEx"

Este payload tem 25 bytes e demonstra dois conceitos simultaneamente:

Bytes 0-3: Cabeçalho DCE/RPC legítimo

ByteValorSignificado
\x055Versão do protocolo DCE/RPC (versão 5 — padrão Windows)
\x000Minor version 0
\x0b11PDU Type: BIND — primeiro passo da negociação RPC
\x033Flags: `PFC_FIRST_FRAG(0x01)

Bytes 4-24: Nome da função em ASCII

RpcAddPrinterDriverEx — o nome da função vulnerável, em texto plano.

Por que esse payload não funciona como exploit real?

Um BIND RPC legítimo exigiria, após o header de 4 bytes:

- max_xmit_frag     (2 bytes)
- max_recv_frag     (2 bytes)
- assoc_group_id    (4 bytes)
- num_ctx_items     (1 byte)
- context_elem[]    → Interface UUID do MS-RPRN:
                      {12345678-1234-ABCD-EF00-0123456789AB}
- transfer_syntaxes → NDR UUID

Sem essa estrutura, o Windows rejeita o pacote imediatamente. O payload é, efetivamente, apenas uma asserção de conectividade — "consigo alcançar a porta 445 com esse payload fictício?".


2. Porta 445 — SMB como transporte RPC

sock.connect((target_ip, 445))

Por que 445 e não 135 (RPC Endpoint Mapper)?

O PrintNightmare usa o SMB named pipe \pipe\spoolss como transporte — não o RPC direto. O fluxo real é:

1. TCP connect → porta 445 (SMB)
2. SMB negotiate + session setup (autenticação NTLM/Kerberos)
3. Tree connect → IPC$
4. Named pipe open → \pipe\spoolss
5. DCE/RPC BIND → interface MS-RPRN
6. RpcAddPrinterDriverEx() call com NDR marshaling

O PoC simula apenas o passo 1 — a conexão TCP inicial — sem implementar os passos 2-6.

sock.settimeout(5): timeout de 5 segundos previne que o PoC fique bloqueado em hosts que não respondem. Útil para scanning rápido de disponibilidade da porta.


3. CVE-2021-1675 vs CVE-2021-34527 — A Distinção

AspectoCVE-2021-1675CVE-2021-34527
VetorLocal (LPE)Remoto (RCE)
CVSS7.88.8
AutenticaçãoConta localConta de domínio autenticada
PatchJunho 2021 (Patch Tuesday)Julho 2021 (out-of-band KB5004945)
Função vulnerávelRpcAddPrinterDriverExRpcAddPrinterDriverEx
CenárioEscalação localRCE remoto via SMB named pipe

A causa raiz em ambos é a mesma: a função RpcAddPrinterDriverEx() falha em validar a origem dos arquivos de driver, não impõe restrições de privilégio adequadas para instalação de drivers, e não verifica a autenticidade ou integridade das DLLs sendo carregadas.


$ cat ./mitre_mapping.yml

tactic: Initial Access / Lateral Movement
  - T1210    # Exploitation of Remote Services
             # RPC call via \pipe\spoolss para host remoto
             # Requer credencial de domínio válida

tactic: Privilege Escalation
  - T1068    # Exploitation for Privilege Escalation
             # usuário comum → SYSTEM via Print Spooler
             # CVE-2021-1675 (LPE): processo local eleva para SYSTEM

tactic: Execution
  - T1569.002  # System Services: Service Execution
               # DLL maliciosa carregada pelo spoolsv.exe como SYSTEM
               # Equivalente a execução de código via serviço do Windows

  - T1055      # Process Injection
               # DLL injetada no contexto do processo spoolsv.exe (SYSTEM)
Baixar ferramenta