Mostrando entradas con la etiqueta SpyEye. Mostrar todas las entradas
Mostrando entradas con la etiqueta SpyEye. Mostrar todas las entradas

martes, 22 de mayo de 2012

Nuevas versiones de SpyEye graban imágenes de sus víctimas


Dmitry Tarakanov de Kaspersky ha descubierto un nuevo plugin para SpyEye (una de las familias de troyanos bancarios más utilizados) que permite grabar a través de la cámara del ordenador imágenes del usuario mientras está siendo robado por el troyano.

Existen alrededor de 40 plugins diferentes para la rama 1.3 de SpyEye, que es la más usada en los últimos tiempos. Uno de los últimos detectados se denomina "flashcamcontrol.dll". Esta librería modifica los permisos de FlashPlayer para permitir a los documentos flash descargados desde cualquier página web, la grabación con la cámara y el micrófono sin pedir permiso al usuario.

Una vez infectado, cuando la víctima visita la página de su banco, descarga un fichero swf (flash) desde un punto controlado por el atacante y se inyecta en la web legítima del banco. Este fichero comenzará la grabación, enviándola a un servidor remoto a través del protocolo Real Time Messaging Protocol (rmpt). En realidad el atacante se asegura de que puede grabar con la cámara con otro fichero adicional llamado "camara_test.sfw", que pregunta al usuario por otra cámara cuando no puede grabar a través de la definida por defecto.

¿Por qué grabar al usuario?

Tarakanov se plantea la utilidad de grabar al cliente mientras está siendo robado. Hoy en día, la mayoría de los bancos piden al usuario un dato adicional de autenticación cuando realizan una transacción, ya sea un código de una tarjeta de coordenadas o el código devuelto en forma de SMS por el banco. Los troyanos han solucionado este "problema" bien modificando la página web que la víctima "ve" en su navegador para que requiera todas las coordenadas de la tarjeta, bien infectando también el teléfono móvil. La última modalidad, la "transferencia ficticia" implica que al usuario se le indica que debe hacer una transferencia de prueba usando el código que el banco le enviará al móvil. En este esquema, es en realidad la víctima la que está realizando una transferencia al atacante sin que lo sepa, a través de una interfaz simulada. Por tanto, ¿qué aporta grabar al usuario durante este proceso? Tarakanov afirma que se desea estudiar cómo reacciona el usuario ante este esquema de ingeniería social.

Pero en realidad todo son suposiciones. Puede ser desde simplemente una prueba que no sirva para nada en el futuro, o puede tratarse del primer paso hacia una estafa mucho más elaborada, donde el atacante desee obtener información adicional sobre su víctima: sexo, edad… quizás el atacante quiera saber el modelo del móvil de la víctima, o entorno en el que se realiza la estafa. También es posible que, como teoriza Tarakanov, quieran estudiar las reacciones. Con esto podrían mejorar su ingeniería social. Por ejemplo, si muchos usuarios infectados llaman al banco tras observar la modificación "no esperada" de la página web en su ordenador, están perdiendo una potencial "víctima". Así pueden conocer el punto débil de su esquema de ataque. Quizás no le interese tanto al atacante la imagen como el audio…

Lo interesante es que SpyEye y sus plugins siguen activos, desarrollándose y buscando nuevas vías con las que eludir los avances técnicos de autenticación de la banca electrónica. Ante la mejora de los dos factores de autenticación, a los atacantes les queda sobre todo trabajar en la ingeniería social, y este módulo puede que vaya encaminado hacia ese objetivo.

Más información:

Big Brother


Sergio de los Santos
Twitter: @ssantosv

domingo, 29 de abril de 2012

Nuevos troyanos Spyeye orientados exclusivamente a entidades de Panamá y Honduras


Existen decenas de miles de versiones de Spyeye que atacan a cientos de entidades bancarias. Pero en nuestro laboratorio no habíamos visto aún una muestra orientada exclusivamente a bancos de Latinoamérica. Hasta ahora, estas entidades han sido atacadas por troyanos mucho más simples, pero parece que ya han entrado en el peligroso circuito de los troyanos más sofisticados.

