Análisis de vulnerabilidades 0day en sistemas Windows: desde la elevación de privilegios en win32k hasta los riesgos de seguridad en Web3

robot
Generación de resúmenes en curso

Análisis y explotación de vulnerabilidades 0day en el sistema Windows de Microsoft

Recientemente, un parche de seguridad publicado por Microsoft ha solucionado una vulnerabilidad de escalada de privilegios en win32k que está siendo activamente explotada. Esta vulnerabilidad afecta principalmente a versiones anteriores del sistema operativo Windows, y parece no poder ser desencadenada en Windows 11. Este artículo analizará cómo los atacantes podrían seguir aprovechando este tipo de vulnerabilidades en el actual entorno de seguridad. El siguiente análisis se llevó a cabo en un entorno de Windows Server 2016.

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

Antecedentes de la vulnerabilidad

Las vulnerabilidades 0day se refieren a fallos de seguridad que no han sido divulgados ni reparados, similares al concepto de transacciones T+0 en los mercados financieros. Este tipo de vulnerabilidades, una vez explotadas maliciosamente, pueden causar daños graves. La vulnerabilidad 0day descubierta en el sistema Windows permite a los atacantes obtener el control total del sistema, lo que les permite llevar a cabo ataques como el robo de información, la destrucción del sistema y la inserción de malware. Desde la perspectiva de Web3, esto podría llevar al robo de claves privadas, la transferencia de activos digitales e incluso amenazar todo el ecosistema Web3 basado en la infraestructura de Web2.

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

Análisis de parches

El análisis del código del parche revela que se corrigió principalmente un problema relacionado con el manejo del conteo de referencias de objetos. Junto con los comentarios del código fuente de win32k de etapas anteriores, se puede entender que el código original solo bloqueaba el objeto de la ventana, sin bloquear el objeto del menú dentro de la ventana, lo que podría causar una referencia incorrecta al objeto del menú.

Numen exclusivo: el exploit 0day de Microsoft puede desmantelar el juego Web3 a nivel de sistema y físico

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

El análisis revela que el MenuItemState en la función xxxEnableMenuItem puede devolver el menú principal de la ventana o un submenú. Hemos construido una estructura de menú especial de cuatro niveles que incluye las siguientes características:

  1. El ID del menú de nivel más bajo D debe ser del tipo de menú del sistema.
  2. El menú superior A también debe ser un menú del sistema, pero se deben eliminar los elementos con el mismo ID que el menú D.
  3. Eliminar la referencia del menú C en el menú B.
  4. La existencia del menú B parece ayudar en el lanzamiento del menú C.

Al activar la vulnerabilidad, se elimina la asociación del menú C y B al devolver la capa de usuario en xxxRedrawTitle, liberando el menú C. Esto provoca que la referencia posterior al objeto de menú C en la función xxxEnableMenuItem sea inválida.

Numen Exclusivo: Vulnerabilidad 0day de Microsoft puede desmantelar el juego de Web3 a nivel de sistema + físico

Explotación de vulnerabilidades ( Exp ) implementación

Enfoque general

Considerar dos posibles direcciones de uso:

  1. Ejecutar shellcode: referencia a vulnerabilidades anteriores como CVE-2017-0263, pero en las versiones más recientes de Windows puede enfrentar muchos obstáculos.

  2. Utilizando primitivas de lectura y escritura para modificar el token: en los últimos años todavía hay experiencias públicas que se pueden consultar, principalmente se necesita resolver el problema de cómo controlar por primera vez el valor de cbwndextra.

Adoptamos la segunda opción, dividiendo exp en dos pasos: controlar el valor de cbwndextra y establecer un primitivo de lectura/escritura estable.

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

primera escritura de datos

Utilizar el objeto de nombre de la clase de ventana WNDClass para ocupar y liberar la memoria del objeto del menú. En la función xxxRedrawWindow, encontrar la ubicación donde se pueden escribir datos, controlando los datos de memoria del objeto anterior para satisfacer la verificación de banderas en la función.

Numen exclusivo: la vulnerabilidad 0day de Microsoft puede desmantelar el juego Web3 a nivel sistémico y físico

diseño de memoria estable

Diseñar la disposición de memoria de tres objetos HWND de 0x250 bytes en continuo, liberar el objeto intermedio y ocuparlo con un objeto HWNDClass. Los objetos HWND en los extremos se utilizan para verificar a través de funciones e implementar primitivas de lectura y escritura. Localizar con precisión la disposición de objetos a través de la filtración de la dirección del manejador del núcleo.

Numen Exclusivo: Vulnerabilidad 0day de Microsoft puede desmantelar la situación de Web3 a nivel de sistema y físico

Implementación de primitivas de lectura y escritura

Cualquier lectura usa la función GetMenuBarInfo, cualquier escritura usa la función SetClassLongPtr. Aparte de la escritura de TOKEN, todas las demás operaciones de escritura se completan a través del objeto de clase del primer objeto de ventana.

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

Conclusión

  1. Microsoft está utilizando Rust para reestructurar el código win32k, lo que podría resolver completamente este tipo de vulnerabilidades en el futuro.

  2. La explotación de este tipo de vulnerabilidades depende principalmente de la filtración de la dirección del manejador de la pila de escritorio, lo que aún representa un riesgo de seguridad para los sistemas antiguos.

  3. El descubrimiento de esta vulnerabilidad puede deberse a una mejor detección de la cobertura del código.

  4. La monitorización de la disposición de memoria anómala y la lectura/escritura de datos de ventana ayuda a detectar vulnerabilidades similares.

Ver originales
This page may contain third-party content, which is provided for information purposes only (not representations/warranties) and should not be considered as an endorsement of its views by Gate, nor as financial or professional advice. See Disclaimer for details.
  • Recompensa
  • 6
  • Compartir
Comentar
0/400
TestnetNomadvip
· hace14h
¿Qué estás diciendo sobre Rust?
Ver originalesResponder0
StealthDeployervip
· hace14h
Ya he cambiado a Linux, es una decisión inteligente.
Ver originalesResponder0
CryptoMotivatorvip
· hace14h
Otra vez haciendo de las suyas, este bug de Microsoft realmente es una tradición antigua.
Ver originalesResponder0
LiquidatedDreamsvip
· hace14h
Siempre usar Microsoft es un engaño.
Ver originalesResponder0
MondayYoloFridayCryvip
· hace14h
Soy el inversor minorista más malo de Web3

Comentario del artículo:

¿Rust puede salvar a Windows? Me hizo reír.
Ver originalesResponder0
CrashHotlinevip
· hace14h
La basura de winxp ha tenido problemas de nuevo.
Ver originalesResponder0
  • Anclado
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)