análisis técnico de win32 georbot

12
Fernando de la Cuadra, director de Educación ([email protected]) Josep Albors, director de Comunicación ([email protected]) Nuevos ESET Smart Security 5 y ESET NOD32 Antivirus 5 Desde Georgia, con amor ¿Está alguien intentando espiar a Georgia?

Upload: yolanda-ruiz-hervas

Post on 22-Apr-2015

4.815 views

Category:

Technology


1 download

DESCRIPTION

A comienzos de año, los investigadores de ESET descubrieron una botnet. Nada nuevo; aunque últimamente las botnets no son demasiado relevantes ni noticiosas desde un punto de vista técnico, si se trata de una que tiene como objetivo al Gobierno de un país (en este caso Georgia) y tiene algunas características curiosas acerca de la interceptación de las comunicaciones, el tema puede variar.

TRANSCRIPT

Page 1: Análisis técnico de win32 georbot

Fernando de la Cuadra, director de Educación ([email protected])

Josep Albors, director de Comunicación ([email protected])

Nuevos ESET Smart Security 5 y

ESET NOD32 Antivirus 5

Desde Georgia, con amor

¿Está alguien intentando espiar a Georgia?

Page 2: Análisis técnico de win32 georbot

Win32/Georbot

A principios de año, nuestros investigadores recibieron

un nuevo ejemplar de malware que les llamó la

atención. Uno de nuestros analistas se dio cuenta de

que el este ejemplar se comunicaba con un dominio

perteneciente al Gobierno de Georgia* para

actualizarse.

Tras un análisis, nos dimos cuenta que este malware

era un troyano diseñado para robar información

específica de ciudadanos de Georgia. Igualmente,

tuvimos acceso al panel de control de la amenaza, y

descubrimos el alcance y la intención de esta

operación.

En este documento os dejamos toda la información

acerca de esta operación. Es importante destacar que

tanto la Agencia de Intercambio de Datos del

Ministerio de Justicia de Georgia así como su CERT

nacional estaban al corriente de la situación desde

2011 y que han cooperado con ESET en esta

investigación.

Resumen

El malware, denominado Win32/Georbot, tiene las siguientes

funcionalidades diseñadas para robar información de un

sistema infectado:

• Envía cualquier fichero desde el disco duro local a un

servidor remoto.

• Roba certificados.

• Busca en el disco duro documentos Word.

• Busca en el disco duro ficheros de configuración del

escritorio remoto.

• Realiza capturas de pantalla.

• Graba audio usando el micrófono.

• Graba vídeo utilizando la webcam.

• Analiza la red local para identificar ordenadores en la

misma red.

• Ejecuta comandos arbitrarios en el sistema infectado.

Los comandos se activan de forma manual enviando las

órdenes individualmente a cada ordenador infectado, en vez

de lanzar comandos a toda la red de forma general.

*Georgia el país, no el estado. Ver https://www.cia.gov/library/publications/the-world-factbook/geos/gg.html para más información

Page 3: Análisis técnico de win32 georbot

Win32/Georbot

Vector de instalación

En el dominio .gov.ge también encontramos un iframe apuntando a un servidor

hospedado en la República Checa. El servidor no respondió cuando intentamos

obtener el fichero, sin embargo encontramos otra URL con el mismo patrón en

otro servidor utilizado como C&C por Georbot. El fichero contenía un javascript

ofuscado que llamaba a un iframe en otro dominio, legalcrf.in. Mientras que el

servidor se encontraba de nuevo inactivo, el servicio de navegación segura de

Google indicaba que este dominio había servido exploits en el pasado, así que

puede decirse que este había sido el principal vector de instalación del malware.

En algunas variantes hemos encontrado que el ejemplar revisaba con el sistema

determinadas zonas horarias. Antes de instalarse, el bot analizaba si el

ordenador estaba situado en las zonas UTC+3 o UTC+4. Solo los ordenadores

situados en dichas coordenadas eran infectados. La siguiente imagen muestra

los países situados en dichas franjas horarias. Esta revisión previa a la

instalación se ha eliminado en las versiones más actuales del bot que hemos

analizado.

Page 4: Análisis técnico de win32 georbot

Win32/Georbot

Ofuscación

Las familias de malware más modernas utilizan packers hechos a medida para

evitar ser detectados por los productos de seguridad. En este caso, el autor o

autores de Win32/Georbot ofuscaron el malware ellos mismos. Y aunque la

técnica de evasión es rudimentaria, el malware ha sido capaz de evitar ser

detectado por algunos motores antivirus durante un período de tiempo.

Ofuscación de la información

Para ocultar cadenas como URL, direcciones IP y librerías DLL, Win32/Georbot

utiliza una clave única localizada justo después de la sección que contiene la

información ofuscada. Cuando el malware se ejecuta, descifra toda la sección de

una vez. La función de descifrado realiza una simple resta en cada byte.

Llamadas al API ofuscadas