Las nuevas versiones de Spyeye funcionan de la siguiente manera: Cuando un usuario infectado se presenta en la página de su entidad bancaria en línea, el troyano modifica la web. Se inyecta en el navegador (Firefox e Internet Explorer) y cambia el resultado que se muestra a la víctima, de forma que aparece, por ejemplo, un formulario solicitando todas las coordenadas de su tarjeta. Para ello, los atacantes han debido estudiar previamente la página legítima para saber dónde colocar los nuevos elementos.

El usuario no ha sido víctima de un phishing o un pharming (ataques para los que están más acostumbrados), sino que se encuentra en la web real de su banco. Las credenciales robadas irán a parar a un servidor web centralizado del atacante, donde recopilará toda la información a través de una cómoda interfaz.

Los bancos americanos y europeos han sido tradicionalmente los más atacados por este tipo de muestras. Hasta ahora, quizás para los atacantes de América Latina era suficiente con troyanos mucho más simples, como los típicos keyloggers, modificadores de hosts, etc. Sin embargo, esta muestra localizada ataca en concreto a cuatro entidades (lo que también llama la atención por ser un número muy bajo. Lo normal es que afecten a más de una docena). Tres de los bancos son panameños y el último, de Honduras.


La muestra analizada además presenta algunas curiosidades con respecto al Spyeye tradicional. Por ejemplo, usa un nombre de directorio diferente. Si bien suele crear un directorio en la raíz C: llamado $recycle.bin$, este directorio se llama C:\Recys.Bin.

Otra curiosidad es que esta versión no depende de un archivo de configuración que sea descargado. Si bien sí que lo descarga, la configuración que contiene los bancos que debe atacar se encuentra incrustada en el propio código del binario, lo que no es habitual.

Por último, destacar que toda su infraestructura está basada en dominios con nombres en castellano de contenido sexual, pero de nacionalidad rusa. Así, podemos encontrar varios dominios donde se aloja la infraestructura tales como ojosxxx.ru y putitas.ru.


Laboratorio Hispasec

miércoles, 11 de abril de 2012

Hispasec presenta WinLockLess: Herramienta para prevenir el arranque de programas en el inicio de Windows (y su potencial bloqueo)


Hemos creado una pequeña herramienta para prevenir (en lo posible) que el malware se ejecute de nuevo en el inicio del sistema (y así pueda bloquearlo). Esperamos que sea útil contra el malware en general.



¿Qué hace el programa?

Evita que los programas modifiquen ciertos puntos del sistema para que se lancen de forma automática en el inicio de Windows. Se ha intentado que sea bastante sencillo: niega con un solo click el permiso de crear subclaves y establecer el valor (y en algunos casos, de borrar) sobre estas ramas implicadas en el arranque de Windows:

HKCU\Software\Microsoft\Windows\CurrentVersion\Run
HKLM\Software\Microsoft\Windows\CurrentVersion\Run
HKCU\Software\Microsoft\Windows NT\CurrentVersion\WinLogon
HKLM\Software\Microsoft\Windows NT\CurrentVersion\WinLogon
HKCU\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer\Run
HKLM\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer\Run
HKCU\Software\Microsoft\Windows\CurrentVersion\RunOnceEx
HKLM\Software\Microsoft\Windows\CurrentVersion\RunOnceEx

Además protege la carpeta de inicio del usuario, y la rama:

SYSTEM\CurrentControlSet\Control\SafeBoot

Evitando no solo crear sublclaves y establecer valores, sino también que se borre. Con esto nos aseguramos de que siempre podremos entrar en el modo seguro.

Las claves son protegidas tanto en su versión "nativa" de 64 bits como en las virtualizadas de 32 bits (bajo Wow6432node). Esto quiere decir que protegería tanto de programas nativos compilados en 64 bits como los de 32. Por ahora existe poco malware compilado de forma nativa para 64 bits, pero será común en el futuro.

Si las ramas no existen, las crea y establece los permisos para proteger así al usuario.

¿Por qué esas claves?

Estas son las claves más conocidas que suelen modificar los troyanos para iniciarse con el sistema y bloquearlo. Hay muchos otros puntos de inicio, pero que no son utilizados por la mayoría del malware. Por ejemplo, el malware de la policía, SpyEye, zbot... todos usan normalmente alguna de esas ramas para arrancarse al inicio. En última instancia, al proteger el modo seguro, el usuario se asegura de que siempre podrá entrar en ese modo sin alteraciones.

