You are on page 1of 16

Carberp Un troyano modular para robar informacin.

Marco Giuliani Director, Prevx Advanced Malware Research Team Andrea Allievi Investigador Malware Prevx

Un Exclusivo

PRLOGO Hoy en da la mayora de las operaciones bancarias y los pagos se hacen en la web, a travs de servicios bancarios electrnica y soluciones de pago en lnea, como Moneybookers o PayPal. Dado que las transacciones en lnea estn aumentando su volumen, los autores de malware se estn enfocando cada vez ms en el desarrollo de software maliciosos capaces de robar datos confidenciales de las computadoras infectadas. Hoy en da hay varios paquetes de soluciones de venta en Internet, red de bots disponibles para todo el mundo, desarrollados para construir en unos cuantos minutos una nueva versin de un Troyano en especfico, capaz de esconderse de los escneres de antivirus y blindados por algunas caractersticas interesantes como control remoto y sensibles a las rutinas de robo de datos. Con un gasto de slo 700/800 dlares los paquetes no son caros - un atacante potencial podra obtener varios miles de dlares y podra construir su propia red de bots que luego pueden ser vendidos o alquilados, o incluso utilizados para atacar a sitios web sensibles.

-1-

Carberp Un troyano modular para robar informacin. InfoSpyware

Los dos paquetes de red de bots ms infames en lnea disponibles eran Zeus y SpyEye, y ya se hablaba de ellos en algunos post de nuestro blog aqu y aqu. Tal parece que entre Q3/Q4 2010, el autor de Zeus decidi detener el desarrollo de su troyano y opt por vender el cdigo fuente a los autores de SpyEye, dndole el mando de los troyanos para robar informacin. Nosotros ya hemos analizado la ltima variante de SpyEye con mejoras Zeus aqu en nuestro blog Prevx. Durante la segunda mitad del 2010 se ha monitoreado el crecimiento de un nuevo troyano disponible en el mercado negro: se llama Carberp. Despus de algunos difciles ciclos de desarrollo, hoy Carberp probablemente se ha convertido en la segunda peor amenaza a los datos de los clientes, a raz de SpyEye. En este artculo vamos a analizar en profundidad este troyano, viendo cmo se desarrolla y qu podemos esperar en el futuro de quienes est detrs de de la creacin este troyano.

-2-

Carberp Un troyano modular para robar informacin. InfoSpyware

ANLISIS DROPPER (INSTALADOR TROYANO DE MALWARE) Este troyano es generalmente encontrado en pginas web falsas que contienen cdigos para explotar o difundir a travs de la ingeniera social. El propio archivo cambi muchas veces durante los ltimos meses. El dropper est encriptado por una fuerte capa de cifrado. Si bien el propio cifrado no es realmente complicado, la propuesta de un anlisis manual no es trivial debido a varios trucos ejecutados por el promotor en el desarrollo de la capa. Mediante el anlisis de droppers capturados durante los ltimos meses, hemos visto una amplia gama de trucos implementados en la capa de descifrado para hacer el trabajo de desempaquetar un reto. En algunas variantes el cdigo fue desordenado o daado totalmente. Usualmente este tipo de cdigo spaghetti es suficiente para detener la mayora de inversores de analizar manualmente el cdigo. El dropper implementa una serie de llamadas falsas al sistema API, utilizando parmetros no vlidos. Este truco es usado para engaar a los emuladores de antivirus, para que dejen de emular el cdigo troyano. Los emuladores de antivirus por lo general tratan de emular esttica o dinmicamente el comportamiento de Windows para que el cdigo malicioso pueda ser ejecutado en un ambiente controlado y pueda ser revisado por el motor antivirus. El sistema de emulacin a menudo est muy lejos de ser perfecto, y la emulacin de las llamadas al sistema en realidad no hacen la emulacin a todas las situaciones posibles. Mediante la implementacin de varias llamadas falsas a la API con parmetros no vlidos, el troyano intenta detener el correcto funcionamiento de los emuladores de antivirus.

Se trata de las, ms poco comunes y raras, llamadas API de Windows, las APIs que a veces no son emuladas por los emuladores antivirus. Carberp no importa funciones de la API mediante el uso de formas documentadas. Sin embargo, analiza de forma manual las libreras del sistema para importar las direcciones necesarias de la API. Implementa una rutina de generacin de claves para ocultar los nombres de API que se van a importar, lo que ralentiza el anlisis de los cdigos maliciosos. En lugar de pasar el nombre de la API que tiene que ser importado, el troyano utiliza un hash que se calcula a partir del nombre de la funcin. La rutina de hash utilizada por el dropper que hemos analizado es la que muestra la siguiente imagen:

