Hackeando con MagicDots: Explotando puntos y espacios en nombres de archivos/rutas para obtener derechos de administrador permanentes

En un estudio reciente realizado por SafeBreach Labs, un equipo de investigación de seguridad descubrió un trío de vulnerabilidades derivadas de un problema de larga data dentro del proceso de conversión de rutas de DOS a NT utilizado por los sistemas operativos Windows . Este estudio, dirigido por Or Yair, líder del equipo de investigación de seguridad, ha revelado no sólo vulnerabilidades sino también varias técnicas similares a rootkits que eran explotables sin privilegios administrativos.

O Yair y su equipo descubrieron que las rutas de MagicDot (un área aparentemente inofensiva y conocida pero pasada por alto) planteaban importantes riesgos de seguridad. Las vulnerabilidades incluían permitir a actores maliciosos ocultar archivos y procesos, manipular procesos de restauración de archivos y hacer que el malware apareciera como software verificado en administradores de tareas y exploradores de procesos. La parte más preocupante fue que estas acciones podían ejecutarse sin necesidad de derechos administrativos, ofreciendo esencialmente capacidades de rootkit a cualquier usuario sin privilegios.

El proceso de conversión de rutas de DOS a NT en Windows es un aspecto fundamental de cómo el sistema operativo maneja las rutas de archivos. Este proceso puede ser complejo debido al soporte heredado para rutas de estilo DOS y las rutas actuales del sistema de archivos NT (Nueva Tecnología) utilizadas por el Windows moderno. Comprender este proceso de conversión es crucial para comprender cómo pueden surgir las vulnerabilidades.

RUTAS DE DOS

Las rutas de DOS son tradicionalmente más cortas y tienen limitaciones en comparación con las rutas de NT:

  • Longitud : las rutas de DOS normalmente admiten un máximo de 260 caracteres.
  • Formato : utilizan una estructura simple, generalmente comienzan con una letra de unidad seguida de dos puntos y una barra invertida, luego los nombres de los directorios, separados por barras invertidas (por ejemplo, C:\Program Files\Example).
  • Juego de caracteres : las rutas de DOS están limitadas a letras mayúsculas sin espacios ni caracteres especiales más allá de los guiones bajos.

CAMINOS DEL NT

Las rutas NT se utilizan en los sistemas operativos Windows modernos y admiten funciones más complejas:

  • Longitud : Pueden superar el límite clásico de 260 caracteres de las rutas de DOS.
  • Formato : las rutas NT pueden incluir configuraciones de red y enlaces de subsistemas. A menudo comienzan con \\?\rutas locales o \\?\UNC\rutas de red para evitar el límite de caracteres (por ejemplo, \\?\C:\Program Files\Example).
  • Conjunto de caracteres : las rutas NT permiten una gama más amplia de caracteres en los nombres de archivos y directorios, incluidos espacios y mayúsculas y minúsculas.

PROCESO DE CONVERSIÓN

La conversión de una ruta DOS a una ruta NT implica varios pasos que se adaptan a estas diferencias. He aquí un ejemplo sencillo para ilustrar:

EJEMPLO DE CONVERSIÓN

Ruta DOS :C:\PROGRA~1\Example

  • Esta es una ruta de DOS abreviada donde PROGRA~1podría estar la versión abreviada de Program Files.

Ruta NT convertida :\\?\C:\Program Files\Example

  • La ruta de DOS se expande a su formato NT completo, incluido el prefijo especial \\?\que le indica a Windows que la maneje como una ruta de longitud extendida.

VULNERABILIDADES

El proceso de conversión es propenso a sufrir vulnerabilidades, especialmente si actores malintencionados manipulan los nombres de las rutas insertando caracteres especiales o espacios irregulares. Por ejemplo:

  • Ruta de DOS manipulada :C:\PROGRA~1\Example\.. \.. \badfile.exe
  • En esta ruta manipulada, el uso de puntos ( ..) y espacios irregulares pueden engañar al sistema para que navegue inesperadamente por el árbol de directorios, potencialmente accediendo o ejecutando un archivo ( badfile.exe) desde una ubicación no deseada.

