Close
    Search Search

    Casi 300 ejecutables de Windows 10 son vulnerables al secuestro de DLL

    En un nuevo informe del investigador de seguridad de PwC Reino Unido, Wietze Beukema, encontramos que casi 300 ejecutables en Windows 10 son vulnerables al secuestro de DLL.

    "Resulta que casi 300 ejecutables en la carpeta System32 son vulnerables al secuestro de DLL de ruta relativa. ¿Sabía que con un VBScript simple, algunos de estos EXE se pueden usar para elevar estas ejecuciones, omitiendo completamente UAC? ​​" explicó Beukema.

    La vulnerabilidad mencionada aquí es el secuestro de DLL de ruta relativa, que es cuando un atacante puede hacer que un ejecutable legítimo de Windows cargue una DLL arbitraria de su elección, probablemente con intenciones maliciosas.



    Resulta que casi 300 ejecutables en su carpeta System32 son vulnerables al secuestro de DLL de ruta relativa.

    ¿Sabía que con un VBScript simple, algunos de estos EXE se pueden usar para elevar tales ejecuciones, evitando UAC por completo?

    Publicación completa del blog aquí ???? https://t.co/tBuFRk7ERg pic.twitter.com/ge1RXAqvtY

    – Wietze (@Wietze) 22 de junio de 2020

    El problema del secuestro de DLL

    Los ataques de secuestro de DLL pueden ser útiles para un atacante experto, ya que otorgan funciones como la ejecución de código arbitrario, la escalada de privilegios y la persistencia en el sistema de destino.

    Las diversas técnicas de secuestro de DLL cubiertas por la publicación del blog de Beukema incluyen reemplazo de DLL, proxy de DLL, secuestro de orden de búsqueda de DLL, secuestro de DLL fantasma, redirección de DLL, reemplazo de DLL de WinSxS y relativo de secuestro de DLL de ruta.

    Para demostrar el secuestro de DLL de ruta relativa en la práctica, Beukema se centró en las bibliotecas presentes en la carpeta "C:WindowsSystem32" en una máquina con Windows 10 (v1909).


    Copió el proceso winstat.exe legítimo a la carpeta de descargas de su sistema. Luego ejecutó la herramienta de monitoreo de procesos, procmon, para comprender mejor las DLL que el EXE busca durante la ejecución.


    Casi 300 ejecutables de Windows 10 son vulnerables al secuestro de DLL

    DLLs

    Esto nos permite identificar todas las DLL consultadas por cada aplicación, que serán todas las candidatas posibles para una DLL secuestrable. Pero no se sigue automáticamente que todos estos también se cargan (y, por lo tanto, se ejecutan).

    "La forma más confiable de averiguar qué DLL se cargaron correctamente es compilar nuestra propia versión de la DLL y hacer que se escriba en un archivo único después de una carga exitosa. Si repetimos el enfoque anterior para todos los archivos ejecutables y DLL de destino, esto dará como resultado en una colección de archivos que le indican qué DLL se ha confirmado que son vulnerables al secuestro de DLL".

    Sin embargo, lo que representa un desafío para el atacante es compilar una versión personalizada de la DLL que el ejecutable pueda iniciar sin ningún problema. Para obtener una comprensión fiable de una estructura DLL legítima, Beukema recomienda utilizar herramientas como DLL Export Viewer para el análisis.

    Esta herramienta proporciona información sobre la estructura de la DLL que intentamos recompilar, enumerando todos los nombres de funciones externas que se duplicarían en un exploit de secuestro de DLL.

    El investigador proporcionó una lista completa de bibliotecas que son buenas candidatas para ataques de secuestro.

    Agregó: "Estos no son meros objetivos teóricos, se prueban y se confirma que funcionan. La lista incluye 287 ejecutables y 263 DLL únicos".

    Se ha proporcionado un CSV con una lista completa de estas bibliotecas a través de GitHub.


    Técnicas de detección y prevención

    Beukema presenta algunos métodos de prevención que pueden usarse para detener tales ataques, como buscar actividad en la carpeta de Windows simulada en caso de que haya una presente en su máquina.

    Además, ajustar la configuración de UAC para "notificar siempre" puede ayudar a prevenir ataques como este si el usuario final es lo suficientemente inteligente como para comprender lo que se va a realizar.


    Otra estrategia es monitorear instancias de compilación y carga de DLL desde rutas de archivos inesperadas:

    "Puede buscar compilar o cargar cualquiera de los archivos DLL mencionados anteriormente desde rutas inesperadas, principalmente en ubicaciones temporales como %appdata%.

    Después de todo, el nombre de la aplicación (legítima) que carga las DLL se puede cambiar, pero los nombres de archivo de las DLL siempre se corrigen".


    Al crear aplicaciones, sugiere Beukema, los desarrolladores deben aplicar el uso de rutas absolutas y no relativas para cargar archivos DLL, entre varias otras técnicas.


    Nada de esto por sí solo puede ser lo suficientemente infalible. Sin embargo, cuando se aplican correctamente en conjunto, las medidas preventivas como las explicadas por el investigador pueden prevenir los ataques de secuestro de DLL a largo plazo.

    Añade un comentario de Casi 300 ejecutables de Windows 10 son vulnerables al secuestro de DLL
    ¡Comentario enviado con éxito! Lo revisaremos en las próximas horas.

    End of content

    No more pages to load