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-2025-62215-POC — Exploit de prova de conceito para CVE-2025-62215, uma vulnerabilidade de Use-After-Free no kernel do Windows em SepTokenSidSharingEnabled. Inclui um driver de kernel e um exploit em modo de usuário para análise de condição de corrida. | Kitploit
Ferramentas/GitHubGitHub/gowonisgood/cve-2025-62215-poc
Análise de VulnerabilidadesExploraçãoCTFAprendizado e EducaçãoExploração de Binários
GitHubgowonisgood/cve-2025-62215-poc

CVE-2025-62215-POC

Exploit de prova de conceito para CVE-2025-62215, uma vulnerabilidade de Use-After-Free no kernel do Windows em SepTokenSidSharingEnabled. Inclui um driver de kernel e um exploit em modo de usuário para análise de condição de corrida.

Ver Repositório
10115há 3 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-2025-62215 — Windows Token UAF (Condição de Corrida SepTokenSidSharingEnabled)

Este repositório é apenas para fins educacionais e de pesquisa.

Visão Geral

Uma PoC de vulnerabilidade Use-After-Free que ocorre no caminho de otimização SepTokenSidSharingEnabled do kernel do Windows.

  • Quando NtDuplicateToken incrementa o RefCount do Bloco de Valores SID de 1→2, uma thread do kernel concorrente libera o bloco via ExFreePoolWithTag.
  • Em seguida, SepDereferenceSidValuesBlock acessa o bloco liberado → UAF / Double Free.
root@kitploit:~
[User]  IOCTL_REPLACE_SID_BLOCK  →  Coloca um bloco independente (RefCount=1) em TOKEN+0x468
[User]  IOCTL_TRIGGER_FREE       →  Cria thread do kernel (poll até RefCount==2)
[User]  NtDuplicateToken         →  Internamente incrementa RefCount 1→2
[Kernel Thread] RefCount==2 detectado → ExFreePoolWithTag(pBlock)  ← ponto UAF

Estrutura de Arquivos

CaminhoDescrição
exploit/exploitWithDriv/exploitWithDriv.cppExploit em modo usuário (aplicativo console)
tokendriv/tokendrv/tokendrv/tokendrv.cppDriver de kernel (fornece interface IOCTL)

Instruções de Build (Visual Studio)

Pré-requisitos

  • Visual Studio 2022 (MSVC)
  • Windows Driver Kit (WDK) — necessário para build do tokendriv
  • SDK 10.0.26100.x ou superior

1. tokendriv.sys — Driver de Kernel

  1. Abra tokendriv/tokendrv/tokendrv.slnx
  2. Configuração: Release / x64
  3. Build → gera tokendriv/tokendrv/x64/Release/tokendrv.sys
  4. Implantação autônoma: copie apenas o arquivo .sys para a VM

Após instalar o WDK, verifique: Propriedades do Projeto → Driver Settings → Target OS Version

2. exploitWithDriv.exe — Exploit em Modo Usuário

  1. Abra exploit/exploitWithDriv.slnx
  2. Configuração: Release / x64
  3. Propriedades do Projeto → Linker → System → SubSystem: Console
  4. Build → gera exploit/x64/Release/exploitWithDriv.exe
  5. Para implantação autônoma (sem necessidade do Visual C++ Redistributable):
    • C/C++ → Code Generation → Runtime Library: Multi-threaded (/MT)

Execução na VM

Pré-requisitos

  • RAM da VM: 2 GB ou menos (necessário para ativar SepTokenSidSharingEnabled)
  • Conta de teste: test / 1234 (conta local, sem direitos de administrador requeridos)
  • Conexão de Debugging do Kernel (opcional, necessária para análise)
  • cmd como Administrador

Carregar o Driver

root@kitploit:~
sc create tokendriv type= kernel binpath= "C:\caminho\para\tokendrv.sys"
sc start tokendriv

Verifique se o driver está em execução:

root@kitploit:~
sc query tokendriv

O status deve ser RUNNING.

Executar o Exploit

root@kitploit:~
exploitWithDriv.exe

Fluxo de execução:

  1. Verifica FullNumberOfPhysicalPages (deve ser ≤ 0x83400)
  2. LogonUser("test", ".", "1234") → obtém hSource
  3. Pressione Enter para iniciar o loop de corrida (100.000 iterações)
  4. Cada iteração: REPLACE → TRIGGER → NtDuplicateToken → Sleep(1)

Análise da Condição de Corrida (WinDbg KD)

1. Obter o Endereço do Processo Alvo

root@kitploit:~
0: kd> !process 0 0 exploitWithDriv.exe

Exemplo de saída:

root@kitploit:~
PROCESS ffffa88f5e61e080
    SessionId: 1  Cid: 1234    Peb: ...  ParentCid: ...
    Image: exploitWithDriv.exe

ffffa88f5e61e080 é o endereço EPROCESS.

2. Definir Pontos de Parada

Os endereços abaixo podem variar conforme o ambiente — confirme com os símbolos reais do kernel.

A. Incremento do RefCount do Bloco SID (início da janela de corrida)

root@kitploit:~
0: kd> bp fffff800`725c6114 ".if (@$proc == 0xffffa88f5e61e080) { .echo A_REFCNT_INCR; dq poi(@rsi+0x468)+8 L1; gc } .else { gc }"
  • Imprime o RefCount (+0x8) do Bloco de Valores SID em TOKEN+0x468
  • O momento em que o valor muda de 1 → 2 é a janela de corrida

B. Ponto de Leitura UAF

root@kitploit:~
0: kd> bp fffff800`726f51fb ".if (@$proc == 0xffffa88f5e61e080) { .echo REAL_UAF_READ; r rax,rdx; gc } .else { gc }"
  • Ponto onde o bloco liberado é lido
  • Verifique os valores rax, rdx

C. Ponto de Escrita UAF

root@kitploit:~
0: kd> bp fffff800`726f5208 ".if (@$proc == 0xffffa88f5e61e080) { .echo REAL_UAF_WRITE; r rcx,rdx,rax; gc } .else { gc }"
  • Ponto onde o bloco liberado é escrito
  • Verifique rcx, rdx, rax para corrupção

3. Fluxo de Temporização da Corrida

root@kitploit:~
Entrada NtDuplicateToken
    └─ SeTokenCanImpersonate
        └─ SID Block RefCount: 1 → 2        ← bp A (A_REFCNT_INCR)
                                              ← thread do kernel: ExFreePoolWithTag(pBlock)
    └─ SepDereferenceSidValuesBlock
        └─ dereference pBlock (leitura)         ← bp B (REAL_UAF_READ)
        └─ dereference pBlock (escrita)        ← bp C (REAL_UAF_WRITE)

4. Dicas de Análise

  • Se RefCount for 2 imediatamente após A_REFCNT_INCR ser impresso, a janela de corrida foi atingida com sucesso
  • Se REAL_UAF_READ / REAL_UAF_WRITE aparecerem, UAF real é confirmado
  • Rastreie blocos alocados com a tag de pool 'kcoB': !pool <addr> ou !poolused

Principais Offsets (Windows 11 24H2)

EstruturaOffsetCampo
_TOKEN+0x468SepSidValues (ponteiro para Bloco de Valores SID)
Bloco de Valores SID+0x000Length (ULONG)
Bloco de Valores SID+0x008ReferenceCount (LONGLONG)

Descarregar o Driver

root@kitploit:~
sc stop tokendriv
sc delete tokendriv

Baixar ferramenta