Las vulnerabilidades descubiertas por la investigación “MagicDot”, que se centra particularmente en la conversión de rutas de Windows DOS a NT, resaltan importantes riesgos de seguridad que incluyen la ejecución remota de código (RCE) y la elevación de privilegios (EoP). Estas vulnerabilidades se deben al mal manejo que hace el sistema de las rutas de los archivos, donde la inclusión de caracteres especiales como puntos y espacios al final puede provocar un comportamiento inesperado y potencialmente dañino. A continuación se muestra un desglose de cómo se manifiestan estas vulnerabilidades específicas:

EJECUCIÓN REMOTA DE CÓDIGO (RCE)

Descripción general : la ejecución remota de código ocurre cuando un atacante puede ejecutar código arbitrario en otra máquina a través de una red, generalmente eludiendo los mecanismos de seguridad para obtener el control del sistema objetivo.

Ruta de explotación de MagicDot :

  • Manipulación de nombres de archivos : un atacante puede crear nombres de archivos con puntos y espacios finales que algunas partes del sistema operativo Windows malinterpretan pero que otras los tratan como rutas ejecutables válidas.
  • Aplicaciones y servicios engañosos : por ejemplo, un script o una aplicación pueden descargar un archivo llamado safe_script.ps1.con la intención de ejecutar un script de PowerShell. Sin embargo, el sistema ejecuta un script malicioso llamado safe_script.ps1(sin el punto) que el atacante colocó previamente en el sistema.
  • Activación de la ejecución : esto puede suceder a través de descargas web, archivos adjuntos de correo electrónico u otros medios donde el usuario o un sistema automatizado ejecuta lo que parece ser un archivo benigno, lo que lleva a la ejecución de código malicioso.

ELEVACIÓN DE PRIVILEGIOS (EOP)

Descripción general : la elevación de privilegios se produce cuando un atacante obtiene derechos de acceso superiores a los previstos, normalmente pasando de un nivel de privilegio inferior a uno superior, como obtener derechos administrativos de una cuenta de usuario normal.

Ruta de explotación de MagicDot :

  • Confusión de directorios y archivos : al crear directorios o archivos con espacios o puntos al final, un atacante podría confundir los procesos del sistema sobre la identidad y los atributos de un archivo o directorio. Por ejemplo, manipular las rutas de los archivos podría engañar al sistema para que ejecute un archivo desde un contexto sin privilegios como si tuviera privilegios administrativos.
  • Eludir los controles de seguridad : estas manipulaciones de rutas pueden permitir que el malware se coloque en directorios confidenciales o ejecute operaciones que normalmente requieren mayores privilegios. Por ejemplo, un ejecutable podría colocarse en un directorio del sistema disfrazado con un punto al final, engañando a las defensas del sistema que verifican la integridad de los nombres de archivos sin considerar tales anomalías.
  • Explotación de los procesos del sistema : si un proceso del sistema procesa automáticamente archivos de un directorio (como un directorio temporal) y ejecuta archivos que se supone que son registros o datos no ejecutables, las rutas mal interpretadas pueden llevar a la realización de acciones administrativas no autorizadas.

La más crítica de estas vulnerabilidades se registró bajo CVE-2023-42757, que, según lo confirmado por MITRE y Microsoft, pertenece a una falla explotable que se documentará en una próxima entrada de CVE.

LA TÉCNICA DE EXPLOTACIÓN

El exploit MagicDot aprovecha la forma en que Windows recorta los puntos y espacios finales de los nombres de los archivos durante la conversión de rutas de DOS a NT. Al crear cuidadosamente nombres de archivos que incluyan estos caracteres, los atacantes pueden crear archivos que parecen benignos para ciertos procesos pero que son de naturaleza maliciosa. A continuación se muestra un ejemplo detallado paso a paso de cómo se podría ejecutar dicho exploit:

