CÓMO EXPLOTAR LAS VULNERABILIDADES DE ANTIVIRUS Y EDR PARA ELIMINAR DATOS DEL DISPOSITIVO DE LA VÍCTIMA SIN DERECHOS DE ADMINISTRADOR

Un investigador de seguridad ha descubierto una técnica para aprovechar las capacidades de eliminación de datos del software antivirus (AV) y de detección y respuesta de punto final (EDR) ampliamente utilizado para transformar estos programas en borradores de datos. El software en cuestión es de Microsoft, SentinelOne, TrendMicro, Avast y AVG.
O Yair un investigador de SafeBreach tuvo la idea de utilizar las funciones de seguridad existentes en un sistema objetivo. Esto haría que los ataques fueran más encubiertos y eliminaría la necesidad de que un actor de amenazas deba ser un usuario privilegiado para llevar a cabo operaciones dañinas.

La idea de eliminación es generalmente lo primero que viene a la mente cada vez que escucha el término ” limpiador” ..” Sin embargo, hay una distinción esencial que se puede establecer entre los dos. Cuando un proceso en particular en Windows hace una llamada a la función API DeleteFile() esta función luego hace una solicitud al núcleo para eliminar un archivo en particular. Después de eso el kernel navega a la tabla maestra de archivos (MFT) y designa un elemento allí como disponible para su uso. Este elemento no es más que un enlace al contenido del propio archivo. El contenido de los archivos en sí no se elimina realmente del disco; permanecen en el disco duro. Esta es la distinción clave entre borrar algo y limpiarlo. Cuando algo se “borra” significa que la información contenida en él se elimina por completo y no se puede recuperar de ninguna manera.

Una eliminación, por otro lado puede usarse para lograr lo mismo que una limpieza. Según Microsoft Developer Network (MSDN) “cuando los archivos se destruyen desde un disco del sistema de archivos de nueva tecnología (NTFS) sus entradas MFT se marcan como libres y se pueden reutilizar”. Esto indica que un archivo recién generado puede utilizar la misma entrada MFT gratuita si ya existe. Un usuario puede reemplazar el contenido real de un archivo eliminado escribiendo en un archivo al que se le asignó una entrada MFT que el archivo eliminado utilizó anteriormente. Esto es posible ya que la entrada MFT fue utilizada previamente por el archivo eliminado. Después de investigar los métodos que utilizan los limpiaparabrisas modernos conocidos para cerrar la brecha que existe entre una eliminación y un borrado, descubrió que muchos de estos limpiaparabrisas no eliminan archivos sino que los reemplazan.

Este método lo utilizan limpiaparabrisas conocidos como Shamoon, CaddyWiper, DoubleZero, IsaacWiper, KillDisk y Meteor. Esencialmente estos limpiadores abren los archivos que desean eliminar y luego los sobrescriben para garantizar que se reemplace el contenido real del archivo. Sin embargo, este método exige un alto nivel de derechos. Por ejemplo, para que el limpiador pueda eliminar ciertos archivos de la carpeta asociada con la cuenta de administrador es necesario que tenga derechos de acceso a esos archivos. Esto también es cierto para los archivos que componen el sistema. Como consecuencia de esto estos limpiaparabrisas a menudo funcionarán con derechos de administrador.

Los limpiaparabrisas de hoy en día también usan un método conocido como destrucción de unidades que es una de sus otras técnicas. Al usar este método el limpiador primero abre la unidad como un dispositivo y luego comienza a escribir directamente en ella. Como consecuencia de esto es capaz de reemplazar las estructuras de secuencia de arranque que forman parte del NTFS así como el contenido de los archivos. IsaacWiper, KillDisk, una variación del limpiador Petya, SQLShred, StoneDrill, WhisperGate y DriveSlayer son ejemplos de limpiadores conocidos que utilizan este enfoque. Sin embargo para utilizar esta opción deberá tener capacidades de administrador. Esto se debe a que un usuario normal no debería poder corromper por completo nada que esté almacenado en el disco duro.

En esta etapa, sería beneficioso comprender las circunstancias en las que los EDR deciden destruir o poner en cuarentena los datos. Descubrió que la mayoría de los EDR vienen preconfigurados con una configuración que les permite destruir o poner en cuarentena inmediatamente los archivos que consideran peligrosos. Algunos programas hacen esto cada vez que se abre un archivo, momento en el que lo identifican como dañino. Esto es algo que otros EDR realizan después de que los archivos se hayan escrito y luego se hayan cerrado. Y a pesar de ello más EDR sí actúan en cualquiera de los dos casos. Sin embargo la mayoría de los EDR incluyen la capacidad de realizar un análisis que puede ser un análisis especializado de una ruta específica en el sistema de archivos o un análisis más completo de todo el sistema.

El concepto inicial que surgió fue agregar un código dañino a un archivo que de otro modo sería seguro y luego esperar a que el EDR elimine ese código. Sin embargo hay vulnerabilidades con el uso de esta estrategia. La primera es que el limpiador no tiene los derechos de escritura necesarios para la mayoría de los archivos cruciales que puede intentar eliminar. La segunda es que este procedimiento es bastante similar al método de sobrescribir archivos en términos de las llamadas a la API que se requieren. Como resultado abandonó la idea.

