Práctico: Cómo ocultar las extensiones de ficheros gracias a la codificación Unicode

No es algo nuevo pero últimamente, el malware se está aprovechando de
esta característica especial de codificación que permite "engañar" al
usuario para que crean que un archivo ejecutable no lo es, puesto que
ciertos programas lo muestran de forma diferente. Vamos a ver cómo
conseguir esto exactamente.


El objetivo del malware es (de toda la vida) intentar que se lance un
fichero ejecutable en el sistema. La distribución por correo de estos
binarios todavía goza de bastante éxito, así que los atacantes buscan
nuevas formas de hacer pensar a la víctima que en realidad está lanzando
un archivo inofensivo. Para conseguirlo, se están ayudando de un
carácter especial de la codificación Unicode. Esta codificación está
pensada para representar multitud de idiomas, incluidos los que se
muestran de derecha a izquierda (como el árabe o hebreo). Para ellos,
Unicode implementa una serie de códigos especiales llamados "Right to
Left" (RTL). A todo lo escrito a partir de ese código Unicode, se le
"dará la vuelta" cuando es representado, además de que el código en sí
es invisible.

¿Qué ocurre si aprovechamos esta funcionalidad para los nombres de
fichero? Pues que podemos hacer que un archivo "Presupuestoslx.cmd"
(con extensión real .cmd, o sea, ejecutable) le aparezca al usuario
como "Presupuestocmd.xls" en el explorador de Windows, en su cliente
de correo... en todos los programas que soporten esta codificación.
Veamos cómo y por qué.

En realidad, este nombre de archivo se ha "escrito" así:
Presupuesto[U+202E]slx.cmd

Insertando el carácter invisible y especial [U+202E] en el punto exacto,
pero Windows, lo mostrará (configurado para mostrar las extensiones...
si se ocultan ni siquiera serían necesarias estas técnicas para
disfrazar a los ejecutables): Presupuestodmc.xls

No a todos los programas lo muestran igual.

Y, lo que es peor, Windows lo tratará como indica su extensión original,
esto es, como un ejecutable "cmd", lo que significa que lo ejecutará si
se lanza. Otros ejemplos:

* Presupuesto[U+202E]cod.exe, Windows lo mostrará como
Presupuestoexe.doc
* Presupuesto[U+202E]txt.exe, Windows lo mostrará como
Presupuestoexe.txt

Si se modifica el icono del archivo (trivial), el engaño es total.

Cómo conseguirlo de forma práctica

Para construir el nombre, podemos ayudarnos de charmap.exe (el mapa de
caracteres) en Windows. Copiamos y pegamos el carácter 202E en Unicode
(que corresponde con el RTLO, Right to Left Override, aunque con otros
caracteres se puede hacer) en el punto adecuado del nombre de archivo
a la hora de renombrar, y se conseguirá el efecto.

Cuando se deja el puntero sobre el fichero, se observará que se
"sombrea" de forma diferente. Las flechas de dirección al recorrerlo
también estarán "cambiadas".

No sólo en las extensiones


Esta técnica es aplicable también a direcciones URL, por ejemplo.

En definitiva, nada nuevo. Esta funcionalidad se conoce desde hace
tiempo pero sí es cierto que ahora, y sobre todo en China, parece que
está siendo más aprovechado que nunca por los creadores de malware,
puesto que no todas las soluciones de seguridad la tienen en cuenta...
y por tanto resulta más "sencillo" eludir restricciones.

Comentarios

Entradas populares de este blog

Corcho Pedagogico

Significado oculto en los nombres de los programas

El Bidet