Las llamadas al API de Windows también están ocultas en el ejecutable. Antes

de cada llamada al API, una función llamada hashedCall() toma como argumento

el nombre de la DLL y un hash calculado a partir del nombre de la función

hashedCall() carga la librería, calculando el hash para cada función exportada y

devolviendo un puntero donde se localiza la correspondiente función API.

Tabla !: la rutina hashedCall()

De esta manera, Win32/Georbot esconde las funciones del API que está

utilizando porque el binario solo incluye los hashes. Al generar una tabla de

hashes de todas las funciones exportadas de los nombres de las DLL

encontradas en el binario (después de descifrar la información), hemos podido

identificar las llamadas.

Page 5: Análisis técnico de win32 georbot

Win32/Georbot

Ofuscación del flujo

Para engañar a los análisis estáticos, Win32/Georbot ofusca también la

secuencia de instrucciones. Coloca instrucciones de retorno en el medio de las

funciones. Los compiladores utilizan esta instrucción solo al final de la función,

por lo tanto, la mayoría de los desensambladores estáticos pensarán que es el

final de la función en la sentencia retn. La instrucción retn coge la dirección de la

pila y la sitúa en el EIP. Win32/Georbot realiza esta acción para ofuscar las

instrucciones jmp.

Otra técnica utilizada por Win32/Georbot es la ofuscación de las instrucciones de

llamada. Una instrucción de llamada hace dos cosas: fuerza el paso a la

siguiente instrucción en la pila y entonces salta a la dirección suministrada. El

malware realiza frecuentes llamadas con dos instrucciones equivalentes en su

lugar. Un compilador nunca lo haría. Por ejemplo:

es equivalente a:

Estos dos controles de ofuscación del flujo se utilizan a veces a la vez. Aquí

encontramos la sentencia push;retn entrelazada con un corto jmp.

La siguiente imagen muestra el efecto de arreglar el control de flujo convirtiendo

las secuencias de instrucciones a su homólogo original.

Page 6: Análisis técnico de win32 georbot

Win32/Georbot

Automatizando el descifrado de estas tres técnicas es mucho más fácil entender

el comportamiento del malware: Historial de versiones

Este bot reporta su número de versión al servidor C&C cuando se conecta a él, lo

que nos ha ayudado a reconstruir la historia del malware. La siguiente lista

muestra el historial de versiones que nos ha permitido averiguar cuándo ha sido

lanzado cada ejemplar.

Septiembre 2010 Sin número de versión

Febrero 2011 2.4.1

Abril 2011 3.3

Julio 2011 4.1

Enero 2012 5.2, 5.3, 5.4

Febrero 2012 5.5

Page 7: Análisis técnico de win32 georbot

Win32/Georbot

Comandos del bot

En la última versión, el bot puede recibir hasta 19 comandos diferentes. La

técnica de ofuscación del API también se utiliza para los nombres de comando

en el ejecutable, pero sorprendentemente los comandos son envíados en texto

plano por el servidor C&C. Como no hemos visto todos los nombres de

comandos en las trazas de red, hemos obtenido el resto extrayendo los hashes

del ejecutable y utilizando la fuerza bruta con un diccionario.

find [PATTERN] Busca nombres de ficheros que contengan el patrón

dir [FOLDER] Lista el directorio de una carpeta

load [URL] Descarga el ejecutable específico y lo añade al autorun

Upload [PATH] Sube el fichero específico al C&C

upload_dir [FOLDER] Sube el contenido de una carpeta al C&C

main Lista los directorios y los envía al C&C

list [FOLDER] Lista los ficheros de una carpeta

ddos [domain] Arranca un ataque DDoS contra un dominio

scan Devuelve una lista de todos los nombres de dominios de

una red local

word [KEYWORDS] Busca documentos de Word que contengan una de las

palabras clave

system Envía las letras de las unidades de disco al C&C

dump Envia el contenido de carpetas y subcarpetas al C&C

photo Captura pantallazos del escritorio

audio Captura audio del micrófono

rdp Roba configuraciones RDP (.rdp)

video Captura vídeo de una webcam

passwords Roba passwords del navegador (Internet Explorer,Opera)

history Roba el historial del navegador (Internet Explorer,Opera)

screenshot Captura un pantallazo y lo envía al C&C.

Page 8: Análisis técnico de win32 georbot

Win32/Georbot

Comunicación con el centro de mando y control

Protocolo de comunicación

Win32/Georbot utiliza HTTP (HyperText Transfer Protocol) para comunicarse con

su centro de mando y control (C&C). A lo largo del tiempo, algunos centros de

control han sido utilizados en diferentes países, como en Alemania, República

Checa y Estados Unidos. Para reportar al servidor central y pedir instrucciones, el

bot utiliza una petición HTTP GET cada minuto con los siguientes parámetros:

ver la versión del bot

cam averigua si el sistema infectado tiene una camara

p un identificador del bot. Todas las variantes que hemos

analizado utilizan la cadena “bot123”