Siempre se aplicarán las reglas para el usuario bajo cuyo contexto se lanza el programa. Esto quiere decir que si se usan varios usuarios en el sistema, se debe lanzar para cada uno de ellos. Eso sí, el programa requerirá privilegios de administrador para modificar algunos permisos.

El programa permite tanto aplicar los cambios como revertirlos. Así, si el usuario necesita modificar esas ramas legítimamente, solo debe revertir temporalmente el bloqueo.

¿Qué no hace el programa?

El programa no es un antivirus ni evitará ninguna infección. Sólo evitará que, buena parte del malware conocido, bloquee el acceso al sistema al arrancarse con él. Por supuesto, no están contemplados todos puntos de arranque de Windows usados por el malware, pero sí las más relevantes.

El programa queda residente, pero no es necesario que lo haga. De hecho, no se recomienda. Si queda residente es para recordar al usuario que ha aplicado los permisos y, dado el caso, revertirlos cómodamente.

No se instala. Tan solo es una interfaz cómoda para aplicar ciertos permisos en el registro, que pueden ayudar a evitar que algunas variantes de malware se arranquen con el sistema y no permitan su uso ni su arranque en modo seguro. Esto quiere decir que, si el usuario queda infectado, el troyano podrá hacer lo que quiera y necesite en el sistema durante la primera ejecución. Aplicar WinLockLess impedirá (en algunos casos) que se arranque en el siguiente reinicio, pero el usuario deberá todavía desinfectar su máquina.

El programa tampoco detiene la ejecución actual del troyano (antes de un reinicio) ni lo borra de su ubicación en el disco duro. Solo impide que se copie en los puntos de inicio de Windows.

Por supuesto, un malware en un momento dado puede modificar los permisos aplicados por el programa, eliminar la protección, y establecerse en las ramas del registro. Incluso ejecutarse como SYSTEM... Pero no es habitual que el malware actúe de esa manera actualmente, ni se preocupe demasiado por los permisos (excepto cuando no es administrador, en cuyo caso busca la configuración del usuario).

¿Cómo debo usarlo?

Simplemente se ejecuta, se aplican los cambios en las ramas deseadas, y poco más. El usuario no debe notar ninguna incidencia en su sistema. Es cierto que ciertos programas legítimos querrán escribir en el registro, especialmente en

HKCU\Software\Microsoft\Windows\CurrentVersion\Run

Para arrancarse con Windows. Si los cambios fueron aplicados, WinLockLess se lo impedirá. En ese caso, el usuario deberá revertir las modificaciones en el registro (pulsando sobre el botón correspondiente), instalar el programa deseado, y volver a aplicar las modificaciones.

El programa también sirve para evitar que los programas en general se arranquen al inicio (algo que suele ser molesto para usuarios iniciados).

¿Qué necesito para ejecutarlo?