-3-

Carberp Un troyano modular para robar informacin. InfoSpyware

El registro EAX almacena el hash. Se gira a la izquierda por 7 en cada ciclo y es entonces XOR con la cadena de caracteres apuntada por ESI index. Es una tcnica comn utilizada por el malware. Carberp utilizar esta tcnica de nuevo en el cdigo de desempaquetado - sin embargo, implementar un algoritmo de hash diferente.

La capa de cifrado se divide en dos partes: la primera parte trata de engaar el anlisis manual y automatizado de anlisis de emuladores - como se describe anteriormente. La segunda parte es la capa actual de desciframiento, que se basa en instrucciones matemticas ofuscada por el cdigo no deseado. Despus de que el descifrado es completado, el cdigo real del troyano se ejecuta.

-4-

Carberp Un troyano modular para robar informacin. InfoSpyware

PRIMERA FASE DE EJECUCIN DEL TROYANO Aqu estamos en el cdigo real del troyano. El anlisis esttico PE muestra que no hay ninguna tabla de importacin de directorio. El troyano importa manualmente todas las API necesarias analizando las bibliotecas del sistema necesarias. Esta es la tcnica ya utilizada en el gestor de descifrador de cdigo, slo cambia el algoritmo de hashing. El nuevo se muestra a continuacin:

El troyano importa todas las API necesarias cada vez que sean necesarias. Carberp se colocar en el interior, en la carpeta de inicio de la cuenta conectada en ese momento, para asegurarse de que se iniciar en el prximo inicio. El nombre del archivo utilizado es elegido arbitrariamente por el atacante mientras que el troyano construye el procedimiento a travs del paquete de creacin Carberp. Por lo general, utiliza uno de los nombres de archivos del sistema de Windows. Para ocultarse a s mismo en el sistema, el troyano utilizar tcnicas de rootkit en modo usuario. Vamos a analizarlas luego en este artculo. Carberp es un troyano totalmente modular, capaz de descargar y ejecutar nuevos plugins desde el servidor de comando y control. De hecho, el troyano ya contiene dos plugins incrustados en su cdigo. Cada plugin es encriptado mediante el uso de otro algoritmo de cifrado. Esta es la razn por la cual los plugins integrados se encuentran bien ocultos para el usuario. Los plugins Carberp tienen un formato de archivo comn, el cual est basado en un encabezado de 14 bytes seguido del cdigo encriptado. El encabezado de 14 bytes contiene la clave de cifrado y una cadena utilizada para identificar los nuevos plugins descargados: BJB.

-5-

Carberp Un troyano modular para robar informacin. InfoSpyware

El algoritmo de encriptacin es casi trivial, aunque es bastante efectivo. Se trata de un algoritmo XOR basado en la clave de cifrado y las posiciones de ndice de los bytes en cuestin. El algoritmo se muestra a continuacin:

Con la ayuda del algoritmo invertido, podemos extraer los dos plugins integrados y analizarlos. El primer plugin es r00f_dll.dll y es extrado en del troyano de inicio. Carberp troyano es un troyano de modo de usuario puro, lo que significa que es capaz de ejecutarse por completo en modo de usuario, incluso dentro de las cuentas limitadas. Trata de ejecutar algn cdigo especfico en modo kernel, para restaurar los hooks SSDT, si estn presentes. El trabajo del r00f_dll.dll es la ejecucin del cdigo en modo kernel para restaurar la Tabla original del Sistema de Servicio Descriptores. Trata de desenganchar las siguientes API nativas:

-6-

Carberp Un troyano modular para robar informacin. InfoSpyware

NtSetContextThread NTGetContextThread NtCreateThread NtOpenThread NtTerminateThread NtQueueApcThread

NtResumeThread NtUnmapViewOfSection NtCreateKey NtSetValueKey NtAllocateVirtualMemory NtWriteVirtualMemory

NtProtectVirtualMemory NtAdjustPrivilegesToken NtOpenProcess NtTerminateProcess

