Archivos CPL: mecanismo para propagar malware

14:11 0 Comments A+ a-




Como punto de partida del análisis, debemos entender qué son los archivos .cpl.

Desde el punto de vista más simple, un archivo .cpl es una librería de enlace dinámico (o dll) que implementa una función especial con la cual interactúa el Panel de Control de Microsoft Windows. Asimismo, una dll se asemeja a un archivo ejecutable en el sentido de que puede contener código, datos y recursos de una aplicación, pero difiere en que no puede ejecutarse por sí misma: ofrece un conjunto de funciones que serán ejecutadas por otras aplicaciones.

Luego, un archivo de extensión .cpl tampoco puede ejecutarse por sí mismo, pero será ejecutado por el Panel de Control en forma automática. Tal es así que si se hace doble clic sobre una dll, no se ejecutará ninguna acción; por otro lado, si se hace doble clic en un cpl, el Panel de Control ejecutará la aplicación contenida en dicho archivo, lo que puede representar un riesgo potencial en ciertos casos, y una oportunidad muy atractiva para los cibercriminales.

Ahora bien, si analizamos la estructura de un archivo cpl, encontraremos que se exporta u ofrece a otras aplicaciones una función llamada CPlApplet(). Es la presencia de esa función la que diferencia una simple dll de una cpl, lo cual se observa en la siguiente imagen. Allí se comparan las funciones exportadas por una dll (a la derecha), de aquellas exportadas por una cpl (a la izquierda):




Esta función debe ser desarrollada de tal modo que el Panel de Control pueda enviar mensajes a través de una estructura de datos. Los mensajes que se envían pueden indicarle al cpl si debe iniciarse, cerrarse o si se ha hecho doble clic en él. El prototipo de la función, en Delphi por ejemplo, se muestra en la siguiente imagen:





Los diferentes mensajes que pueden ser enviados se almacenan en uMsg, y se encuentran detallados en la documentación oficial. Así, la implementación de CPlApplet debe proveer una respuesta para cada uno de los posibles mensajes, llamando a la funcionalidad principal de la librería dentro del mensaje CPL_DBLCLK. Para ilustrar esto, en la siguiente imagen se muestra una implementación esquelética de CPlApplet en Delphi:






Lo dicho hasta el momento no tiene necesariamente conexión con el malware, pero si lo ponemos en perspectiva, veremos las ventajas que este modelo ofrece a los cibercriminales. Si los archivos con extensión .cpl implementan CPlApplet correctamente y son copiados en la carpeta System32 de Windows, automáticamente son agregados al Panel de Control de Windows, sin necesidad de realizar otro tipo de tareas de instalación. Más allá de esto, en todas las muestras recibidas por el Laboratorio hemos observado que ellas no son copiadas en esta carpeta (ya que requeriría confirmación del usuario) y no se instalan dentro del Panel de Control de Windows, sino que son ejecutadas en forma manual por el usuario, apelando a la influencia de técnicas de Ingeniería Social.


El punto clave, sin embargo, es el que ya hemos mencionado: los archivos .cpl no requieren de la existencia de otra aplicación que los ejecute, como si necesitan las dll. Por lo tanto, cuando un usuario hace doble clic sobre un archivo de tipo cpl, se lanza inmediatamente la aplicación del Panel de Control, control.exe, la cual se encarga de ejecutar la funcionalidad definida en CPlApplet. Esto lo observamos en la siguiente imagen:





De la captura de Process Monitor observamos que, después de hacer doble clic en el archivo cpl, automáticamente se ejecuta control.exe con la ruta hasta el cpl como argumento. Éste a su vez llama a rundll32.exe para ejecutar las instrucciones de CPlApplet.

Como conclusión, podemos decir que mediante la utilización de archivos cpl los cibercriminales tienen un método muy atractivo de propagar malware, tanto por las ventajas ya mencionadas por sobre las dll, como por el desconocimiento que los usuarios en general tienen respecto al uso de los applets del Panel de Control de Windows.


Fuente:welivesecurity.com