Archivos desktop pueden ejecutar código arbitrario en Linux
Los principales administradores de archivos en GNU/Linux –a excepción de Dolphin– son vulnerables a un trivial pero interesante exploit, que puede hacer uso de la actual implementación de los archivos .desktop para ocultar malware.
En realidad no se trata de un bug sino una consecuencia de una característica de diseño implementada por el estándar Freedesktop, que recomienda ocultar dicha extensión de archivos en favor del nombre del mismo, lo que facilita su ejecución sin diálogo de advertencia previo.
Esa feature se puede explotar a través de un archivo comprimido que llegue a nuestro sistema con permisos de ejecución establecidos y que al descomprimirlo se haga pasar por una imagen, archivo de vídeo, documento de texto, etc.
La información sobre este bug ha sido publicada en Reddit por un desarrollador llamado Christian Boxdörfer (de una de sus herramientas, FSearch, hablamos no hace mucho), y afecta a Thunar, GNOME, Nemo, Pantheon Files, Caja o PCManFM. Ya se ha reportado este fallo a sus desarrolladores y en algunos casos (PCManFM) ya han creado un parche.
El error es bastante sencillo de reproducir, así que inspirándonos en el que nos propone Christian, vamos a crear un archivo con extensión .desktop y hacerlo pasar por un archivo jpg.
Para “engañar” al administrador de archivos (nautilus en este caso) vamos a utilizar uno de los wallpapers (/usr/share/backgrounds/gnome/Road.jpg) que vienen por defecto en todas las instalaciones de GNOME 3.22 y algo inocuo como Zenity (herramienta que nos permite crear cajas de diálogos en GTK), que no hace nada malo pero por lo menos asusta.
Creamos un archivo llamado Road.desktop:
[Desktop Entry]
Name=Road.jpg
Exec=sh -c 'zenity --warning --text "Vaya! Un malware acaba de infectar tu sistema, hijueputa.\n Todos tus archivos han sido encriptados.\n Plata o Plomo?"'
Terminal=false
Icon=/usr/share/backgrounds/gnome/Road.jpg
Type=Application
Categories=Graphics
Y de alguna manera hacemos que se descargue en la máquina a infectar (por mail, cliente de chat, etc.) mediante la técnica de ingeniería social que más nos guste.
Un detalle importante es que para la ejecución del archivo y su transformación de “Road.desktop” a Road.jpg, este debe tener permisos de ejecución (sino nos aparecerá un bonito diálogo de advertencia).
Lamentablemente eso no es defensa suficiente, ya que es posible crear un archivo que preserve sus permisos como ejecutable (con tar y la opción -p sin ir más lejos), al aterrizar en otro sistema. Y obviamente el script podría ser mucho más peligroso y el archivo por el que se hace pasar de otro tipo.
Un malware con sorpresa dentro que sería el orgullo del mismísimo Pablo Escobar…
Bromas aparte, a mi me parece una forma muy sencilla de obligar a alguien a ejecutar código arbitrario al estilo Windows, sin que se de cuenta y como no sea por el asunto estético no veo motivo para esconder la extensión del archivo (desktop) en el gestor de archivos.
Ya os comenté que en Dolphin no pasa. ¿verdad?
A este paso conseguiréis que vuelva a KDE 🙂
Via: lamiradadelreplicante.com