Análisis de vulnerabilidades de día cero de Windows: el ecosistema Web3 podría verse gravemente afectado

robot
Generación de resúmenes en curso

Análisis de vulnerabilidades de día cero en el sistema Windows de Microsoft: puede tener un impacto significativo en el ecosistema Web3

El mes pasado, una actualización de seguridad de Microsoft solucionó una vulnerabilidad de escalada de privilegios del núcleo de Windows que estaba siendo explotada de manera maliciosa. Esta vulnerabilidad afecta principalmente a las versiones anteriores del sistema operativo Windows, y Windows 11 parece no verse afectado. Este artículo analizará cómo los atacantes podrían seguir aprovechando este tipo de vulnerabilidades en el contexto de las medidas de seguridad que se refuerzan continuamente.

Hemos completado todo el trabajo de análisis en un entorno de Windows Server 2016.

Una vulnerabilidad de día cero se refiere a una vulnerabilidad del sistema que aún no ha sido descubierta y reparada, similar al concepto de comercio T+0 en los mercados financieros. Una vez que una vulnerabilidad de día cero es explotada maliciosamente, generalmente causa un gran daño. La vulnerabilidad de día cero en el sistema Windows recién descubierta permite a los atacantes obtener el control total del sistema.

Las consecuencias de que un atacante controle el sistema son graves, incluyendo pero no limitado a la filtración de la privacidad personal, la pérdida de datos por fallos en el sistema, pérdidas de propiedades, la inserción de malware, entre otros. Para los usuarios individuales, esto puede llevar al robo de claves privadas de criptomonedas y a la transferencia de activos digitales; en un sentido más amplio, esta vulnerabilidad podría afectar incluso a todo el ecosistema Web3 basado en la infraestructura de Web2.

Numen exclusivo: la vulnerabilidad 0day de Microsoft puede desmantelar la capa de sistema + física del juego Web3

Análisis de parches

Al analizar el parche, descubrimos que el problema parece ser solo que el conteo de referencias de un objeto se ha procesado más de una vez. Dado que win32k es un código más antiguo, podemos encontrar algunos comentarios de código antiguos que indican que el código anterior solo bloqueaba el objeto de la ventana y no el objeto del menú dentro del objeto de la ventana, lo que podría llevar a una referencia incorrecta del objeto del menú.

Numen Exclusivo: La vulnerabilidad 0day de Microsoft puede desmantelar el juego Web3 a nivel de sistema y físico

Prueba de concepto de explotación de vulnerabilidades ( PoC ) implementación

Al analizar el contexto de la función de vulnerabilidad, descubrimos que el menú que se pasa a xxxEnableMenuItem() generalmente ya está bloqueado en la función superior, entonces, ¿qué objeto de menú se supone que debemos proteger aquí?

Al analizar más a fondo el proceso de manejo del objeto de menú en xxxEnableMenuItem, encontramos que las posibles salidas de la función MenuItemState son dos: el menú principal de la ventana o un submenú, incluso un sub-submenú (.

En PoC, hemos construido una estructura de menú especial de cuatro capas, donde los menús adyacentes tienen una relación padre-hijo. Estos menús tienen algunas características específicas que se detectan y evalúan a través de la función xxxEnableMenuItem.

Al devolver la capa de usuario en xxxRedrawTitle, eliminamos la relación de referencia de los menús C y B, liberando exitosamente el menú C. Finalmente, cuando la función xxxEnableMenuItem en el núcleo regresa a la función xxxRedrawTitle, el objeto del menú C al que se iba a hacer referencia ya no es válido.

![Numen exclusivo: la vulnerabilidad 0day de Microsoft puede desmantelar la escena de Web3 a nivel de sistema y físico])https://img-cdn.gateio.im/webp-social/moments-171ea7cb7c6f7190c3f49a2b914eed04.webp(

Explotación de vulnerabilidades ) Exploit ( implementación

Antes de determinar el enfoque de explotación, generalmente realizamos algunos juicios teóricos preliminares para evitar perder tiempo en soluciones inviables. Esta explotación de vulnerabilidades considera principalmente dos direcciones:

  1. Ejecutar código shellcode: consultar las primeras CVE-2017-0263 y CVE-2016-0167. Sin embargo, en versiones más recientes de Windows, este método puede enfrentar algunos problemas difíciles de resolver.

  2. Modificar la dirección del token utilizando primitivas de lectura/escritura: en los últimos años han surgido métodos públicos de referencia. La disposición de la memoria apilada de escritorio y las primitivas de lectura/escritura tienen una utilidad a largo plazo. Principalmente necesitamos analizar cómo controlar por primera vez cbwndextra como un valor extremadamente grande cuando la memoria UAF es reutilizada.

Dividimos todo el proceso de explotación en dos problemas: cómo explotar la vulnerabilidad UAF para controlar el valor de cbwndextra, y cómo lograr operaciones de lectura y escritura estables después de controlar el valor de cbwndextra.

![Numen exclusivo: La vulnerabilidad 0day de Microsoft puede desmantelar el juego Web3 a nivel de sistema y físico])https://img-cdn.gateio.im/webp-social/moments-66af34ab04bec21e27be99bbe29c552a.webp(

