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 crea que un archivo ejecutable no lo es, puesto que ciertos programas lo muestran de forma diferente. Vamos a ver cómo conseguir esto exactamente.
l 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 todos los programas lo muestran igual. Por ejemplo en la siguiente imagen se observa que Total Commander lista el mismo fichero con su extensión real.

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
Siempre que el programa soporte este tipo de codificación y no restringa el uso de RTL, es posible realizar algún tipo de engaño visual. Nuestro compañero José Mesa ha creado este correo en el que se engaña al usuario sobre el dominio de la dirección de correo a la que se responde. Por ejemplo, se recibe un email de moc.cesapsih@gmail.com, y al "responder a", el cliente lo hará a moc.liamg@hispasec.com. Para conseguirlo, simplemente se han usado uno de estos caracteres especiales en el fichero .eml para codificar la dirección.
Si quieres recibir cada semana las noticias más interesantes suscríbete a nuestro boletín.

Es que M$ siempre trato al usuario como idiota y este tipo de engaños son producto de eso