Buscar este blog

viernes, 22 de febrero de 2013

Flame: Bunny, Frog, Munch y BeetleJuice…


Como ya hemos mencionado en la anterior entrada de este blog sobre Flame, el volumen de su código y su funcionalidad es tan grande que llevaría meses analizarlo por completo.
Pretendemos publicar de forma continua los detalles más importantes y más interesantes de su funcionalidad a medida que los vayamos descubriendo.
Ahora estamos recibiendo muchas consultas sobre cómo verificar que los sistemas estén libres de la infección Flame. Por supuesto que para nosotros la respuesta más sencilla es aconsejar el uso de Kaspersky Antivirus o Kaspersky Internet Security. Hemos logrado detectar y eliminar todas las posibles modificaciones del módulo principal y de los componentes adicionales de Flame.
Sin embargo, para quienes quieran realizar una verificación detallada de forma personal, al final de este artículo les daremos las recomendaciones necesarias.

MSSECMGR.OCX

El principal módulo de Flame es un archivo DLL llamado mssecmgr.ocx. Hemos descubierto dos modificaciones en este módulo. La mayoría de los ordenadores infectados contienen su versión “grande”, de 6 Mb, e incluye e instala módulos adicionales. La versión más pequeña tiene un tamaño de apenas 900 Kb y no contiene módulos adicionales. Después de la instalación, el módulo pequeño se conecta con uno de los servidores de comando y control y procede a descargar e instalar desde ahí los demás componentes.
Mssecmgr puede aparecer con distintos nombres en los equipos infectados, según el método de infección y el estado interno vigente del programa malicioso (instalación, replicación, actualización), por ejemplo: wavsup3.drv, ~zff042.ocx, msdclr64.ocx, etc.
En próximas entradas de este blog publicaremos un análisis completo del módulo mssecmgr.

La primera activación de este archivo se inicia con una de las características externas, ya sea mediante las herramientas Windows WMI con un archivo MOF si es que se está usando el exploit MS10-061, o un archivo BAT:
s1 = new ActiveXObject("Wscript.Shell");


s1.Run("%SYSTEMROOT%\\system32\\rundll32.exe msdclr64.ocx,DDEnumCallback");


(codigo fuente del archivo MOF, svchostevt.mof)


Cuando se activa, mssecmgr se registra como un paquete de autenticacion en el registro de Windows:
HKLM_SYSTEM\CurrentControlSet\Control\Lsa

Authentication Packages mssecmgr.ocx [anadido a las entradas existentes]



A continuacion tenemos un breve resumen de las unidades existentes. Los nombres se extrajeron desde el binario y desde el recurso 146.



BeetlejuiceBluetooth: enumera los dispositivos que hay cerca del ordenador infectado.
Puede convertirse en una baliza. Muestra el ordenador como un dispositivo detectable y codifica el estado del programa malicioso en la informacion del dispositivo mediante base64.
MicrobeGraba audio desde recursos existentes de hardware. Enumera todos los dispositivos multimedia, guarda la configuracion completa de los dispositivos, intenta seleccionar el dispositivo de grabacion mas apropiado.
InfectmediaSelecciona uno de los metodos para infectar los dispositivos, como los discos USB. Metodos disponibles: Autorun_infector, Euphoria.
Autorun_infectorCrea “autorun.inf” que contiene el programa malicioso y comienza con un comando especial “open”. Stuxnet usaba el mismo metodo antes del exploit LNK.
EuphoriaCrea un directorio “punto de empalme” con “desktop.ini” y “target.lnk” desde las entradas LINK 1 y LINK 2 del recurso 146 (no se encontraban en el archivo recurso). El directorio actua como un atajo para ejecutar Flame.
LimboCrea cuentas puerta trasera cuyo login es “HelpAssistant” en los ordenadores en la red del dominio si se cuenta con las autorizaciones apropiada.
FrogInfecta ordenadores mediante cuentas predeterminadas de usuario. La unica cuenta de usuario especificada en el recurso de configuracion es “HelpAssistant” que se crea mediante el ataque “Limbo”.
MunchServidor HTTP que responde a peticiones “/view.php” y “/wpad.dat”.
SnackEscucha las interfaces de la red, recibe y guarda paquetes NBNS en un archivo de registro. Cuenta con una opcion para comenzar solo cuando comienza "Munch". Entonces, los datos recopilados se usan para replicaciones en la red.
Boot_dll_loaderSeccion de la configuracion que contiene la lista de todos los modulos adicionales que deben cargarse y ejecutarse.
WeaselCrea un listado de directorio del ordenador infectado.
BoostCrea una lista de archivos "interesantes" usando varias mascaras para los nombres de archivo.
TelemetryFacilitador de registros log
GatorCuando una conexion a Internet esta disponible, se conecta con los servidores de comando y control, descarga nuevos modulos, y carga los datos recogidos (data./td>).
SecurityIdentifica los programas que pueden ser peligrosos para Flame, como las soluciones antivirus y los cortafuegos.
Bunny
Dbquery
Driller
Headache
Gadget
Por el momento se desconoce el proposito de estos modulos..


Los modulos adicionales se instalan en el directorio %windir%\system32\:

mssecmgr.ocx

advnetcfg.ocx

msglu32.ocx