Su segundo pensamiento fue engañar al EDR para que pensara que estaba eliminando la ruta que originalmente se suponía que debía eliminar y al mismo tiempo, la dirigía en la dirección de otra ruta para eliminar. En la mayoría de los casos, estas vulnerabilidades pueden explotarse mediante el uso de enlaces. CWE 59, que hace referencia a la categoría de vulnerabilidades de enlace, es bastante conocida en el sector de la ciberseguridad. Microsoft incluso se dio cuenta de que necesitaba otorgar un derecho de usuario especial, al que llamó el derecho de usuario “crear enlaces simbólicos” para permitir a los usuarios crear enlaces simbólicos (enlaces simbólicos) porque se usan comúnmente en una gran cantidad de vulnerabilidades que permiten la escalada de privilegios.  Llamaron a este derecho de usuario el derecho de usuario “crear enlaces simbólicos”. Este privilegio de usuario solo se otorga automáticamente a los administradores; para que otros usuarios puedan acceder a él.

Otro tipo de conexión que se puede realizar en un sistema de archivos NTFS se denomina punto de unión. No pasó mucho tiempo antes de que comenzara a considerar la distinción entre puntos de unión y enlaces simbólicos. Si examinamos un enlace simbólico de directorio local y un punto de unión veremos que desde un punto de vista de alto nivel no hay diferencia entre los dos. Por otro lado a diferencia de un enlace simbólico un punto de unión puede estar formado por un usuario sin privilegios elevados. Rápidamente llegó a la conclusión de que era posible para mí aprovechar una conexión de punto de unión sin embargo todavía necesitaba ubicar la ventana de oportunidad adecuada.

Echemos un vistazo a este escenario para comprender cómo dirigir un EDR en una ubicación determinada dentro de esta ventana de oportunidad. Imaginemos que deseamos eliminar un archivo.sys, que es un controlador y se encuentra en el directorio C:\Windows\System32\drivers . Pero solo somos un usuario normal sin ningún permiso especial. Como usuario sin privilegios, es obvio que no podemos eliminar el archivo. Sin embargo tenemos la capacidad de crear una ruta única que es bastante similar a la ruta que desea eliminar, con la distinción principal de que la mayor parte de la ruta se encuentra dentro de un directorio sobre el que tenemos poder mientras somos usuarios con un nivel de acceso menor. En este caso particular sería C:\temp\Windows\System32\drivers, y este es el directorio donde producimos el archivo.sys.

Su próximo plan de acción fue intentar apoderarse del identificador del archivo malicioso que estaba generando para desencadenar un reinicio del sistema. Se llegó a esta conclusión sobre la base del hecho de que una vez que abrimos un archivo en Windows o creamos un archivo en Windows el sistema operativo nos solicita que elijamos el modo de uso compartido de archivos para determinar si otros procesos pueden editar o no o eliminar el archivo. Por lo tanto, cuando generó el archivo malicioso Mimikatz no proporcionó ningún permiso para que ocurriera. En cambio dejó el mango abierto y esperó a ver qué resultados producía. Tanto los EDR como los AV comenzaron a darme advertencias de que era necesario reiniciar para eliminar completamente el peligro.

Una vez más, vio dos patrones distintos de conducta. La primera vulnerabilidad fue que algunos EDR y AV explotaron la API estándar de Windows para retrasar la eliminación de archivos hasta la próxima vez que se reiniciara la computadora. Este fue el enfoque que SentinelOne por ejemplo utilizó para manejar el asunto. La segunda forma es una que ha visto utilizada por varios EDR y AV. Lo que hacen es simplemente mantener una lista de las rutas que deben borrarse en algún lugar y luego, después de reiniciar, eliminan esa lista. Sin embargo, si echamos un vistazo a la API estándar de Windows podemos ver que el proceso de retrasar una eliminación hasta la próxima vez que se reinicie la computadora se lleva a cabo utilizando la función MoveFileEx mientras se pasa el indicador MOVEFILE DELAY UNTIL REBOOT.

Un resumen de los pasos a seguir para activar la vulnerabilidad de eliminación privilegiada

Si consideramos todo esto a la luz de la ilustración anterior, el producto final podría verse algo así:

  1. Cree una ruta única que incluya el archivo malicioso que se encuentra en C:tempWindowsSystem32driversndis.sys.
  2. Mantenga su mano en su mango para obligar al EDR o AV a retrasar la eliminación hasta la próxima vez que se reinicie el sistema.
  3. Elimine el directorio ubicado en C:temp.
  4. Cree una unión C:\temp → C:\
  5. Reiniciar

Entre julio y agosto de 2022 Yair comunicó las vulnerabilidades a todos los proveedores susceptibles y, hasta el momento, todas esas empresas han emitido parches.

CVE-2022-37971 (Microsoft), CVE-2022-45797 (Trend Micro) y CVE-2022-4173 son los ID de vulnerabilidad emitidos por los proveedores para esta vulnerabilidad en particular (Avast y AVG).

Estas son las versiones con las correcciones:

TrendMicro Apex One requiere la versión 1.1.19700.2 o posterior para el Hotfix 23573 y el parche b11136 del motor de protección contra malware de Microsoft o una versión posterior.
Avast y AVG Antivirus: 22.10 o posterior

Se recomienda encarecidamente a los usuarios de los productos antes mencionados que instalen las actualizaciones de seguridad más recientes tan pronto como sea posible en la práctica para reducir el peligro significativo de que un software malicioso que imita la capacidad del borrador elimine sus datos.