El 8 de agosto de 2023, Microsoft finalmente lanzó un parche del kernel para una clase de vulnerabilidades que afectan a Microsoft Windows desde 2015. Las vulnerabilidades conducen a la elevación de privilegios (EoP), que permite que una cuenta con derechos de usuario obtenga privilegios de SISTEMA en un host vulnerable. La causa principal de esta superficie de ataque, según un blog de 2015, es la capacidad de una cuenta de usuario normal de reemplazar la unidad C: original por una falsa colocando un enlace simbólico para las unidades del sistema en el mapa del dispositivo para cada sesión de inicio de sesión. Esta unidad falsa será seguida por el kernel durante la suplantación en lugar de la unidad original del sistema. Más de cinco meses después de que se lanzaron los parches para estas vulnerabilidades, todavía vemos algunos de sus exploits en la naturaleza porque es una manera muy fácil de obtener una solución rápida. SISTEMA DE AUTORIDAD NT y es por eso que puede ser favorecido por actores de amenazas conocidos.
Discutimos estos hallazgos en la conferencia BlackHat MEA en noviembre de 2023, y en diciembre de 2023 y enero de 2024, encontramos dos exploits que aún podrían usar esta superficie de ataque en la versión sin parches de Windows. Ambos exploits están empaquetados en UPX. Después de analizar el primero, vimos que era una versión empaquetada de una muestra de PoC de Google Project Zero. La otra muestra fue una versión empaquetada de un PoC público de SSD Secure Disclosure, incluso usando el mismo NamedPipe. “\\.\Pipe\TyphoonPWN” sin modificaciones. Las rutas de PDB para ambas muestras son:
- C: Usuarios Administrador fuente reposexpx64Releaseexp.pdb
- C:VVS-RroCVEsspoolBitsPocsrcx64ReleasePoC_BITs.pdb
A continuación, resaltaremos los puntos clave y luego nos centraremos en cómo comprobar si alguna de las vulnerabilidades ha sido explotada o si ha habido algún intento de explotarla, y enumeraremos los CVE populares incluidos en esta superficie vulnerable.
Los procesos y servicios afectados incluyen servicios nativos de Windows que se ejecutan de forma predeterminada en la mayoría de las versiones del sistema operativo. Éstas incluyen:
- CSRSSS
- Informe de errores de Windows (WER)
- Servicio de historial de archivos
- Servicio de transferencia de inteligencia en segundo plano (BITS)
- Cola de impresión
Procesos y servicios vulnerables de Windows
Los exploits que afectan esta superficie de ataque comparten una lógica o patrón común, que incluye:
- Buscando una DLL que se ejecute con integridad del sistema.
- La DLL tiene un archivo de manifiesto con reconocimiento de aislamiento.
- La capacidad de cambiar la raíz C: a un directorio grabable mediante enlaces simbólicos.
Esta vulnerabilidad de envenenamiento de la caché del contexto de activación conduce a una escalada de privilegios locales. Es uno de los CVE que fue explotado activamente por un actor de amenazas llamado KNOTWEED | Tsunami de mezclilla.
La reversión del exploit salvaje para CVE-2022-22047 muestra:
Aquí hay una publicación de blog detallada de ZDI que explica el envenenamiento de caché CSRSS.
La segunda vulnerabilidad, que involucra el envenenamiento de la caché CSRSS, fue una solución alternativa para el primer CVE-2022-22047. Después de parchear el atributo “LoadFrom” no documentado, había otro atributo del que se podía abusar para cargar un archivo de manifiesto desde una ruta controlada por el usuario declarando un ensamblado dependiente usando el recorrido de ruta en el archivo. nombre atributo.
El parche para CVE-2022-37989 fue simple: verifique si el nombre El atributo de la dependencia contiene barras diagonales o invertidas y establece una marca para dejar de almacenar en caché este manifiesto sospechoso si se detecta un cruce de ruta de nombre. Este CVE fue descubierto por ZDI.
Cola de impresión | CVE-2022-29104
Print Spooler es un servicio que se ejecuta de forma predeterminada en casi todas las versiones de Windows. Es responsable de administrar los trabajos de impresión en papel enviados desde una computadora a una impresora o servidor de impresión. Revertir los exploits salvajes de la vulnerabilidad CVE-2022-29104 Print Spooler muestra que es una muestra de .NET que crea un enlace simbólico desde C: a la raíz falsa C:Imprint. La muestra se cargó en VirusTotal.
Falso C: estructura de conducción:
- C:ImprimirWindowssistema32
- C:ImprimirWindowsWinSxS
Se puede escribir en todas las carpetas dentro de la carpeta Imprint, lo que permite a un atacante controlar su contenido.
El recorrido de la ruta se agrega a “AssemblyIdentity” para señalar la ruta de escritura de Imprint.
El análisis de vulnerabilidad muestra que:
- Un atacante puede reasignar la unidad raíz (C:) para procesos privilegiados durante la suplantación.
- Durante la suplantación, todos los accesos a archivos se realizan utilizando el mapa de dispositivo DOS del proceso suplantado.
- CSRSS utiliza un manifiesto en paralelo modificado por el usuario para generar el contexto de activación en lugar del manifiesto en la carpeta WinSxS. C:WindowsWinSxS.
- La carpeta WinSxS almacena múltiples copias de archivos y componentes del sistema.
- La carpeta WinSxS proporciona una ubicación central para almacenar diferentes versiones de archivos del sistema que comparten múltiples aplicaciones y procesos.
- La carpeta WinSxS proporciona estabilidad y compatibilidad del sistema al permitir que diferentes aplicaciones utilicen las versiones específicas de los archivos que necesitan.
- WinSxS evita el infierno de DLL, un problema que ocurre cuando diferentes aplicaciones requieren diferentes versiones de la misma DLL.
El sistema operativo Windows utiliza el manifiesto de la aplicación para determinar qué versión es apropiada para cada aplicación.
El manifiesto de la aplicación se almacena en formato XML y describe:
- Las dependencias asociadas con la aplicación.
- Qué permisos requiere la aplicación.
- Qué configuraciones de compatibilidad admite la aplicación.
La mitigación de CSRSS se habilitó para spoolsv.exe y printfilterpipelinesvc.exe para detener la suplantación mientras se cargan recursos externos y luego para reanudar la suplantación después de que se cargan los recursos externos.
Cola de impresión | CVE-2022-41073
Después de que se parcheó CVE-2022-29104, se descubrió otra vulnerabilidad que afecta a Print Spooler: CVE-2022-41073. Revertir el exploit salvaje de esta vulnerabilidad muestra cierta manipulación XML utilizando el recorrido de ruta a una ruta de escritura que contiene una versión modificada de prntvpt.dll que es cargado por Print Spooler.
Según Project Zero, se agregó mitigación a CSRSS, el parche simplemente detuvo cualquier suplantación antes de la CargarBibliotecaExW llamar winpool!CargarNuevoCopiary luego lo reanudó.
Después de eso el CargarBibliotecaExW llamada devuelta:
+ si (Revertir al proceso(&TokenHandle, x) >= 0) { lib = LoadLibraryExW(arg1, 0, dwFlags); + Curriculum Suplantación(Mango de token); + } |
NtOpenFile se llama con el OBJ_IGNORE_IMPERSONATED_DEVICEMAP bandera. Detendrá la suplantación al cargar cualquier recurso externo mientras se usa la API LoadNewCopy. Detener la suplantación significa que los procesos privilegiados no utilizarán la raíz falsa implementada con el proceso de integridad media y, en su lugar, utilizarán la raíz de la unidad C: original para evitar cargar recursos maliciosos o que no son de confianza.
Informe de errores de Windows | CVE-2023-36874
Windows Error Reporting (WER) es un servicio privilegiado que analiza e informa varios problemas de software en Windows. La causa principal de la explotación de la vulnerabilidad CVE-2023-36874 es la API CreateProcess cuando ocurre un bloqueo, porque se puede engañar a la API CreateProcess para que siga la raíz falsa y cree el proceso a partir de esta raíz falsa grabable en el contexto del servicio WER privilegiado. , lo que lleva a una escalada de privilegios.
CVE-2023-36874 fue explotado en estado salvaje y tiene varios PoC publicados. El exploit interactúa con la interfaz COM IWerReport y llama a SubmitReport, luego se llama a UtilLaunchWerManager, que llama a CreateProcess. La API CreateProcess es entonces vulnerable a la modificación del dispositivo DoS.
Una vez que se ejecuta el exploit para enviar un informe de fallo falso, terminará llamando a la API CreateProcess vulnerable.
Servicio de historial de archivos | CVE-2023-35359
El Servicio de historial de archivos se puede utilizar para realizar copias de seguridad automáticas de carpetas y archivos personales, como documentos, imágenes y vídeos. Revertir el exploit salvaje muestra que cuando se inicia el Servicio de historial de archivos, se hace pasar por el usuario actual y luego carga una DLL llamada fhcfg.dll bajo suplantación. Esta DLL tiene una “configuración de manifiesto compatible con la aplicación” que intenta cargar otro recurso llamado msasn1.dll. El exploit comienza con la técnica habitual de cambiar la raíz C: por una raíz grabable falsa.
Informe de errores de Windows – 2Dakota del Norte explotar | CVE-2023-35359
Después de parchear la primera vulnerabilidad de Informe de errores de Windows, que utilizó la API CreateProcess dentro del servicio WER privilegiado y sigue la raíz falsa para crear un proceso. El servicio WER parcheado comenzó a usar CreateProcessAsUser en lugar de CreateProcess API. Sin embargo, después de ese parche, los adversarios encontraron otra forma que podría conducir al uso nuevamente de CreateProcess bajo ciertas condiciones, lo que fue considerado una nueva vulnerabilidad. Por ejemplo, si el servicio WER se marcó como deshabilitado en un sistema y había un proceso privilegiado que se hacía pasar por un usuario de integridad media en ese sistema, y se produce una excepción no controlada durante la suplantación que resulta en una falla, esa falla intenta habilitar el WER. servicio de informes. El análisis detallado de este CVE muestra que no parece ser explotable.
La explotación de CVE-2023-35359
BITS | CVE-2023-35359
El Servicio de Transferencia de Inteligencia en Fondo (BITS) es responsable de facilitar la transferencia asincrónica y priorizada de archivos entre un cliente y un servidor. BITS opera en segundo plano, lo que significa que puede realizar transferencias de archivos sin interrumpir a un usuario ni consumir toda la red disponible.
Puede notar que el número CVE-2023-35359 no ha cambiado para los últimos tres CVE porque Microsoft decidió en el último parche asignar el mismo CVE a todas las vulnerabilidades de este tipo. Por lo tanto, existen diferentes vulnerabilidades en diferentes procesos/servicios pero con el mismo número CVE.
Cronograma para el proceso de omisión/parche desde 2015 hasta agosto de 2023
¿Cómo se aplicó el parche para esta superficie de ataque?
El parche fue aplicado a ObpLookupObjectName para comprobar si el recurso cargado es un objeto de archivo y la llamada a ObpUseSystemDeviceMap tiene éxito. Luego ignora la suplantación y utiliza SystemDevice.
ObpLookupObjectName comprueba FileObjectType seguido de una llamada a ObpUseSystemDeviceMap.
La función ObpUseSystemDeviceMap comprueba si se utilizará el SystemDevice en lugar del dispositivo suplantado.
¿Cómo comprobar si se aprovechó una vulnerabilidad o se intentó explotarla?
Al analizar la mayoría de los exploits dirigidos a esta superficie de ataque, observamos un comportamiento común que podría usarse como indicador de si hubo algún intento de exploit:
- La mayoría de los exploits crean una carpeta grabable dentro de la unidad C:, y la estructura de esta carpeta imita la estructura de la unidad C: original, por ejemplo:
- C:WindowsSystem32 → C: Carpeta falsaWindowsSystem32
- C:WindowsWinSxS → C:Carpeta falsaWindowsWinSxS
- Por lo tanto, encontrar una carpeta grabable que imite la estructura de carpetas de la unidad C: puede ser un indicador de un intento de explotación.
- Copiando los archivos de manifiesto de la carpeta WinSxS original en C:WindowsWinSxS a un directorio grabable y modificarlos podría ser un buen indicador de un intento de explotación.
- Archivos de manifiesto que contienen atributos XML no documentados, como “Cargar desde” o archivos de manifiesto que contienen recorrido de ruta en el “nombre” El atributo podría ser una señal válida de un intento de explotación.
- Crear un enlace simbólico desde la unidad del sistema original a un directorio grabable, especialmente desde procesos con integridad media utilizando el Control RPC directorio de objetos.
Fuente Original CISO2CISO.COM & CYBER SECURITY GROUP