Mientras más gente se traslada a plataformas de 64 bits, más malware de 64 bits aparece. Hemos estado siguiendo este proceso por varios años. Y mientras más gente trabaja en plataformas de 64 bits, más aplicaciones de 64 bits se desarrollan. A veces esto incluye aplicaciones muy específicas, como aplicaciones bancarias, por ejemplo. Si alguien quisiera irrumpir en una aplicación como ésta y robar información, la mejor herramienta para hacerlo sería un agente de 64 bits. ¿Cuál es el programa malicioso bancario más famoso? ZeuS, sin duda: el programa que impone las tendencias para la mayoría de los programas bancarios de hoy en día. Sus inyecciones de red se han convertido en una característica fundamental para casi cualquier familia de malware bancario. Sólo era cuestión de tiempo para que apareciera una versión de 64 bits de ZeuS, pero no esperábamos que llegara tan pronto.
Y no lo esperábamos porque por ahora los cibercriminales en realidad no necesitan una versión de 64 bits. Una de las principales funciones de Zeus es interceptar los datos que pasan mediante los navegadores y modificarlos para que su operador pueda esconder sus rastros o robar información sobre las cuentas bancarias y transacciones de dinero que realizan los usuarios por Internet. Pero en la actualidad la gente sigue usando navegadores de 32 bits, aún en sistemas operativos de 64 bits. Por lo tanto, las versiones de 32 bits de ZeuS han sido suficientes para mantener a los ladrones satisfechos con sus ganancias.
De pronto, sin previo aviso, encontramos un ejemplar de ZeuS de 32 bits con una versión de 64 bits adentro. Y resulta que esta versión de 64 bits ya se había detectado activa en Internet por lo menos desde junio de 2013, y ¡la fecha de compilación del ejemplar es 29 de abril de 2013! Pero hay más: esta versión de ZeuS funciona mediante Tor. El ejemplar inicial de 32 bits inyecta códigos maliciosos en algunos procesos específicos. Si el proceso pertenece a una aplicación de 64 bits, ZeuS inyecta su versión de 64 bits; de otro modo, instala la de 32 bits. Hicimos unas pruebas para ver cómo se comportaba un ejemplar de ZeuS de 64 bits dentro de Internet Explorer de 64 bits, y vimos el comportamiento usual de ZeuS: las inyecciones web funcionaron como de costumbre.
La dirección de la página web de uno de los bancos acabó en las reglas de inyección web de esta versión de ZeuS. Una regla de inyección web dice:
data_before
<input id="e_finance_login" class="button" type="submit"
data_end
data_inject
onclick="return gotoo();"
data_end
lo que significa que cuando una víctima visita la página web del banco y el código HTML de esa página tiene una cadena de caracteres después de la etiqueta “data_before”, ZeuS inserta texto adicional después de la etiqueta “data_inject” justo después de la cadena de caracteres objetivo inicial. Al visitar esta página durante una infección activa de ZeuS en Internet Explorer de 64 bits, observamos la siguiente inserción maliciosa en el código HTML del navegador:
Código inyectado en una página bancaria de Internet en Internet Explorer de 64 bits
La función maliciosa gotoo() se especifica en otra regla de inyección web para este sitio, y se agrega al código HTML de la página bancaria junto con otros códigos maliciosos. Esta función recolecta información valiosa de la página (datos de inicio de sesión, contraseña, cookies y otros valores especiales especificados en la página) y los envía a un dominio controlado por el operador de ZeuS.
Entonces, la versión de ZeuS de 64 bits sí funciona. Pero, ¿de verdad existen tantos usuarios que hayan migrado a navegadores de 64 bits como para justificar el esfuerzo de crear una versión de 64 bits de ZeuS? No, no los hay. La proporción de usuarios que ejecutan navegadores de 64 bits sigue siendo insignificante. Según nuestras estadísticas, por ejemplo, el porcentaje de usuarios que navegan con 64 bits en Internet Explorer es menor al 0,01%. Entonces, ¿por qué compilaron una versión funcional de 64 bits? Admito que a nosotros no nos parece muy complicado: el código fuente está disponible, sólo se necesitan un par de arreglos para hacer que funcione en procesos de 64 bits y poder compilarlo como una aplicación de 64 bits. Pero tal vez nos equivocamos y se necesita mucho más esfuerzo para crear una versión funcional de ZeuS de 64 bits.
Además, encontramos un error en la versión actual: cuando ZeuS inyecta una contraparte de 64 bits en el proceso de 64 bits de la aplicación EMET Notifier, hace que este proceso colapse. Esto se debe a un error en los cálculos de algunas de las direcciones de funciones API: por ejemplo en ZeuS, el proceso de EMET Notifier trata de llamar a la función WSAStartup, pero la variable que debería tener la dirección de esta función no dirige a ella. En vez de eso, dirige a una memoria no asignada que hace que todo el proceso EMET Notifier genere la excepción “Violación de acceso” y concluya el proceso.
Colapso de EMET Notifier debido a errores en el código deZeuS x64
Si no es tan simple crear una versión estable de 64 bits de Zeus y la gran mayoría de los usuarios siguen empleando navegadores de 32 bits, entonces uno se pregunta: ¿por qué se molestan? Tal vez es sólo una estrategia de mercadeo – una nueva característica, aunque inútil, que atrae a los compradores. Ofrecer compatibilidad con navegadores de 64 bits es una buena forma de promover el producto y atraer compradores (operadores de redes zombi).
También es interesante que el archivo de configuración de esta versión de ZeuS incluya una larga lista de programas con los que funciona el malware si los encuentra en el sistema infectado. Hay programas diversos, pero todos ellos tienen información privada valiosa que a los cibercriminales les encantaría robar: datos de inicio de sesión, certificados, etcétera. Recuerda que ZeuS puede interceptar las teclas que pulsas y los datos que se envían y reciben en una red antes y después de que se decodifiquen, usando típicas funciones API del sistema. Entonces, cuando opera dentro de estos programas, ZeuS puede interceptar y reenviar mucha información valiosa al operador de la red zombi. Esta es la lista completa de programas:
bitcoin-qt.exe tiny.exe ibank2.exe putty.exe winscp.exe filezilla.exe openvpn-gui.exe openvpn.exe mstsc.exe java.exe javaw.exe Zvit1DF.exe iFOBSClient.exe KLBS.exe vegaClient.exe Pionner.exe cb193w.exe BK_KW32.exe KlientBnk.exe ibconsole.exe CliBank.exe CliBankOnlineUa.exe CliBankOnlineRu.exe CliBankOnlineEn.exe SftMailW.exe SRCLBClient.exe EximClient.exe |
client.exe CbShell.exe CB.exe ARMSH95.exe arm.exe arm_mt.exe asbank_lite.exe bank.exe bank32.exe bbclient.exe bbms.exe bk.exe bnk.exe budget.exe cbank.exe cbmain.exe clb.exe client6.exe clientbk.exe clntstr.exe clntw32.exe cncclient.exe contactng.exe core.exe cshell.exe cyberterm.exe dealer.exe |
dsstart.exe dtpaydesk.exe edealer.exe eelclnt.exe elbank.exe etprops.exe etsrv.exe fcclient.exe ip-client.exe iwallet.exe jscashmain.exe kb_cli.exe lfcpaymentais.exe loadmain.exe lpbos.exe mmbank.exe mstsc.exe mwclient32.exe payments.exe paymmaster.exe pinpayr.exe pkimonitor.exe pmodule.exe pn.exe postmove.exe prclient.exe productprototype.exe |
qiwicashier.exe qiwiguard.exe quickpay.exe rclaunch.exe rclient.exe retail.exe retail32.exe rtadmin.exe rtcert.exe saadm.exe saclient.exe sxdoc.exe termw.exe translink.exe twawebclient.exe uarm.exe ubs_net.exe unistream.exe upofcards.exe uralprom.exe w32mkde.exe wclnt.exe webmoney.exe wfinist.exe winpost.exe wupostagent.exe xplat_client.exe |
Instalación
Dejando de lado el hecho de que incluye la versión de 64 bits de sus comunicaciones CnC mediante Tor, esta versión de ZeuS se comporta como cualquier otro malware basado en ZeuS. Deposita sus archivos en carpetas con nombres generados de forma automática en el directorio %APPDATA% con nombres aleatorios:
Carpetas de instalación
Troyano instalado
Zona de descarga local de ZeuS
La persistencia se logra como Zeus suele hacerlo, creando un valor en la llave Run de autostart del sistema en el registro:
ZeuS está programado para ejecutarse durante el inicio del sistema.
La versión interna del malware que se indica en el cuerpo del bot es 3.0.0.0, lo que en realidad no significa nada. Sin duda no es una tercera generación de ZeuS como el autor del programa trata de hacernos creer. El proceso de descarga del archivo de configuración sugiere que esta versión está más cerca al código fuente inicial filtrado de ZeuS 2.0.8.9 que, por ejemplo, a la rama Citadel. La versión Citadel se deshizo del acceso simple a los archivos de configuración y su CnC sólo permite que se lo descargue usando una solicitud HTTP POST precisa, mientras que el CnC de esta versión de ZeuS no evita que se descargue un archivo de configuración mediante una simple solicitud URL a la ruta de archivo. Por lo tanto, cualquier persona que conozca la URL correcta puede descargarlo usando navegadores, wget, curl, etc.
Тоr
Además del componente de 64 bits de ZeuS, esta versión mantiene en su cuerpo una función de tor.exe de la versión 0.2.3.25. Tor.exe se ejecuta de forma indirecta – ZeuS inicia la aplicación del sistema svchost.exe en modo suspendido, después inyecta el código tor.exe en este proceso svchost.exe suspendido, ajusta el código para que funcione sin problemas y procede con la reanudación del svchost suspendido. Como resultado, en vez de ejecutar el svchost.exe del sistema, el proceso comienza a ejecutar tor.exe.
La herramienta Tor que se hace pasar por el proceso svchost.exe crea un servidor proxy HTTP que atiende al puerto TCP 9050.
Proxy de tor ejecutándose como un proceso svchost.exe
Entonces, por ejemplo, si ajustas el navegador en un equipo infectado para que funcione mediante proxy 127.0.0.1:9050, todo el tráfico del navegador pasará por la red Tor. El servidor CnC de esta versión de ZeuS se ubica en el dominio onion: egzh3ktnywjwabxb.onion. Por lo tanto, cuando el malware se comunica con su CnC, envía solicitudes mediante el proxy mencionado para alcanzar la red Tor y su CnC.
Es más, ZeuS crea un servicio escondido de Tor en el equipo infectado que ejecuta los siguientes parámetros cuando inicia tor.exe:
-HiddenServiceDir "%APPDATA%torhidden_service"
-HiddenServicePort "1080 127.0.0.1:<случайный порт 1>"
-HiddenServicePort "5900 127.0.0.1:<случайный порт 2>"
En esencia, estos parámetros tienen la función de dar indicaciones específicas sobre cómo ejecutar el servicio oculto (servidor web onion) en equipos específicos. HiddenServiceDir define dónde se ubica la configuración del servicio en forma local, y HiddenServicePort define cómo redirigir a los usuarios que se conectan a tu dominio onion a tu servidor web que se ejecuta de forma local. Los usuarios suelen conectarse a dominios web en el puerto 80, que está asignado al protocolo HTTP, pero tu servidor web podría aceptar conexiones entrantes a otro puerto, por ejemplo el 1080. En tal caso, tor.exe debe iniciarse con el siguiente parámetro:
-HiddenServicePort "80 127.0.0.1:1080"
esto significa que, cuando los usuarios se conectan de un modo común mediante el navegador a
Pero en el caso de ZeuS es más probable que no haya ni un solo servidor web ejecutándose en un equipo infectado. Entonces, ¿por qué quiere el malware abrir un servicio oculto además del mapeo de este puerto a puertos aleatorios? La respuesta está en el mismo ZeuS. Crea una carpeta de configuración de tor para cada alojamiento infectado, generando una llave única privada para el servicio oculto y, por consiguiente, un nombre de dominio exclusivo. Por su parte, tor.exe posibilita el funcionamiento del servicio oculto con un nombre de dominio onion único.
Creado por la carpeta de configuración tor de ZeuS
Creado por la carpeta de configuración tor de ZeuS
Ejemplo de un dominio generado relacionado con un host infectado
Cuando se ejecuta en un sistema infectado, ZeuS atiende a los puertos que se generaron de forma aleatoria y que se recordaron durante la primera ejecución del malware. El operador de la red zombi conocerá el dominio onion que se genera en relación con todos los equipos infectados mientras que el malware informa al CnC sobre su nombre de dominio tor. Entonces, cuando un equipo infectado está conectado a Internet, el operador de la red zombi puede alcanzarlo conectándose a su dominio onion único mediante la red Tor. Uno de los propósitos de esta medida es tener control remoto del equipo infectado. Por ejemplo, uno de estos puertos atiende específicamente a la función VNC de ZeuS, lo que sin duda significa que ZeuS ofrece control remoto del equipo al operador mediante este puerto.
Pero el funcionamiento de ZeuS mediante Tor no es nuevo. Hemos rastreado ejemplares de ZeuS con signos de comunicaciones Tor que datan de 2012 en las que, junto con infecciones de ZeuS, el proxy Tor y el servicio oculto Tor se desplegaron en equipos infectados. En Internet hay hasta instrucciones que indican todos los pasos a seguir para aprender a usar tor.exe de modo que el tráfico de ZeuS o Spyeye pase mediante la red Tor, así como guías para crear un dominio onion para alojar CnCs para estos troyanos bancarios. Pero la mayoría de estos ejemplares más antiguos tenían dominios CnC especificados en sus cuerpos como localhost o 127.0.0.1, lo que implica que los ejemplares de ZeuS o Spyeye en sí mismos no tenían una relación muy estrecha con las comunicaciones Tor, mientras que la versión de ZeuS descrita en esta entrada tiene un dominio onion de comando y control egzh3ktnywjwabxb.onion, definido en su bloque interno de parámetros. Y tor.exe se incluye directo en su cuerpo y el mismo ZeuS lo ejecuta. Por lo tanto, las comunicaciones Tor y la versión de 64 bits son partes inseparables de este ejemplar de ZeuS, con la funcionalidad incluida en la etapa de desarrollo más temprana.
Conclusión
Cualesquiera que hayan sido las intenciones del autor del malware que creó este ejemplar de ZeuS – ya sea por una estrategia de mercadeo o para cubrir las bases de una necesidad futura – el hecho es que ya existe un ZeuS de 64 bits, y podemos concluir que se ha alcanzado un nuevo hito en la evolución de ZeuS. Además, este ejemplar reveló otra característica distintiva que se ha agregado a la funcionalidad de ZeuS: el malware ZeuS tiene la capacidad de trabajar por sí mismo mediante la red Tor con dominios CnC onion, lo que significa que ahora se ha unido a un selecto grupo de familias de malware con esta capacidad.
Ejemplares
Detectamos los ejemplares de ZeuS de 32 bits en cuestión como: Trojan.Win32.Scarsi.uhm – 52d3b26a03495d02414e621ee4d0c04e HEUR:Trojan.Win32.Generic – b33d3509ce930bcc796a9e2904f426d7 Detectamos los ejemplares de ZeuS de 64 bits extraídos de los ejemplares de 32 bits ya mencionados como: Trojan-Spy.Win64.Zbot.a – cc793e5b0df621b8d572cf4e7f26e053
El hito inevitable: ZeuS de 64 bits ahora viene enriquecido con Tor