Finalmente, elegimos escribir en cb-extra de HWNDClass a través de la operación AND 2 en el indicador en la función xxxRedrawWindow. Esto se debe a que el desplazamiento de cb-extra de HWNDClass es pequeño, podemos controlar los datos de memoria del objeto anterior a través de la memoria de diseño, lo que nos permite determinar el estado del indicador del objeto en la función xxxRedrawWindow.

Para lograr una disposición de memoria estable, diseñamos al menos tres objetos HWND de 0x250 bytes en continuo. Después de liberar el objeto intermedio, ocupamos esa posición con un objeto HWNDClass de 0x250 bytes. Los datos de la parte final del objeto HWND anterior se utilizan para la verificación mediante la bandera de xxxRedrawWindow, y el objeto de menú del siguiente objeto HWND y el objeto HWNDClass se utilizan como medio para las operaciones de lectura y escritura finales.

![Numen exclusivo: vulnerabilidad 0day de Microsoft puede desmantelar el juego de Web3 a nivel de sistema y físico])https://img-cdn.gateio.im/webp-social/moments-1cc94ddafacec491507491eef9195858.webp(

Intentamos mantener el tamaño de los objetos de ventana y de HWNDClass consistente, y asegurarnos de que los datos de extensión del objeto de ventana sean lo suficientemente grandes. A través de las direcciones de los manejadores del núcleo filtrados en la memoria heap, podemos determinar con precisión si los objetos de ventana solicitados están organizados en el orden esperado.

En cuanto a la lectura y escritura de primitivas, utilizamos GetMenuBarInfo)( para implementar la lectura arbitraria y SetClassLongPtr)( para implementar la escritura arbitraria. Aparte de la operación de escritura que reemplaza el TOKEN y depende del objeto de clase de la segunda ventana, todas las demás escrituras utilizan el objeto de clase de la primera ventana a través de un desplazamiento.

![Numen Exclusivo: La vulnerabilidad 0day de Microsoft puede desmantelar el juego de Web3 a nivel de sistema y físico])https://img-cdn.gateio.im/webp-social/moments-697c5814db02534f63b44c0d1d692f83.webp(

Resumen

  1. Estado de win32k: Microsoft está intentando reescribir el código del núcleo relacionado en la versión preliminar de Windows 11 utilizando Rust, y el nuevo sistema podría eliminar este tipo de vulnerabilidades en el futuro.

  2. El proceso de explotación de la vulnerabilidad es relativamente simple: aparte de cómo controlar la primera escritura, que requiere un intento cuidadoso, no se necesita utilizar nuevas técnicas de explotación. Este tipo de vulnerabilidad depende en gran medida de la filtración de direcciones de manejadores de pila de escritorio.

  3. Detección de vulnerabilidades: se supone que puede depender de una detección de cobertura de código más completa. Una vez que la API del sistema puede llegar al punto de vulnerabilidad más profundo en la ruta de ejecución de la función objetivo, y el objeto de ventana está en un estado de referencia anidada múltiple, esa vulnerabilidad podría ser descubierta mediante pruebas de fuzzing.

  4. Otras formas de detección: además de la detección de puntos clave en las funciones que desencadenan vulnerabilidades, la detección de diseños de memoria poco comunes y la lectura/escritura de desplazamientos anómalos de datos adicionales en ventanas o clases de ventanas también puede ser una de las formas de descubrir vulnerabilidades similares.

![Numen exclusivo: la vulnerabilidad 0day de Microsoft puede desmantelar el tablero de Web3 a nivel de sistema y físico])https://img-cdn.gateio.im/webp-social/moments-b0942592135ac96c6279544a62022329.webp(

![Numen exclusivo: vulnerabilidad de 0day de Microsoft puede desmantelar el juego Web3 a nivel de sistema + físico])https://img-cdn.gateio.im/webp-social/moments-b06b098af4f07260fdc03a75da160706.webp(

TOKEN2.54%
Ver originales
Esta página puede contener contenido de terceros, que se proporciona únicamente con fines informativos (sin garantías ni declaraciones) y no debe considerarse como un respaldo por parte de Gate a las opiniones expresadas ni como asesoramiento financiero o profesional. Consulte el Descargo de responsabilidad para obtener más detalles.
  • Recompensa
  • 2
  • Compartir
Comentar
0/400
AltcoinHuntervip
· hace19h
Ver sin decir, tontos viejos del mundo Cripto.
Ver originalesResponder0
MelonFieldvip
· hace19h
El sistema tiene un problema~
Ver originalesResponder0
Opere con criptomonedas en cualquier momento y lugar
qrCode
Escanee para descargar la aplicación Gate
Comunidad
Español
  • 简体中文
  • English
  • Tiếng Việt
  • 繁體中文
  • Español
  • Русский
  • Français (Afrique)
  • Português (Portugal)
  • Bahasa Indonesia
  • 日本語
  • بالعربية
  • Українська
  • Português (Brasil)