Análisis de vulnerabilidades 0day en Windows: de UAF del menú a la elevación de privilegios en el sistema

robot
Generación de resúmenes en curso

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

Introducción

El mes pasado, el parche de seguridad de Microsoft contenía una vulnerabilidad de escalada de privilegios win32k que se explotaba en la naturaleza, y que solo existía en los sistemas Windows más antiguos. Este artículo analizará cómo los atacantes continúan aprovechando esta vulnerabilidad a pesar de la mejora constante de las medidas de seguridad actuales. El entorno de análisis es Windows Server 2016.

Numen exclusivo: el 0day de Microsoft puede desmantelar la red Web3 desde el sistema y el nivel físico

Antecedentes de la vulnerabilidad

La vulnerabilidad 0day se refiere a vulnerabilidades que no han sido divulgadas ni reparadas, y que pueden ser explotadas maliciosamente para causar un gran daño. La vulnerabilidad 0day descubierta en el sistema Windows permite a los hackers obtener el control total del sistema, y las consecuencias incluyen, entre otras:

  • Robo de información personal
  • Sistema colapsado, pérdida de datos
  • Pérdida financiera
  • Infección de malware
  • La clave privada fue robada
  • Activos digitales transferidos

Desde una perspectiva más amplia, esta vulnerabilidad podría afectar a todo el ecosistema Web3 que opera sobre la infraestructura Web2.

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

Análisis de parches

El parche corrige un problema de manipulación múltiple del conteo de referencias de un objeto. Al analizar los comentarios del código fuente anterior, se descubrió 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 provocar referencias incorrectas al objeto del menú.

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

Análisis de explotación de vulnerabilidades

El análisis revela que en la función xxxEnableMenuItem, la función MenuItemState devuelve dos posibles menús: el menú principal de la ventana o un submenú dentro del menú.

Construir una estructura de menú anidado de múltiples capas especial y establecer propiedades específicas para eludir la detección de funciones. Al devolver la capa de usuario en la función xxxRedrawTitle, eliminar la relación de referencia entre menús y liberar el objeto de menú objetivo. Finalmente, en la función xxxEnableMenuItem, se hace referencia a un objeto de menú que ya no es válido.

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

Implementación de explotación de vulnerabilidades

Enfoque general

Considerar dos direcciones de uso:

  1. Ejecutar código shellcode
  2. Modificar la dirección del token utilizando las primitivas de lectura y escritura.

Elija la segunda opción, divida el proceso de utilización en dos problemas:

  • Cómo utilizar la vulnerabilidad UAF para controlar el valor de cbwndextra
  • ¿Cómo implementar primitivas de lectura y escritura estables?

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

escritura de datos inicial

Utilizar el objeto de nombre de ventana en la clase de ventana WNDClass para liberar el objeto de menú ocupado. Encontrar el momento adecuado para escribir datos en la función xxxRedrawWindow.

La elección final es escribir el parámetro cb-extra de HWNDClass mediante la operación AND 2 con el indicador.

Numen exclusivo: Vulnerabilidad 0day de Microsoft puede desmantelar la estrategia de Web3 a nivel de sistema y físico

diseño de memoria estable

Diseñar tres objetos HWND consecutivos, liberar el objeto intermedio y ocuparlo con un objeto HWNDClass. Los objetos HWND delantero y trasero se utilizan para:

  • Proporcionar parámetros de verificación de la marca
  • Proporcionar un medio de lectura y escritura de primitivos

Determinar con precisión el orden de disposición de los objetos a través de la dirección del manejador del núcleo filtrado.

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

Implementación de operaciones de lectura y escritura

  • Leer cualquiera: GetMenuBarInfo()
  • Escribir cualquiera: SetClassLongPtr()

Además de la escritura de TOKEN, otras operaciones de escritura utilizan el objeto de clase del primer objeto de ventana.

Resumen

  1. La vulnerabilidad win32k podría ser eliminada en la nueva versión de Windows.

  2. El proceso de explotación de la vulnerabilidad es relativamente simple, principalmente depende de la filtración de la dirección del manejador de la pila de escritorio.

  3. La detección de vulnerabilidades puede depender de una cobertura de código más completa.

  4. La detección de lecturas y escrituras de memoria anómalas ayuda a descubrir vulnerabilidades similares.

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

TOKEN3.7%
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
  • 3
  • Republicar
  • Compartir
Comentar
0/400
MidnightTradervip
· 08-08 20:40
Otra gran falla, Windows realmente no funciona.
Ver originalesResponder0
TokenDustCollectorvip
· 08-08 20:37
La vulnerabilidad de Microsoft es un poco grave, hasta la Llave privada puede ser robada.
Ver originalesResponder0
HalfIsEmptyvip
· 08-08 20:36
Ay, otra vez se ha volcado~
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)