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.
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.
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ú.
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.
Implementación de explotación de vulnerabilidades
Enfoque general
Considerar dos direcciones de uso:
Ejecutar código shellcode
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?
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.
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.
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
La vulnerabilidad win32k podría ser eliminada en la nueva versión de Windows.
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.
La detección de vulnerabilidades puede depender de una cobertura de código más completa.
La detección de lecturas y escrituras de memoria anómalas ayuda a descubrir vulnerabilidades similares.
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.
13 me gusta
Recompensa
13
3
Republicar
Compartir
Comentar
0/400
MidnightTrader
· hace16h
Otra gran falla, Windows realmente no funciona.
Ver originalesResponder0
TokenDustCollector
· hace16h
La vulnerabilidad de Microsoft es un poco grave, hasta la Llave privada puede ser robada.
Análisis de vulnerabilidades 0day en Windows: de UAF del menú a la elevación de privilegios en el sistema
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.
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:
Desde una perspectiva más amplia, esta vulnerabilidad podría afectar a todo el ecosistema Web3 que opera sobre la infraestructura Web2.
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ú.
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.
Implementación de explotación de vulnerabilidades
Enfoque general
Considerar dos direcciones de uso:
Elija la segunda opción, divida el proceso de utilización en dos problemas:
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.
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:
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.
Implementación de operaciones de lectura y escritura
Además de la escritura de TOKEN, otras operaciones de escritura utilizan el objeto de clase del primer objeto de ventana.
Resumen
La vulnerabilidad win32k podría ser eliminada en la nueva versión de Windows.
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.
La detección de vulnerabilidades puede depender de una cobertura de código más completa.
La detección de lecturas y escrituras de memoria anómalas ayuda a descubrir vulnerabilidades similares.