Esta tcnica permitira al Troyano evadirse de los software de seguridad que controlan el sistema de enganche las funciones kernel anteriores. Los troyano trazan el mapa del archivo kernel original en la memoria y reciben puntos del ncleo original, luego, se prepara el cdigo a ser ejecutado en modo kernel. Aqu, el plugin trata de utilizar dos mtodos diferentes para ejecutar el cdigo en modo kernel. El primer intento se hace utilizando una vieja vulnerabilidad de Windows - MS08-025 ya parcheada por Microsoft. Si el sistema no ha sido parcheado, la vulnerabilidad permite que el troyano obtenga privilegios del sistema y ejecute el cdigo en ring0. Si la explotacin ha sido parcheada, el troyano intenta obtener privilegios de depuracin llamando RtlAdjustPrivilege y luego trata de escribir dentro de la memoria del kernel invocando ZwSystemDebugControl API con el parmetro SysDbgWriteVirtualMemory. Estos ataques se ejecutan slo en los sistemas operativos Windows 2000, Windows XP y Windows 2003. Si el troyano se ejecuta en una cuenta limitada y el sistema est totalmente parcheado, estos ataques tendrn xito. El segundo plugin integrado, screens_dll.dll, es utilizado para capturar imgenes de pantalla. Despus de que el plugin r00f ha sido ejecutado, Carberp inicia su rutina de infeccin. Para ocultar mejor su comportamiento, Carberp no ejecuta su carga til de su proceso, sino que genera un proceso explorer.exe nuevo en un estado de suspensin. Este proceso ser la sede del cdigo malicioso. Despus de que el proceso explorer.exe ha sido creado, Carberp crea un nuevo objeto de seccin y mapas de s mismo dentro de esta nueva seccin creada. Entonces, esta seccin se asigna en el proceso explorer.exe a travs del llamado a ZwMapViewOfSection.

-7-

Carberp Un troyano modular para robar informacin. InfoSpyware

El cdigo malicioso ha sido inyectado dentro del proceso explorer.exe. Para iniciarlo, Carberp ha sido observado usando dos tcnicas diferentes. La primera tcnica es el secuestro punto de entrada de explorer.exe en la memoria, parches con una instruccin PUSH/RET para redirigir el flujo de cdigo para el cdigo malicioso inyectado. Punto de Entrada Original

Punto de Entrada Secuestrado

-8-

Carberp Un troyano modular para robar informacin. InfoSpyware

La segunda tcnica utilizada es una rutina de puesta en cola de APC para el hilo principal explorer.exe llamando ZwQueueApcThread. Entonces ambas tcnicas inician el proceso explorer.exe suspendido llamando ZwResumeThread. El dropper original Carberp termina, ahora se ejecuta dentro de su explorer.exe cro. A continuacin, se inyecta su cdigo dentro del proceso original explorer.exe del sistema a travs de una llamada CreateRemoteThread. Para conocer el proceso explorer.exe original, el troyano se ve con el nombre de la clase Shell_TrayWnd. El troyano crea una nueva instancia del proceso svchost.exe, donde se inyectar el cdigo capaz de comunicarse con el comando y controlar el servidor. HOOK EN MODO USUARIO (USERMODE) Carberp acta como un troyano que roba informacin y un rootkit en modo usuario. Para ocultarse a s mismo en el interior del sistema, inyectar una copia de s mismo en todos los procesos en ejecucin y enganchar ntdll.dll NtQueryDirectoryFile API. Al conectar esta funcin del sistema, el troyano es capaz de ocultar su archivo por parte del usuario. Desde un punto de vista tcnico, el hook sustituye la direccin SystemCallStub del patrn con su propia rutina: Original ZwQueryDirectoryFile

Secuestrado ZwQueryDirectoryFile

La instruccin llamada ptr [edx] invocar la rutina troyano, capaz de filtrar la enumeracin del troyano archivo por archivo. Si bien esta tcnica es fcil de omitir de varias maneras - la llamada directa sysenter, al abrir el archivo directo, desenganchar - en realidad es bastante efectiva y hace su trabajo.

-9-

Carberp Un troyano modular para robar informacin. InfoSpyware

Los hooks troyanos NtResumeThread ntdll.dll de la misma manera. Carberp utiliza enfoque a Man-in-the Browser-para robar datos de la informacin. Se conecta a las siguientes API: HttpSendRequestA HttpSendRequestW HttpSendRequestExA HttpSendRequestExW InternetReadFile InternetWriteFile InternetReadFileExA InternetReadFileExW InternetQueryDataAvail able InternetCloseHandle CreateFileW TranslateMessage

