Skip to content
KitploitKITPLOIT
HerramientasExploitsBlog
Log in
Enviar
HerramientasExploitsBlog
Enviar

¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!

Kitploit es un directorio de herramientas de hacking, ciberseguridad y pentesting. Descubre las últimas actualizaciones de proyectos para encontrar vulnerabilidades, analizar sistemas, automatizar pruebas y fortalecer tu seguridad.

··Feeds·Contacto·Privacidad·© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
CVE-2024-6769 — Informe técnico y PoC para CVE-2024-6769, que combina el secuestro de DLL con el envenenamiento de la caché de activación para escalar de integridad media a alta en sistemas Windows. | Kitploit
Herramientas/GitHubGitHub/fortra/cve-2024-6769
Escalada de PrivilegiosAnálisis de VulnerabilidadesExplotaciónPapers e InvestigaciónAprendizaje y EducaciónExplotación de Binarios
GitHubfortra/cve-2024-6769

CVE-2024-6769

Informe técnico y PoC para CVE-2024-6769, que combina el secuestro de DLL con el envenenamiento de la caché de activación para escalar de integridad media a alta en sistemas Windows.

Ver Repositorio
78118hace 2 añosRevisado por Kitploit

Más Populares

Ver todos →

Descubre las herramientas más usadas por nuestra comunidad.

Explora todas las herramientas

Explora nuestra colección de herramientas

Ver todas las herramientas →
Compartir

Entrada de blog: CVE-2024-6769 Envenenando la caché de activación para elevar de integridad media a alta

Este blog trata sobre dos bugs encadenados: la primera etapa es un bug de secuestro de DLL causado por el remapeo de la unidad ROOT y la segunda es un bug de envenenamiento de la caché de activación gestionado por el servidor CSRSS.

La primera etapa se presentó en detalle en Ekoparty 2023 en la presentación llamada “I'm High” por Nicolás Economou de BlueFrost Security. Él explicó cómo explotar la vulnerabilidad que, en ese momento, Microsoft aún no había parcheado. Esto permitía elevar a un usuario MEDIUM INTEGRITY para que tuviera PRIVILEGIOS ALTOS limitados, pero sin el acceso completo para ser un Administrador total.

La segunda etapa no se presentó en esa conferencia, aunque se sugirieron algunos pasos para comenzar a investigarla.

Para empezar, revisaremos la primera etapa para proporcionar contexto introductorio. A partir de ahí, profundizaremos en mi investigación sobre la segunda etapa, entrando en los detalles de cómo lograr la escalada completa desde HIGH INTEGRITY limitado hasta Administrador total. Esto incluye un PoC funcional completo para ambas etapas en todas las versiones de Windows, que se ha probado con éxito en Windows 10, Windows 11, Windows Server 2022 y Windows Server 2019 con todas las actualizaciones aplicadas.

Índice:

  • Revisión de la primera etapa
  • Pasos a seguir para explotar la segunda etapa.
  • ¿Qué es la caché de activación?
  • Uso del vector de ataque ALPC para envenenar la caché de activación
  • ¿Cómo aceptará el sistema nuestro contexto de activación?
  • ¿Cómo envenenar la caché de activación?
  • ¿Cómo se lee mi manifiesto XML incrustado?
  • ¿Cómo se analiza el manifiesto XML incrustado?
  • ¿Cómo terminó cargada mi imm32.dll falsa?
  • Demo en video.
  • Prueba de concepto funcional
  • TL;DR Breve descripción de los pasos de explotación

Revisión de la primera etapa

A red square with white text and a number on it Description
automatically generated

El único requisito para esta etapa es que el proceso inicial comience en un nivel MEDIUM INTEGRITY y que el usuario pertenezca al grupo Administradores.

La primera etapa de explotación se puede resumir en los siguientes pasos:

  1. Remapeo de la unidad ROOT usando la función NtCreateSymbolicLinkObject.