Se necesita como mínimo la versión 4 de .NET (disponible en http://www.microsoft.com/download/en/details.aspx?id=31 o a través de actualizaciones automáticas). Los usuarios de Vista y 7 probablemente ya dispongan de ella a través de las actualizaciones automáticas. La razón de usar esta versión del framework (entre otras) es el trato nativo a ramas de 64 bits en el registro. WinLockLess. Ha sido programado por Sergio de los Santos en C#, y el diseño es de Jose Mesa. Por supuesto, no se ofrece ninguna garantía de que bloquee la activación en el arranque de futuras versiones de ningún tipo de troyano.

Ejecuté WinLockLess y aun así el troyano se ha lanzado en el arranque.
¿Qué ha pasado?

Es posible. Los troyanos que bloquean el ordenador pueden usar decenas de técnicas para lanzarse en el inicio. WinLockLess solo cubre las más comunes. También es posible que se haya lanzado con un usuario diferente al infectado. También, hipotéticamente pero no probable, el troyano ha podido eliminar primero los permisos y luego escribirse en la rama.

En cualquier caso, por supuesto, es una capa más que no debe crear una falsa sensación de seguridad. Se deben seguir usados los métodos de prevención tanto reactivos como preventivos habituales.

¡Windows me advierte al ejecutarlo de que puede ser peligroso!

Esto es porque ha sido descargado de Internet, es un ejecutable, y no está firmado.

Se puede descargar desde:

Más información:

Laboratorio Hispasec

jueves, 22 de marzo de 2012

Zeus mejora su ingeniería social: la transferencia "ficticia"

La familia Zeus solía modificar las pantallas de los infectados para pedir la tarjeta de coordenadas completa. Así podían validar transferencias y robar a sus víctimas. A medida que los bancos van implantando los SMS como método de validación, Zeus mejoró incluyendo el envío del troyano al móvil e interceptando los SMS (man-in-the-mobile). Pero esto sólo es válido para BlackBerry y Android, además de que muchos usuarios se mostraban recelosos. ¿Cómo han solucionado este problema? Con un genial movimiento de ingeniería social.


Zeus y SpyEye ya han hecho frente en el pasado al "problema" que les supone la autenticación por móvil en la banca electrónica. Envían a sus víctimas un troyano al móvil, para interceptar así el código de validación en los SMS. De eso ya hemos hablado no hace mucho aquí:

Sin embargo, últimamente han desarrollado una técnica no tan sofisticada técnicamente, sino basada en lo que siempre parece el punto más débil: el usuario y su credulidad. Así, estas versiones funcionan de la siguiente manera. Cuando el usuario se presenta en su página de banca electrónica (y sólo cuando se presenta, no antes) el troyano se activa. Lo primero que hace es interpretar la página del banco concreto, buscando las cuentas que almacenen una mayor cantidad. Esta información la envía a un servidor externo con la siguiente petición HTTP:


Donde "country" es el banco atacado, "amount" la cantidad que guarda la cuenta de la víctima y "login" el login de usuario en la banca oline.

Después, muestra esta pantalla (incrustada en la original):

 
En ella se insta al usuario a realizar un "test" para probar el sistema de SMS de la banca. Bajo la premisa de una transferencia ficticia, se invita al usuario a que pruebe los beneficios del método de validación por móvil. El lenguaje, comparándolo con otro tipo de estafas, está relativamente cuidado.

Si el usuario decide continuar (no tiene otra opción, puesto que si cierra la pantalla no podrá acceder a su banca online), aparecerá este otro mensaje


En ella se hace una transferencia a un beneficiario (el mulero) del que incluso se muestran las últimas cifras de la cuenta. La transferencia es invariablemente por valor de 3.000 euros, e invita al usuario a validarla con el mensaje que ha recibido en su móvil. Lo que está ocurriendo es que el troyano está realizando realmente la transferencia, pero a través de una "interfaz" creada por él, usando los recursos del banco. O sea, al teléfono llegará realmente un mensaje legítimo generado por la entidad y si lo introduce y valida, el efecto será exactamente el mismo que si el usuario hubiese realizado la transferencia de forma habitual desde su portal.

Esta ingeniosa e interesante manera de engañar al usuario está teniendo cierto éxito, y supone un paso muy interesante en la evolución de esta familia y su uso de la ingeniería social.

El resto de comportamiento "técnico" del troyano Zeus, es el "habitual": se inyecta en Explorer.exe, descarga un archivo de configuración cifrado desde alguna ubicación, envía los datos robados a un panel del atacante donde quedan ordenados y clasificados, etc.


Sergio de los Santos
Twitter: @ssantosv

viernes, 16 de marzo de 2012

SpyEye y sus curiosas técnicas de ocultación


A finales de 2010, ya publicamos algunas noticias acerca de la familia SpyEye (con vídeo incluido) en las que se hablaba de su interesante panel de control. Dos años después, el troyano sigue gozando de una estupenda salud, y su variante que infecta también a los teléfonos móviles, está consiguiendo un éxito importante. Hablemos ahora de sus técnicas de ocultación y algunas curiosidades.

SpyEye es un troyano bancario del tipo DIY ("hágalo usted mismo") muy popular. Su nivel de sofisticación es punta de lanza del malware actual. Sus últimas versiones incorporan la infección del móvil con sistema operativo Android o Blackberry cuando se usa el SMS como segundo canal de autenticación de algunos bancos. Así, el troyano tiene el control sobre los dos dispositivos involucrados en la transacción.

SpyEye tiene muchas "virtudes". Entre ellas, es un rookit que impide que se vean sus ficheros si se explora el sistema desde el explorador. Se suele copiar en:

C:\$recycle$

Que queda invisible al explorador. Se puede consultar sin embargo, desde la línea de comando.


Hasta aquí "normal", esto ya lo hacía Zeus desde 2006 y rootkits en años anteriores. Algo que lo diferencia de algunas versiones de Zeus, es que SpyEye es invisible también en línea de comando, gracias a que modifica el comportamiento de dos funciones de Windows a bajo nivel: NtQueryDirectoryFile y NtVdmControl.

En la captura, en el directorio $recycled$ falta un ejecutable. ¿Dónde está? Lo que vemos es el archivo de configuración. El archivo está ahí, incluso oculto para el cmd. Si intentamos copiar cualquier fichero en la misma ruta... nos dice que ese nombre ya está siendo usado.

 
Ocultación en el registro

Durante el análisis de este tipo de malware, una técnica habitual es comprobar con la herramienta Autoruns qué se arranca en Windows. Autoruns recopila de forma muy eficaz todos los puntos que pueden servir para lanzar código que se inicia con el sistema operativo. ¿Dónde se ubican estas versiones de SpyEye para lanzarse en el inicio? Mientras que Zeus trabaja en la shell del Winlogon (más "rebuscado"), esta versión de SpyEye, sorprendentemente, utiliza una zona muy común para arrancar programas en el inicio:

HKLM\Software\Microsoft\Windows\CurrentVersion\run

... pero que se oculta, tanto a los ojos la herramienta "normal" de registro (regedit), como para Autoruns. De nuevo el rootkit de este malware va un poco más allá (los rootkits como tal, insistimos, ya contiene estas técnicas desde hace tiempo). En este caso, parchea en memoria la API NtEnumerateValueKey, que usa ntdll.dll. Esto es muy eficaz, puesto que la API se encuentra a muy bajo nivel. Es decir, cualquier programador usará APIs comunes como RegEnumValue o RegOpenKey, pero estas, internamente, llamarán a NtEnumerateValueKey. Con esto consigue engañar a la inmensa mayoría de programas que quieran leer el registro... aunque no a todos

Autorunsc, el más sincero

Como curiosidad, parece que una de las versiones de SpyEye comete algún tipo de error a la hora de "parchear" en memoria la función. Así, permite que, la primera vez que se lanza Autorunsc (la versión de línea de comandos de Autorun), se pueda leer bien el registro, mientras que en sucesivas consultas... se oculta.


 
Esta imagen lo resume un poco todo. La entrada "oficial" en el registro es solo la correspondiente a ctfmon.exe. Sin embargo, existe otra que solo se puede "ver" en el resultado de Autorunsc después de la infección, volcado en un texto. Se observa la entrada:

YZ5CZHZY5D1EWA9X
     C:\$Recycle$\B8DEA5BBC55.exe /q
     c:\$recycle$\b8dea5bbc55.exe
     7678946538a76066a7d0829584eaa0e3 (MD5)
     9c36092b853526aa340239ac70f5dfb1ced1e921 (SHA-1)
     e20b15ec8f0a5cffce47923dc79934e8c6dd9295c7256881f3d399632e7eaa90
(SHA-256)

Invisible al resto de programas. Si se lanza de nuevo autorunsc y se consulta el registro... desaparecerá. El funcionamiento interno de Autorun y Autorunsc es el mismo, llaman a las mismas API de sistema para leer los valores del registro, así que solo cabe achacar el comportamiento a algún error del troyano, que subsana en sucesivas consultas.

Más curioso todavía

¿Qué hacer entonces para eludir el parcheo en memoria que hace el troyano? Como hemos dicho, lanzando autorunsc.exe la primera vez, será incapaz de ocultarse. Pero existe otro método. SpyEye no afecta a los procesos que se llamen skype.exe. Lo tiene "incrustado" en su código. No es una "puerta trasera" sino que muy probablemente, lo hará para que no le llegue tanto tráfico desde esa aplicación, que quizás no le interese. Así, si renombramos autorunsc.exe a skype.exe, el valor oculto volverá a aparecer. Se observa en la figura el incremento de tamaño del fichero de texto resultante con uno y otro nombre. El aumento de tamaño corresponde a la entrada oculta.


Igualmente, renombrando autoruns.exe a skype.exe, se ve gráficamente la entrada.


Más información:

Bypassing the SpyEye "rootkit", or how to perform a quick disinfection

Analysis of TR/Spy.SpyEye

Vídeo: Así funciona SpyEye (I)

Así funciona SpyEye (y II)


 
Sergio de los Santos
Twitter: @ssantosv