Los hooks InternetWriteFile, TranslateMessage y CreateFileW se fijan sobre la marcha si uno de los siguientes textos se encuentra en la direccin: * * cyberplat * / ibc / * * * bsi.dll Las variantes anteriores del troyano conectado slo HttpSendRequestA / W y HttpSendRequestExA / API EXW - todava TranslateMessage y CreateFileW se establecieron sobre la marcha. Adems esas versiones anteriores trataron de robar datos de la informacin slo si las lneas *CyberPlat* o * bsi.dll* se encontraron en la URL. Las versiones actuales Carberp cargan todos los datos relevantes para el servidor recolector, con especial atencin a las lneas mencionadas anteriormente. No hay ningn hilo de vigilancia para controlar la presencia de hooks malware, por lo que una restauracin de cdigo trivial puede ayudar a fijar el malware.

COMUNICACIN C & C Carberp no es slo un troyano que roba informacin, es un malware con mando a distancia que convierte la PC infectada en un zombi. Carberp puede comunicarse con una lista de servidores, por lo general incrustado en el binario. En versiones anteriores del troyano, esos servidores no estaban encriptados, y podran ser ledos en texto plano.

Variantes ms actualizadas de Carberp los encripta con un algoritmo de cifrado trivial basado en xor.
- 10 Carberp Un troyano modular para robar informacin. InfoSpyware

EL algoritmo y la lnea de cdigo relativa a este se muestran debajo:

Carberp puede ser configurado para contactar ms servidores. Cuando la computadora infectada contacta al C&C por primera vez, el troyano enviara de regreso al servidor algunas informaciones acerca de la maquina victima versin del sistema operativo, lisa de procesos, junto a un ID nico, calculado de la computadora infectada.

El troyano podra descargar una configuracin especfica desde el servidor. El nombre del archivo de configuracin se guarda dentro del cdigo binario del troyano y es encriptado con el mismo algoritmo descrito en la pgina anterior. Este nombre del archivo de configuracin ser incluso utilizado cuando se genere el nombre nico de la computadora infectada usada por el servidor C&C. Entonces el troyano contactar una pgina web especfica del servidor C&C domain>/set/task.html buscando los comandos especficos en el servidor. La versin de Carberp que nosotros hemos analizado puede recibir los siguientes comandos:

- 11 -

Carberp Un troyano modular para robar informacin. InfoSpyware

Download update grabber loaddll startsb getwm

Este puede actualizarse a si mismo, descargar y ejecutar archivos ejecutables nuevos o cargar dll, e incluso comenzar una sesin VNC remota mediante la descarga de un aditamento de Carberp (vnc.plug). Como fue antes expresado, Carberp es un troyano completamente modular, capaz de descargar y ejecutar aditamentos especficos desarrollados por los programadores de Carberp. Hemos sido capaces de descargar y analizar tres de los aditamentos mas usados. Son: passw.plug, stopa.plug y miniav.plug. Todos estos aditamentos han sido encriptados con el algoritmo anteriormente descrito. Stopav.plug es un aditamento usado para deshabilitar cierta cantidad de programas antivirus. En estos momentos trata de deshabilitar los siguientes programas de seguridad:

Arcavir Antivirus Avast4 Antivirus Avast5 Antivirus AVG Antivirus Avira Antivirus BitDefender Antivirus Dr.Web Antivirus McAfee Antivirus Microsoft Security Essentials Eset Antivirus

- 12 -

Carberp Un troyano modular para robar informacin. InfoSpyware

Eset Smart Security Sophos Antivirus

El plugin busca en el registro de Windows registros especficos relacionados con estos productos antivirus. Si los encuentra, el procedimiento comn es intentar deshabilitar el programa de seguridad mediante la creacin de un proceso antivirus en un estado suspendido para entonces inyectar ah la carga para borrar uno o ms archivos del ncleo. Entonces el proceso se resume.

captura de pantalla plugin stopav

- 13 -

Carberp Un troyano modular para robar informacin. InfoSpyware

Este plugin ha sido escrito en Borland Delphi EL segundo aditamento, escrito en Borland Delphi es miniav.plug. Este aditamento es responsable de escanear el sistema buscando otras infecciones troyanas. Busca- y trata de limpiar los siguientes troyanos:

Adrenalin Barracuda

BlackEnergy
Generetic Limbo MyLoader ZeuS

captura de pantalla plugin miniav

El plugin tambin revisa las Opciones de la Llave del Registro del Archivo de Ejecucin de Imagen, buscando el valor Debugger dentro de cada subllave. Esta es una tcnica comn usada por los cdigos maliciosos para denegar la creacin de procesos especficos o para conseguir que su cdigo se ejecute cuando el proceso especificado este corriendo. El tercer aditamento, passw.plug, es un agarrador, capaz de escanear la PC infectada buscando contraseas y cuentas de usuario. Puede conseguir mucha informacin desde la PC infectada, por ejemplo:

- 14 -

Carberp Un troyano modular para robar informacin. InfoSpyware

Live Messenger, Yahoo, Trillian, Pidgin, MySpace, Gaim, QIP, Odigo, ICQ, GTalk, Gizmo, Jabber, Gadu-Gadu, AOL, Miranda accounts;

Contraseas almacenadas en los exploradores mas comunes (Opera, Internet Explorer, Safari, Firefox, Chrome);

Cuentas de correo y sus relativas contraseas de los clientes de correo electrnico mas comunes (Outlook, Windows Live Mail, The Bat!, Becky, Eudora, Mail.Ru, IncrediMail, PocoMail, ForteAgent, Scribe, POP Peeper, MailCommander etc);

Cuentas de usuarios y contraseas de los clientes FTP mas comunes (CuteFTP, WS_FTP, FileZilla, FTPCommander, BProofFTP, SmartFTP, CoffeeCup, CoreFTP, Frigate3, UltraFXP, FlashFXP, FTPRush, WebSitePublisher, BitKinex, FreeFTP, WinSCP, TotalCommander etc);

Informacin del sistema junto con contraseas de de las credenciales para control remoto de escritorio, contraseas de VNC, cuentas VNP Cisco)

Toda la informacin robada se guarda en una base de datos y se carga a un servidor remoto.

Conclusin Mientras que SpyEye dirige al mundo de los troyanos robadores de informacin despus de que el cdigo Zeus fue vendido, Carberp apareci silenciosamente en el mercado clandestino mostr al mundo mucho potencial. Su estructura modular junto con su habilidad para correr incluso en cuentas limitadas y el equipo desarrollador activo detrs de el hacen de este troyano una amenaza peligrosa. Su capa de encriptacin parece muy efectiva al momento de sobrepasar el escaneo de sistemas antivirus clsicos, mostrando la necesidad de un acercamiento multicapa de seguridad para combatir contra las amenazas de hoy da. Prevx SafeOnline ha sido capaz de proactivamente proteger los navegadores de nuestros usuarios evitando los hooks ladrones de Carberp previendo el robo de cuentas de bancos y cuentas y contraseas mientras navegan en la pgina del banco. Esperamos que Carberp se riegue mucho mas durante el 2011, rpidamente convirtindose en una de las mayores amenazas de robo de informacin.

- 15 -

Carberp Un troyano modular para robar informacin. InfoSpyware

Acerca de Prevx
Prevex provee productos basados en nube con capacidades sin paralelo para la proteccin de consumidores, SMEs y compaas, bancos, y organizaciones gubernamentales de las ms recientes amenazas de cdigo malicioso. Toda la suite de Prevx esta basada en su agente galardonado buque insignia, Prevx 3.0, y se conecta a la mayor base de datos de amenazas basado en la nube del mundo. Prevx3.0 es el ms pequeo del mundo, el ms rpido, ms ligero y el agente de seguridad de punto final sin embargo, su deteccin, proteccin y capacidad de eliminacin de rivalizar con el ms grande de soluciones antivirus. Prevx se especializa en la deteccin de ataques de da cero, reduciendo el tiempo de exposicin al peligro y proporcionar proteccin en tiempo real contra las ltimas y las formas ms malicioso de malware, como keyloggers, troyanos y rootkits - la captura de las amenazas que se pierden por los proveedores tradicionales de antivirus.

Prevx es una divisin de Internet de la compaa de servicio de seguridad Webroot. Con sus principales operaciones en el Reino Unido, los productos de Prevex tambin se venden y se da soporte en toda Europa y en Estados Unidos. Antes de la adquisicin por Webrooten 2010, Prevex IT fue formado por el empresario Mel Morris, quien adquiri Immunify Ltd en 2005 y lo re-lanzado como Prevx. Ahora, vicepresidente y gerente general de la divisin de Prevx en Webroot, Morris lo llamo Prevx para reflejar la misin de la organizacin para ayudar a los clientes - desde los consumidores y las pequeas empresas hasta grandes instituciones financieras y organizaciones internacionales para protegerse de la mejor manera contra la naturaleza cambiante y desconocido de software malicioso. Prevx: Previniendo lo desconocido. La familia Prevx de software de seguridad ha sido implementada por los principales bancos, empresas y agencias gubernamentales y soporta ms de 15 millones de usuarios en todo el mundo.

- 16 -

Carberp Un troyano modular para robar informacin. InfoSpyware

You might also like