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.

··Feeds·Contato·Privacidade·© 2026 Kitploit

Diretório de Ferramentas

Categorias

Ver todas as categorias
Loading categories
CVE-2024-6769 — Writeup técnico e PoC para CVE-2024-6769, encadeando DLL hijacking com envenenamento de cache de ativação para escalar de integridade média para alta em sistemas Windows. | Kitploit
Ferramentas/GitHubGitHub/fortra/cve-2024-6769
Escalada de PrivilégiosAnálise de VulnerabilidadesExploraçãoPapers e PesquisaAprendizado e EducaçãoExploração de Binários
GitHubfortra/cve-2024-6769

CVE-2024-6769

Writeup técnico e PoC para CVE-2024-6769, encadeando DLL hijacking com envenenamento de cache de ativação para escalar de integridade média para alta em sistemas Windows.

Ver Repositório
78118há 2 anosRevisado pelo Kitploit

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

Blogpost: CVE-2024-6769 Envenenando o cache de ativação para elevar de integridade média a alta

Este blog aborda duas falhas encadeadas: A primeira etapa é um bug de sequestro de DLL causado pelo remapeamento da unidade ROOT, e a segunda etapa é um bug de Envenenamento do Cache de Ativação gerenciado pelo servidor CSRSS.

A primeira etapa foi apresentada em detalhes na Ekoparty 2023 na apresentação chamada "I'm High" por Nicolás Economou da BlueFrost Security. Ele explicou como explorar a vulnerabilidade que, na época, ainda não havia sido corrigida pela Microsoft. Isso permitia que um usuário de INTEGRIDADE MÉDIA fosse elevado a ter PRIVILÉGIOS ALTOS limitados, mas sem o acesso completo para ser um Administrador completo.

A segunda etapa não foi apresentada naquela conferência, embora algumas etapas tenham sido sugeridas para iniciar a pesquisa.

Para começar, revisaremos a primeira etapa para fornecer um contexto introdutório. A partir daí, mergulharemos na minha pesquisa sobre a segunda etapa, detalhando a obtenção da escalada completa de INTEGRIDADE ALTA limitada para Administrador completo. Isso inclui uma Prova de Conceito funcional completa para ambas as etapas para todas as versões do Windows, que foi testada com sucesso no Windows 10, Windows 11, Windows Server 2022 e Windows Server 2019 com todas as atualizações aplicadas.

Índice:

  • Revisão da primeira etapa
  • Passos para seguir para explorar a segunda etapa.
  • O que é o Cache de Ativação?
  • Usando Vetor de Ataque ALPC para Envenenar o Cache de Ativação
  • Como o sistema aceitará nosso Contexto de Ativação?
  • Como envenenar o Cache de Ativação?
  • Como meu Manifesto XML incorporado é lido?
  • Como o manifesto XML incorporado é analisado?
  • Como minha imm32.dll falsa acabou carregada?
  • Demonstração em vídeo.
  • Prova de Conceito Funcional
  • Breve descrição das etapas de exploração

Revisão da primeira etapa

Um quadrado vermelho com texto branco e um número nele Descrição gerada automaticamente

O único requisito para esta etapa é que o processo inicial comece em um NÍVEL DE INTEGRIDADE MÉDIA e o usuário pertença ao grupo Administrador.

A primeira etapa da exploração pode ser resumida nos seguintes passos:

  1. Remapeamento da unidade ROOT usando a função NtCreateSymbolicLinkObject.

Por exemplo: remapear o disco de

"C:" para "C:\users\public"

Isso também remapeará a pasta "system32" de

"C:\windows\system32" para "C:\users\public\windows\system32"

  1. Após o remapeamento, alguns Serviços são afetados e tentarão carregar bibliotecas do novo system32 falso controlado pelo usuário.

Um desses programas afetados é o CTFMON, que é executado em um NÍVEL DE INTEGRIDADE ALTO, mas sem privilégios de Administrador.

Normalmente, ele tenta carregar o módulo chamado MsCtfMonitor.dll da pasta system32 real, mas como a unidade ROOT foi remapeada, ele procura por MsCtfMonitor.dll em nosso system32 falso controlado, onde podemos criar e colocar uma DLL manipulada com o mesmo nome.

  1. Criar MsCtfMonitor.dll

Neste ponto, ao colocar nossa versão de MsCtfMonitor.dll na pasta system32 falsa, sua função DoMsCtfMonitor é chamada e executa nosso código em um NÍVEL DE INTEGRIDADE ALTO.

  1. Colocar uma MessageBoxA na função DoMsCtfMonitor. Quando MsCtfMonitor.dll é carregada, exibirá a MessageBoxA "TRIGGER".

  1. Verificar se a DLL foi carregada no processo CTFMON que é executado no NÍVEL DE INTEGRIDADE ALTO:

Ao mesmo tempo, podemos corroborar que o processo, apesar de estar em um NÍVEL DE INTEGRIDADE ALTO, não possui privilégios de Administrador:

Passos para Exploração da Segunda Etapa Um quadrado vermelho com texto branco e um número nele Descrição gerada automaticamente

Em sua apresentação na Ekoparty, Nicolas sugeriu os seguintes passos para completar a exploração:

Embora pareça simples, requer muito tempo de engenharia reversa e depuração.

Ao cavar um pouco mais nesta história do vetor de ataque, ficou claro que o envenenamento do Cache de Contexto de Ativação tem sido usado em algumas explorações. Consequentemente, vale a pena aprender como a exploração foi feita anteriormente para fornecer contexto e insights adicionais. Detalhes sobre esta exploração estão disponíveis no artigo do Zero Day Initiative, Activation Context Cache Poisoning: Exploiting CSRSS for Privilege Escalation.

O que é o Cache de Ativação?

O uso do cache de ativação ocorre quando um programa vai carregar uma biblioteca que requer uma versão específica.

Por exemplo, se um aplicativo vai carregar C:\Windows\System32\comctl32.dll, não há garantia de que a comctl32.dll naquele local seja a versão que o aplicativo precisa. Este é um caso de uso básico do Cache de Contextos de Ativação. O programa pode enviar uma solicitação ao servidor CSRSS para processar uma nova Entrada de Contexto de Ativação a ser inserida no cache, para que este programa possa carregar a versão específica da biblioteca necessária.

Para este propósito, é usado o chamado manifesto, que está em formato XML. Geralmente é incorporado como um recurso em um arquivo EXE ou DLL. Alternativamente, o Windows procurará um arquivo de manifesto na mesma pasta onde o executável do programa está localizado.

A URL mencionada acima tem alguns exemplos de arquivos de manifesto usados por explorações antigas, como enganar o sistema para carregar a biblioteca advapi32.dll de um diretório controlado pelo atacante que foi alcançado através da técnica de PATH TRAVERSAL.

Claro, alguns vetores de ataque usados foram corrigidos, e algumas novas técnicas foram descobertas. Além disso, na correção de outubro de 2022 para o Windows 11 22H2, uma nova verificação foi adicionada.

Após esta correção ser implementada, a verificação quando um Contexto de Ativação (ACTX) é registrado só pode ser contornada se o processo que adiciona a nova entrada no cache tiver o mesmo RID ou superior ao processo que a utilizará.

Em winnt.h podemos ver os valores RID:

Baixar ferramenta