EJEMPLO DE EXPLOTACIÓN MAGICDOT

  1. Creando el archivo malicioso :
    • Un atacante crea un archivo con nombre important.txt...en un sistema. Si bien el nombre del archivo se muestra como important.txten la mayoría de las interfaces heredadas (debido a las convenciones de DOS que recortan los puntos finales), el sistema de archivos NT conserva el nombre completo, incluidos los puntos.
  2. Explotación :
    • El atacante convence a un proceso del sistema o a una aplicación para que interactúe con él important.txt, con la intención de acceder al archivo de aspecto benigno.
    • Debido al proceso de conversión de ruta, algunas aplicaciones que no recortan los espacios o puntos finales pueden terminar interactuando con important.txt..., que en realidad es un archivo malicioso diferente controlado por el atacante.
  3. Evitando las medidas de seguridad :
    • Al utilizar esta discrepancia de nombres, el archivo malicioso puede eludir las medidas de seguridad que podrían no reconocerlo como una amenaza debido a su nombre aparentemente inofensivo (como lo ven la mayoría de las aplicaciones heredadas).
  4. Impacto :
    • Este tipo de manipulación de rutas podría permitir al atacante ejecutar código arbitrario, reemplazar archivos del sistema, interceptar datos o provocar otras acciones no autorizadas, todo ello evitando la detección por parte de herramientas de seguridad que solo escanean en busca de rutas o nombres de archivos peligrosos conocidos.

Los rootkits son software malicioso diseñado para obtener acceso no autorizado a un sistema informático mientras permanecen ocultos para los usuarios y los programas de seguridad. A menudo proporcionan al atacante acceso a nivel de administrador, lo que le permite alterar las configuraciones del sistema, ocultar actividades maliciosas y mantener un acceso persistente. Las capacidades de los rootkits varían, pero normalmente incluyen funcionalidades que manipulan los procesos y estructuras centrales del sistema para ocultar su presencia.

DETALLES TÉCNICOS SOBRE LAS CAPACIDADES DE ROOTKIT

Los rootkits interactúan profundamente con el sistema operativo, a menudo a nivel del kernel, para evitar ser detectados. Pueden interceptar y alterar llamadas al sistema, ocultar archivos y entradas de directorio específicos y enmascarar conexiones y procesos de red. Así es como se pueden entender las capacidades del rootkit a través de un ejemplo conceptual:

EJEMPLO: ROOTKIT DE OCULTACIÓN DE ARCHIVOS Y PROCESOS

  1. Manipulación a nivel de kernel :
    • El rootkit se inyecta en el kernel o funciona como un módulo del kernel, dándole un control de alto nivel sobre las funciones del sistema.
  2. Ocultación de archivos :
    • Objetivo : hacer que ciertos archivos sean invisibles para las herramientas y los usuarios del sistema.
    • Método : El rootkit intercepta llamadas al sistema que enumeran el contenido del directorio (por ejemplo, readdiren Linux o NtQueryDirectoryFileWindows). Modifica los resultados para excluir archivos o directorios específicos de la visualización.
  3. Ocultación del proceso :
    • Objetivo : Ocultar ciertos procesos para evitar la detección por parte de los administradores de tareas o el software de monitoreo.
    • Método : similar a la ocultación de archivos, el rootkit intercepta las llamadas al sistema relacionadas con la enumeración de procesos (por ejemplo, NtQuerySystemInformationen Windows). Luego filtra cualquier información relacionada con sus propios procesos u otros procesos maliciosos específicos.
  4. Escenario de ejemplo :
    • Un atacante instala un rootkit en un sistema que oculta un proceso malicioso llamado badprocess.exe. El rootkit está programado para interceptar llamadas a NtQuerySystemInformation, utilizado por el Administrador de tareas de Windows para enumerar los procesos en ejecución.
    • Cuando se ejecuta el Administrador de tareas, consulta al sistema para obtener una lista de todos los procesos. Sin embargo, cada vez que esta consulta incluye badprocess.exe, el rootkit elimina esta entrada de los resultados.
    • Como resultado, badprocess.exefunciona en el sistema sin aparecer en la lista de tareas, siendo efectivamente invisible tanto para los usuarios como para la mayoría del software antivirus.

CAPACIDADES SIMILARES A LAS DE UN ROOTKIT SIN PRIVILEGIOS A TRAVÉS DE RUTAS MAGICDOT

Los rootkits tradicionalmente requieren acceso privilegiado a un sistema para manipular los procesos centrales y pasar desapercibidos. Sin embargo, los hallazgos de MagicDot ilustran que los atacantes pueden lograr resultados similares (como ocultar actividades maliciosas y manipular procesos del sistema) sin necesidad de privilegios tan elevados. Esto se hace mediante una manipulación inteligente de las anomalías en las rutas de los archivos permitidas por el sistema.