nteps32.ocx

soapr32.ocx

ccalc32.sys

boot32drv.sys

Modulos adicionales que se descargan desde los servidores de comando y control se instalan en el mismo directorio.

Los modulos de Flame producen varios archivos de datos que contienen extensos registros de ejecucion, ademas de la informacion recolectada: capturas de pantalla, listas de procesos, listas de hardware, etc.
Los archivos se guardan en el directorio %windir%\temp bajo estos nombres:



~DEB93D.tmp

~8C5FF6C.tmp

~DF05AC8.tmp

~DFD85D3.tmp

~DFL*.tmp

~dra*.tmp

~fghz.tmp

~HLV*.tmp

~KWI988.tmp

~KWI989.tmp

~rei524.tmp

~rei525.tmp

~rf288.tmp

~rft374.tmp

~TFL848.tmp

~TFL849.tmp

~mso2a0.tmp

~mso2a1.tmp

~mso2a2.tmp

sstab*.dat

Tambien existen archivos opcionales en el directorio %windir%\system32:


Advpck.dat

ntaps.dat

Rpcnc.dat

Tambien en %windir%\:

Ef_trace.log
Flame guarda sus objetos persistentes en archivos con diferentes formatos. Todos los objetos estan codificados con diferentes algoritmos y llaves. Algunos archivos son bases de datos que se crearon mediante una biblioteca SQLite3 incorporada. Los contenidos de estas bases de datos provienen de informacion robada y de rutinas de replicacion. En posteriores publicaciones en este post ofreceremos mas informacion sobre estos archivos.
Los nombres de directorio que usan los componentes adicionales de Flame pueden variar ligeramente segun el tipo de instalacion y las opciones de configuracion desde el recurso 146:


C:\Program Files\Common Files\Microsoft Shared\MSSecurityMgr

C:\Program Files\Common Files\Microsoft Shared\MSAudio

C:\Program Files\Common Files\Microsoft Shared\MSAuthCtrl

C:\Program Files\Common Files\Microsoft Shared\MSAPackages

C:\Program Files\Common Files\Microsoft Shared\MSSndMix

Estos directorios pueden contener los siguientes archivos:


dstrlog.dat

lmcache.dat

mscrypt.dat (or wpgfilter.dat)

ntcache.dat

rccache.dat (or audfilter.dat)

ssitable (or audache)

secindex.dat

wavesup3.drv (una copia del modulo principal,mssecmgr.ocx, en el directorio MSAudio)

Flame tambien puede producir o descargar archivos con los siguientes nombres:


svchost1ex.mof

Svchostevt.mof

frog.bat

netcfgi.ocx

authpack.ocx

~a29.tmp

rdcvlt32.exe

to961.tmp

authcfg.dat

Wpab32.bat

ctrllist.dat

winrt32.ocx

winrt32.dll

scsec32.exe

grb9m2.bat

winconf32.ocx

watchxb.sys

sdclt32.exe

scaud32.exe

pcldrvx.ocx

mssvc32.ocx

mssui.drv

modevga.com

indsvc32.ocx

comspol32.ocx

comspol32.dll

browse32.ocx

En consecuencia, podemos ofrecer un metodo para una rapida verificacion “manual” de vuestros sistemas en busca de una infeccion Flame:
1. Buscad el archivo ~DEB93D.tmp. Su presencia en el sistema significa que ha sido o esta infectado con Flame.

2. Revisad los paquetes de autentificacion de Registry Key HKLM_SYSTEM\CurrentControlSet\Control\Lsa\. 
Si encontrais mssecmgr.ocx o authpack.ocx, significa que el sistema esta infectado con Flame.
3. Verificad la presencia de los siguientes catalogos. Si estan presentes, el sistema esta infectado:
C:\Program Files\Common Files\Microsoft Shared\MSSecurityMgr 
C:\Program Files\Common Files\Microsoft Shared\MSAudio 
C:\Program Files\Common Files\Microsoft Shared\MSAuthCtrl 
C:\Program Files\Common Files\Microsoft Shared\MSSndMix
4. Buscad el resto de los nombres de archivos mencionados arriba. Todos ellos son bastante unicos y descubrirlos significaria que es muy posible que el sistema este infectado con Flame.

P.D. Hemos revisado la informacion sugerida por los comentarios en nuestro blog respecto a una posible relacion con elsoftware FLAME de Brasil (Flexible Lightweight Active Measurement Environment).
Curiosamente, el nombre que hemos elegido coincide plenamente con este software, que tambien usa LUA para implementar su logica de negocios. El software FLAME se usa para medir las caracteristicas de redes implementando agentes de medicion y recopilando datos en una base de datos central. A pesar de algunas similitudes, pensamos que este software no tiene nada que ver ya que persigue distintos objetivos. Ademas del motor LUA, el nucleo de la comunicacion en FLAME es el protocolo XMPP, que no usa el programa malicioso Flame.
Los autores pueden haberse inspirado en el proyecto FLAME y reimplementado una arquitectura similar, sólo para un objetivo distinto, o todo esto no es más que una coincidencia. No tenemos razón alguna para pensar que esto tenga que ver con el programa malicioso Flame.


Fuente: Viruslist

No hay comentarios:

Publicar un comentario