id Un identificador único usado para diferenciar entre bots. Se

forma a partir del número de serie del primer disco duro.

Por ejemplo:

Después de recibir la consulta, el servidor central responde con contenido en

HTML (HyperText Markup Language) como el siguiente:

En este ejemplo, el botmaster ordena al bot capturar un pantallazo y subirlo al

servidor central.

Mecanismo de actualización

Win32/Georbot se conecta regularmente con su servidor central para buscar la última

versión del ejecutable del bot. Estas conexiones también se realizan utilizando

HTTP. El servidor devuelve un binario, coficiado en base64, embebido en una página

HTML. Hemos identificado más de mil actualizaciones, las más antiguas de

Septiembre de 2010. El bot se actualiza cada par de días, y algunas veces introduce

nuevas funcionalidades, pero en la mayoría de los casos simplemente son

mecanismos para evadir la detección antivirus.

Mecanismos alternativos

Si un sistema infectado es incapaz de conectarse al servidor central, vuelve a lanzar

sus consultas pero a una página alojada en un dominio del Gobierno de Georgia. Ha

sido precisamente este dominio alternativo lo que nos llamó la atención y el origen de

la investigación.

Page 9: Análisis técnico de win32 georbot

Win32/Georbot

Figura 2: Mecanismo alternativo utilizado por Win32/Georbot

En primer lugar, el malware intenta alcanzar el centro de control mediante el

comando que contiene su binario. Si el centro de mando y control no responde,

Georbot busca un documento alojado en el website del Gobierno de Georgia.

Seguidamente, lleva a cabo un análisis buscando el marcador ‘||||’. Si está

presente, este marcador oculta la dirección IP del centro de control o servidor

central.

A partir de aquí, Georbot continúa con sus operaciones normales utilizando la

dirección IP obtenida como servidor central.

Page 10: Análisis técnico de win32 georbot

Win32/Georbot

Interfaz de control y hosts objetivo

Hemos tenido acceso al panel de control de la botnet, que nos ha suministrado

información detallada de la operación y detalles de los motivos de los

cibercriminales. El panel contiene unos doscientos hosts infectados.

Tabla 2: Panel de control de Georbot.

De todos los hosts infectados, el 70% están localizados en Georgia, seguidos de

Estados Unidos, Alemania y Rusia. El panel web también tiene una funcionalidad

que permite el marcado de host interesantes. Seis hosts habían sido marcados

cuando accedimos al panel: tres en Georgia, uno en Rusia, uno en Suecia y otro

más en China.

El panel de control también contiene el historial de los comandos enviados a los

bots. Mientras que la funcionalidad de grabación de vídeo vía webcam, la captura de

pantallazos o lanzar ataques DDoS se ha usado un par de veces, la mayoría de los

comandos eran para obtener listados de directorios, para realizar búsquedas y para

descargar ficheros y analizar la red. Sobre todo, la información más interesante que

hemos podido recopilar del panel ha sido la lista de palabras clave utilizada para

buscar documentos. Las siguientes listas han sido utilizadas para encontrar

documentos que contenían al menos una de las palabras, sin dejar lugar a dudas

sobre la intención de los operadores de esta botnet.

País Porcentaje de infecciones

Georgia 70,45%

Estados Unidos 5,07%

Alemania 3,88%

Rusia 3,58%

Canadá 1,49%

Ucrania 1,49%

Francia 1,19%

Otros 12,83%

Page 11: Análisis técnico de win32 georbot

Win32/Georbot

Todos los documentos descargados habían sido borrados del servidor, por lo que

no podemos afirmar si la búsqueda fue exitosa o no.

Conclusión

Las características de Win32/Georbot indica que ha sido creado para recopilar

información de los ordenadores infectados. Esta amenaza tiene todas las

capacidades necesarias para infectar y robar información. El hecho de que

utilicen una dirección web de Georgia para actualizar sus comandos y la

información de control, y que probablemente utiliza el mismo dominio para

difundirse parece indicar que los ciudadanos de Georgia son su principal

objetivo. Por otro lado, el nivel de sofisticación de esta amenaza es bajo.

Pensamos que si esta operación hubiera sido promovida por un estado,

hubiese sido más profesional y sigilosa.

La hipótesis quizá más acertada es que Win32/Georbot ha sido creado por un

grupo de cibercriminales que intentaban acceder a información sensible para

venderla a otras organizaciones. Deben operar desde Georgia y han sido

afortunados al conseguir controlar el dominio del gobierno, utilizándolo como

parte de su operación.

El desarrollo de este malware continúa: hemos encontrado nuevas variantes

distribuyéndose. La más reciente, del 8 de marzo. Así que seguimos

investigando.

Page 12: Análisis técnico de win32 georbot

Win32/Georbot

Anexo: hashes MD5 analizados

Para otros investigadores interesados en investigar este malware, esta es la lista

de hashes de ficheros que hemos visto en la familia de malware Win32/Georbot.

Están listados en orden cronológico.