CAPACIDADES CLAVE DEMOSTRADAS:

  1. Enmascaramiento de archivos y directorios :
    • Al agregar puntos (.) y espacios a los nombres de archivos, los atacantes pueden crear archivos o directorios que no son reconocidos adecuadamente o que ciertas partes del sistema operativo los malinterpretan. Esto permite que los archivos maliciosos queden ocultos a plena vista, siendo efectivamente invisibles para las herramientas de administración de archivos estándar e incluso para algunos programas antivirus.
  2. Sistema y aplicaciones engañosos :
    • Las anomalías en el manejo de puntos y espacios finales pueden engañar a las aplicaciones y a los procesos del sistema sobre la verdadera naturaleza o existencia de los archivos. Por ejemplo, un archivo con nombre example.txt...podría mostrarse y tratarse como example.txten algunas interfaces, cuando en realidad es un archivo separado y potencialmente dañino.
  3. Eludiendo los mecanismos de seguridad :
    • Estas manipulaciones de rutas se pueden utilizar para eludir los mecanismos de seguridad que dependen de comprobaciones de integridad de las rutas de los archivos. Al explotar las discrepancias entre cómo se muestran y almacenan las rutas de los archivos, los atacantes pueden introducir de contrabando o ejecutar cargas útiles maliciosas sin ser detectadas.
  4. Acceso y control persistentes :
    • Al igual que los rootkits tradicionales, los archivos creados con técnicas MagicDot pueden persistir en el sistema y realizar actividades no autorizadas sin ser detectados. Estos archivos pueden interferir continuamente con las operaciones del sistema o monitorear las acciones del usuario de manera encubierta.

ESCENARIO DE EJEMPLO:

Supongamos que un atacante quiere ejecutar un script malicioso sin ser detectado. Podrían crear un archivo nombrado update.bat...en un sistema. Así es como podrían aprovechar la vulnerabilidad MagicDot:

  • Creación : el atacante lo carga update.bat...a través de un archivo adjunto de correo electrónico comprometido o mediante una descarga web.
  • Ambigüedad de ejecución : el archivo puede mostrarse como update.baten algunas herramientas administrativas, lo que lleva a los administradores del sistema a creer que es un archivo por lotes legítimo para actualizaciones.
  • Manipulación del sistema : cuando se ejecuta (ya sea mediante una configuración de ejecución automática o una ejecución manual), el sistema ejecuta el malware update.bat..., creyendo que es benigno, lo que permite al atacante ejecutar una carga útil que podría robar datos, instalar más malware o crear puertas traseras.

IMPLICACIONES PARA LOS PROVEEDORES DE SOFTWARE

Al descubrir tales vulnerabilidades, los investigadores suelen iniciar un proceso de divulgación responsable con el proveedor, en este caso probablemente Microsoft. Esto incluye informar de forma privada a Microsoft sobre las vulnerabilidades, dándoles tiempo para verificar y desarrollar una solución antes de cualquier divulgación pública. Luego, Microsoft reconocería el problema, investigaría y replicaría los hallazgos, seguido de desarrollar y lanzar un parche. También emitirían un aviso detallado que incluye orientación de mitigación y un número CVE para seguimiento. Los hallazgos de SafeBreach Labs subrayan un recordatorio crucial para los desarrolladores de software: los problemas conocidos, incluso si son de larga data y aparentemente menores, pueden plantear graves riesgos de seguridad si no se abordan. Este estudio de caso enfatiza la necesidad de evaluaciones y actualizaciones exhaustivas de las infraestructuras de software existentes para evitar posibles vulnerabilidades.

El estudio no sólo expone vulnerabilidades específicas, sino que también propone conocimientos prácticos para que los proveedores de software mantengan y mejoren los protocolos de seguridad. Como vulnerabilidades como estas están muy extendidas y no se limitan a un solo producto de software, las implicaciones son amplias y justifican una revisión sistémica por parte de todos los proveedores de software para protegerse contra vulnerabilidades similares.