Cybellum, una empresa israelí de prevención de 0-days, descubrió una nueva vulnerabilidad en Windows que llamaron DoubleAgent, una nueva técnica de inyección de código que funciona en todas las versiones de los sistemas operativos Microsoft Windows, desde Windows XP hasta la última versión de Windows 10.
Lo peor es que DoubleAgent explota una característica legítima y no documentada en Windows de 15 años de edad denominada "Application Verifier" (builtin), que en principio no se puede corregir.
Application Verifier es una herramienta de verificación en tiempo de ejecución que carga DLLs en procesos para hacer pruebas, permitiendo a los desarrolladores detectar y corregir errores de programación en sus aplicaciones.
La vulnerabilidad reside en cómo esta herramienta maneja DLL. Según los investigadores, como parte del proceso, las DLLs están vinculadas a los procesos de destino en una entrada del Registro de Windows, pero los atacantes pueden reemplazar la DLL real por una maliciosa.
Simplemente mediante la creación de una clave de registro de Windows con el mismo nombre de la aplicación que se quiere secuestrar, un atacante puede proporcionar su propia DLL que quiera inyectar en un proceso legítimo de cualquier aplicación.
Lo peor es que DoubleAgent explota una característica legítima y no documentada en Windows de 15 años de edad denominada "Application Verifier" (builtin), que en principio no se puede corregir.
Application Verifier es una herramienta de verificación en tiempo de ejecución que carga DLLs en procesos para hacer pruebas, permitiendo a los desarrolladores detectar y corregir errores de programación en sus aplicaciones.
La vulnerabilidad reside en cómo esta herramienta maneja DLL. Según los investigadores, como parte del proceso, las DLLs están vinculadas a los procesos de destino en una entrada del Registro de Windows, pero los atacantes pueden reemplazar la DLL real por una maliciosa.
Simplemente mediante la creación de una clave de registro de Windows con el mismo nombre de la aplicación que se quiere secuestrar, un atacante puede proporcionar su propia DLL que quiera inyectar en un proceso legítimo de cualquier aplicación.