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
cve-2026-29923 — Prova de conceito para CVE-2026-29923, uma escalada de privilégio local no driver de kernel pstrip64.sys. Demonstra uma primitiva de leitura/escrita de memória física via IOCTL para escalar de usuário não privilegiado para NT AUTHORITY\SYSTEM no Windows. | Kitploit
Ferramentas/GitHubGitHub/mein-0/cve-2026-29923
Escalada de PrivilégiosAnálise de VulnerabilidadesExploraçãoTestes de PenetraçãoAprendizado e EducaçãoExploração de Binários
GitHubmein-0/cve-2026-29923

cve-2026-29923

Prova de conceito para CVE-2026-29923, uma escalada de privilégio local no driver de kernel pstrip64.sys. Demonstra uma primitiva de leitura/escrita de memória física via IOCTL para escalar de usuário não privilegiado para NT AUTHORITY\SYSTEM no Windows.

Ver Repositório
há 2 mesesAinda 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-2026-29923 — pstrip64.sys Escalação de Privilégio Local

Um proof-of-concept minimal para CVE-2026-29923, uma vulnerabilidade no driver de kernel pstrip64.sys (EnTech Taiwan PowerStrip ≤ 3.90.736) que permite que um processo em modo de usuário sem privilégios escalone para NT AUTHORITY\SYSTEM.


O Bug

pstrip64.sys expõe um IOCTL (0x80002008) que aceita um endereço físico fornecido pelo usuário e o mapeia diretamente no espaço de endereço virtual do processo chamador, abrindo \Device\PhysicalMemory e chamando ZwMapViewOfSection com o handle do processo atual. Não há verificação de privilégio, nenhuma validação de endereço além do que HalTranslateBusAddress impõe, e nenhum controle de acesso no link simbólico \\.\PSTRIP64.

O resultado é uma primitiva irrestrita de leitura/escrita de memória física a partir de um processo sem privilégios.


Exploração

Com leitura/escrita física arbitrária disponível, a exploração segue quatro etapas.

1. Escaneamento por estruturas EPROCESS

A RAM física é percorrida em blocos de 2 MB. Cada bloco é escaneado pela tag do pool do kernel Proc (0x636F7250), que marca a alocação do pool que contém a estrutura _EPROCESS de um processo. Candidatos em potencial são validados com três heurísticas leves antes de confiar no PID:

  • PriorityClass == 0x2 — todos os processos ativos rodam com prioridade Normal
  • ProcessLock == 0x0 — o campo de lock está limpo em um processo estável
  • ImageFileName[0] é ASCII imprimível — memória lixo raramente satisfaz isso

2. Localizar ambos os ponteiros de token

Dois alvos são necessários:

  • O endereço físico do campo Token do nosso próprio processo dentro de _EPROCESS
  • O valor do token armazenado na estrutura _EPROCESS do processo System (PID 4)

3. Sobrescrever nosso token

A página de 4 KB contendo nosso campo Token é mapeada e o campo é sobrescrito com o valor do token do System. A partir deste ponto, o kernel do Windows trata nosso processo como NT AUTHORITY\SYSTEM.

4. Abrir um shell

cmd.exe é lançado via CreateProcessA. Como processos filho herdam o token do pai, o shell resultante roda como SYSTEM.


Ressalva sobre MMIO

A janela de endereço físico de 3 GB – 4 GB é reservada para MMIO em sistemas x86. Tentar mapear páginas nessa faixa faz o driver retornar o erro 74 (falha em HalTranslateBusAddress). O escaneamento pula essa janela e retoma em 0x100000000 para capturar estruturas do kernel que o Windows coloca acima da marca de 4 GB.


Requisito de 32 bits

O manipulador de mapeamento do driver escreve o endereço virtual retornado em um campo DWORD (LowPart), truncando o VA de 64 bits para 32 bits. Uma compilação de 64 bits recebe um ponteiro corrompido e trava imediatamente. Compile como x86.


Software Afetado

SoftwareVersões
EnTech Taiwan PowerStrip≤ 3.90.736

Hash do driver (SHA-256):

root@kitploit:~
ab01485bb7c8bc1a9c86096eeea6d31d8fad557bf4d44072b46373d2203faa6e

Offsets do EPROCESS

Os offsets hardcoded visam Windows 10 22H2 x64. Outras versões exigem valores atualizados — use dt nt!_EPROCESS no WinDbg para confirmar.


Compilação

Abra um Prompt de Comando do Desenvolvedor x86 do Visual Studio e execute:

root@kitploit:~
cl /EHsc /O2 exploit.c /Fe:poc.exe

Ou defina o destino da plataforma como x86 no Visual Studio e compile em modo Release. O binário não requer dependências externas além do Windows SDK.


Uso

Carregue pstrip64.sys primeiro (requer administrador para carregar o driver, não para executar a exploração em si uma vez carregado), então:

root@kitploit:~
poc.exe

Uma nova janela cmd.exe será aberta rodando como NT AUTHORITY\SYSTEM.


Mitigação

Bloquear o carregamento do driver (preferido)

  • Adicione o hash do driver acima à lista de bloqueio da sua organização
  • Habilite a Lista de Bloqueio de Drivers Vulneráveis da Microsoft via WDAC
  • Habilite a Integridade de Código Protegida por Hypervisor (HVCI)

Detectar exploração em andamento

  • Alerte sobre novas instalações de serviço em modo kernel para binários de driver desconhecidos
  • Monitore processos de integridade baixa/média gerando filhos no nível SYSTEM
  • Sinalize qualquer processo cujo token mude para NT AUTHORITY\SYSTEM fora de um evento de autenticação legítimo

Aviso Legal

Este código é publicado apenas para fins educacionais e de pesquisa defensiva. Use-o apenas em sistemas de sua propriedade ou para os quais você tenha permissão explícita por escrito para testar. O autor não se responsabiliza por qualquer uso indevido.


Referências

  • Lista de Bloqueio de Drivers Vulneráveis da Microsoft
  • Visão Geral do WDAC
  • Internals do EPROCESS no Windows
  • HalTranslateBusAddress — MSDN
  • ZwMapViewOfSection — MSDN
Baixar ferramenta
CampoOffset
PriorityClass0x5B7
ProcessLock0x438
UniqueProcessId0x440
ImageFileName0x5A8
Token0x4B8