Por ejemplo: remapear el disco de

"C:\" a "C:\users\public"

Esto también remapeará la carpeta system32 de

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

  1. Después del remapeo, algunos servicios se ven afectados e intentarán cargar bibliotecas desde el nuevo system32 falso controlado por el usuario.

Uno de estos programas afectados es CTFMON, que se ejecuta a un nivel de integridad HIGH INTEGRITY, pero sin privilegios de Administrador.

Normalmente, intenta cargar el módulo llamado MsCtfMonitor.dll desde la carpeta system32 real, pero como la unidad ROOT fue remapeada, busca MsCtfMonitor.dll en nuestro system32 falso controlado, donde podemos crear y colocar una DLL manipulada con el mismo nombre.

  1. Crear MsCtfMonitor.dll

En este punto, al colocar nuestra versión de MsCtfMonitor.dll en la carpeta system32 falsa, se llama a su función DoMsCtfMonitor y ejecuta nuestro código a un nivel de integridad HIGH INTEGRITY.

  1. Colocar un MessageBoxA en la función DoMsCtfMonitor. Cuando se cargue MsCtfMonitor.dll, mostrará el MessageBoxA "TRIGGER".

  1. Verificar que la DLL se cargó en el proceso CTFMON que se ejecuta en el nivel HIGH INTEGRITY:

Al mismo tiempo, podemos corroborar que el proceso, a pesar de estar en un nivel HIGH INTEGRITY, no tiene privilegios de Administrador:

Pasos para la explotación de la segunda etapa A red square with white text and a number on it Description automatically generated

En su presentación en Ekoparty, Nicolás sugirió los siguientes pasos para completar la explotación:

Aunque esto parece simple, requiere mucho tiempo de ingeniería inversa y depuración.

Al indagar un poco en la historia de este vector de ataque, quedó claro que el envenenamiento de la caché de contextos de activación se ha utilizado en algunos exploits. Por lo tanto, vale la pena aprender cómo se ha realizado la explotación anteriormente para obtener contexto e ideas adicionales. Los detalles de esta explotación están disponibles en el artículo de Zero Day Initiative, Activation Context Cache Poisoning: Exploiting CSRSS for Privilege Escalation.

¿Qué es la caché de activación?

La caché de activación se utiliza cuando un programa va a cargar una biblioteca que requiere una versión específica.

Por ejemplo, si una aplicación va a cargar C:\Windows\System32\comctl32.dll, no hay garantía de que la comctl32.dll en esa ubicación sea la versión que la aplicación necesita. Este es un caso de uso básico de la caché de contextos de activación. El programa puede enviar una solicitud al servidor CSRSS para procesar una nueva entrada de contexto de activación que se agregará a la caché, de modo que el programa pueda cargar la versión específica de la biblioteca necesaria.

Para este propósito, se utiliza el llamado manifiesto, que está en formato XML. Normalmente está incrustado como recurso en un archivo EXE o DLL. Alternativamente, Windows buscará un archivo de manifiesto en la misma carpeta donde se encuentra el ejecutable del programa.

La URL mencionada anteriormente tiene algunos ejemplos de archivos de manifiesto utilizados por exploits antiguos, como engañar al sistema para que cargue la biblioteca advapi32.dll desde un directorio controlado por el atacante, al que se llegaba mediante la técnica de PATH TRAVERSAL.

Por supuesto, algunos vectores de ataque utilizados fueron parcheados y se descubrieron algunas técnicas nuevas. Además, en el parche de octubre de 2022 para Windows 11 22H2, se agregó una nueva comprobación.

Después de que se implementó este parche, la comprobación al registrar un contexto de activación (ACTX) solo se puede omitir si el proceso que agrega la nueva entrada a la caché tiene el mismo RID o un RID mayor que el proceso que la usará.

En winnt.h podemos ver los valores RID:

Descargar herramienta