Análisis Forense de una Infección por Malware – PARTE I

Incluso en el periodo estival cuando las personas normales tienen vacaciones, surgen incidentes de seguridad. Este es el caso de un conocido, quien muy amablemente ha prestado su ordenador para someterlo a una adquisición y posterior análisis, para investigar un posible comportamiento algo extraño por el cual se manifestaban reinicios, lentitud de red y la aparición de carpetas por duplicado en la carpeta de “Mis Documentos”.  Estos síntomas se empezaron a detectar aproximadamente en la segunda semana de Agosto poco después de haber insertado un USB que le habían proporcionado. Dado que en el momento de la intervención ya no disponíamos del dispositivo USB, realizamos un primer análisis del sistema de ficheros NTFS y de artefactos de Windows.

Según experiencias anteriores, se sospechó de una infección por malware ya que los comportamientos anómalos se empiezan a manifestar después de la inserción del dispositivo USB. Por ello, el primer paso realizado ha sido la extracción de ficheros log (setupapi.log) con la finalidad de identificar el instante en que el equipo podría haber sido infectado. Tras un análisis de dicho fichero, podemos extraer el siguiente fragmento:


[2010/08/14 16:55:02 1004.7 Driver Install]
#-019 Buscando Id. de hardware: usbstor\diskkingstondatatraveler_2.0pmap,usbstor\diskkingstondatatraveler_2.0,usbstor\diskkingston,usbstor\kingstondatatraveler_2.0p,kingstondatatraveler_2.0p,usbstor\gendisk,gendisk#-018 Buscando Id. compatibles: usbstor\disk,usbstor\raw
#-198 Línea de comando procesada: C:\WINDOWS\system32\services.exe
#I022 Encontrado "GenDisk" en C:\WINDOWS\inf\disk.inf; Dispositivo: "Unidad de disco"; Controlador: "Unidad de disco"; Proveedor: "Microsoft"; Fab: "(Unidades de disco estándar)"; Nombre de sección:"disk_install".
#I060 Se ha establecido el controlador seleccionado.
#I058 Se ha seleccionado el mejor controlador compatible.
#I124 Realizando instalación sólo de copia de "USBSTOR\DISK&VEN_KINGSTON&PROD_DATATRAVELER_2.0&REV_PMAP\5B7A048FC0DF&0".#I123 Realizando instalación completa de "USBSTOR\DISK&VEN_KINGSTON&PROD_DATATRAVELER_2.0&REV_PMAP\5B7A048FC0DF&0".#W100 La retirada de la petición durante la instalación de "USBSTOR\DISK&VEN_KINGSTON&PROD_DATATRAVELER_2.0&REV_PMAP\5B7A048FC0DF&0" fue vetada por "STORAGE\RemovableMedia\7&221239e4&0&RM" (tipo de veto 6 PNP_VetoDevice)#W104 El dispositivo "USBSTOR\DISK&VEN_KINGSTON&PROD_DATATRAVELER_2.0&REV_PMAP\5B7A048FC0DF&0" necesita reiniciarse: error al eliminar consulta (instalar) CfgMgr32 devuelto: 0x17. CR_REMOVE_VETOED#I121 La instalación del dispositivo de "USBSTOR\DISK&VEN_KINGSTON&PROD_DATATRAVELER_2.0&REV_PMAP\5B7A048FC0DF&0" terminó correctamente.
<div>

Como vemos el día 14 de Agosto de 2010 a las 16:55:02 se inicia la instalación de los drivers de un dispositivo Kingston en el Sistema. Dicho dispositivo quedará registrado e identificado unívocamente por el identificador 5B7A048FC0DF. Con el objetivo de confirmar la veracidad del fichero de log analizado, se ha comprobado el hive “system” del registro de Windows mediante la herramienta regripper, extrayendo la siguiente información:

Disk&Ven_Kingston&Prod_DataTraveler_2.0&Rev_PMAP [Sat Aug 14 14:55:02 2010]
S/N: 5B7A048FC0DF&0 [Sun Aug 15 13:18:23 2010]
FriendlyName  : Kingston DataTraveler 2.0 USB Device
ParentIdPrefix: 7&221239e4&0

El registro de Windows almacena información acerca de los dispositivos USB conectados en el equipo en la clave ControlSet001\Enum\USBStor y mediante su propiedad “LastWrite time” podemos obtener la fecha de instalación del driver y la última vez que el dispositivo fue conectado en el equipo. Para el ejemplo anterior, podemos confirmar que el driver fue instalado el 14 de Agosto de 2010 a las 16:55h y además, el dispositivo fue conectado por última vez el 15 de Agosto.

De modo que ahora ya tenemos una referencia de tiempo para nuestro análisis temporal del sistema de ficheros (timeline) que comprenderá las fechas desde el 14 de Agosto hasta la fecha de adquisición (21 Agosto).

Para proceder a la realización del timeline, nos remetemos a la herramienta sleuthkit, concretamente a ils, fls y mactime y un poco de bash scripting, los cuales nos permiten obtener una traza de los instantes de Modificación, Acceso y Creación de todos y cada uno de los ficheros del sistema:

image=$1
offset=$2
fls -r -lp -u -d -f  ntfs -m  / -o  $fsoffset $image > flsfile.txt
ils -A -a -m -f  ntfs -o  $fsoffset $image > ilsfile.txt

cat flsfile.txt ilsfile.txt > mactimefile.body
mactime -d -b mactimefile > timeline_delimited_file.txt

Si al resultado obtenido lo analizamos y filtramos por la fecha que nos interesa observamos lo siguiente:

Como se ve en la imagen anterior coincidiendo con el instante de la instalación del USB Kingston, se crean/modifican o incluso se acceden (lo que implica una ejecución) ciertos ficheros altamente sospechosos:

  • Se crean ficheros ejecutables en la carpeta que almacena los puntos de restauración del sistema operativo.
  • Se crean ficheros “Prefetch”, los cuales indican la ejecución de software como AT.EXE y SERVICES.EXE
  • Se crea un directorio llamado “Bron.tok-14-14″ en el directorio “Datos de programa” bajo el perfil del usuario.
  • Se modifica el fichero de hosts “/etc/Hosts” del equipo
  • Se crea un fichero en la carpeta de “Datos de programa” llamado ListHost14.txt
  • Además, se observa la creación de un acceso directo (.lnk) en la carpeta de actividad reciente del usuario,  lo cual indica que el usuario aparente podría haber ejecutado el link. Una gran cantidad de malware utiliza la técnica de utilizar accesos directos fraudulentos o “Fakes” para engañar al usuario con el objetivo de autoejecutarse.

Es una práctica habitual en el malware buscar directorios dónde esconderse, como por ejemplo “System Volume Information” el cual tan solo el usuario SYSTEM tiene permisos sobre él. Sin embargo, Windows permite a la funcionalidad de “Tareas Programas” ejecutar software con privilegios de SYSTEM. Lo cual es altamente curioso que en los Prefetch del sistema operativo veamos que AT.EXE (Programador de Tareas desde la línea de comando) entra en ejecución…

Si seguimos avanzando en el timeline encontramos…

Que se ha creado una carpeta llamada “Loc.Mail.Bron.Tok” la cual contiene centenares de correos electrónicos almacenados en ficheros independientes bajo la nomenclatura: email.ini y que contienen las siguientes líneas:

Brontok.A
By: HVM31
– JowoBot #VM Community –

Todo parece indicar que estábamos en lo cierto y que el equipo se había infectado con un software malicioso, aparentemente localizado en el sistema como A0029519.exe con un tamaño de 42579 bytes y un hash sha1 22566f4de9d1f789314c0e67fcdc4f2d4778308d, el cual se analizará detenidamente en posts posteriores.

Dado que el equipo disponía de otra partición de datos, se ha realizado el mismo proceso de análisis sobre la partición de datos, en la cual se alberga la carpeta “Mis documentos” del usuario. Como se observa, entorno a la hora de infección, se producen ciertos cambios en todos los directorios situados bajo la carpeta de “Mis documentos”.

Hecho que contrasta, ya que en fecha de 20 de Agosto, se observa como en cada una de las subcarpetas de dicho directorio aparecen accesos a ficheros del tipo Mis documentos\Mis documentos.exe los cuales son aparentemente copias del especimen localizado.

Con el objetivo de localizar todas las copias del ejecutable dentro del sistema de ficheros, se ha creado un pequeño script en bash que a partir de los datos del timeline extrae y calcula el hash de todos los ficheros .exe del sistema.


#!/bin/bash
image=$1
for x in ` timeline_delimited_file.txt | grep "Aug " | grep "2010" | grep "\.exe" | cut -d ',' -f 7,8 | sed -e 's/ /--/g'|sort | uniq`; do

inodo=`echo $x | cut -d ',' -f 1`
hash=`icat -o 63 $image $inodo | sha1sum | cut -d ' ' -f 1`
y=`echo $x | sed -e 's/--/ /g'`
echo "$y,$hash" >> hash_ejecutables_sistema.txt
done

Si a los resultados obtenidos buscamos por el valor del hash anteriormente citado, obtenemos:

Todos los ficheros presentes en este listado, son copias realizadas por el malware con el objetivo de permanecer en el equipo. Como se observa, se duplica numerosamente en directorios de puntos de restauración del sistema , en el directorio Windows e incluso en la carpeta de “Datos de programa”. Todas las copias se efectúan siempre con nombres diferentes aunque como se observa en la imágen, el hash de cada uno de los ficheros es exactamente el mismo, indicando que es un duplicado exacto.

Las principales conclusiones que podemos obtener de esta primera iteración de análisis del sistema de ficheros son:

  • Aparentemente, el equipo ha sido infectado por el malware Brontok.A, el cual realiza múltiples copias de sí mismo dentro del sistema de ficheros.
  • La única técnica de ocultación detectada hasta ahora ha sido el hecho de copiar los ejecutables en el directorio “System Volume Information”, el cual tan solo SYSTEM tiene permisos de acceso y modificación.
  • El malware juega con la “Ingeniería Social” para que el usuario consulte un enlace que realmente no es lo que el usuario espera ejecutar, infectando de éste modo el equipo. Para ello, utiliza enlaces lnk y renombra los ejecutables copiados en las subcarpetas de “Mis documentos” al mismo valor que el de la carpeta contenedora.
  • Una de las acciones principales que efectúa el especimen es aparentemente, el envío de spam a cuentas de correo robadas y almacenadas en el mismo sistema de ficheros del equipo infectado.

Para disponer de un mayor conocimiento sobre el malware, en los siguientes post, realizaremos un análisis más detallado de los artefactos de windows, como son el registro, los ficheros de Prefetch, las tareas programadas, etc. y acabaremos realizando un análisis dinámico del ejecutable.

Un saludo !

ControlSet001\Enum\USBStorControlSet001\Enum\USBStor

Comments

  1. jose navarro
    2010/09/01 - 5:46 AM

    interesante artículo! ojo que se os han escapado (doble sentido aquí :) ) los signos > en las líneas de comando

    Saludos

    • ramon.vicens@blueliv.com
      2010/09/01 - 10:32 AM

      Gracias Jose por tu comentario, es tema del gestor de contenidos.

      Lo tendremos en cuenta.

      Saludos,

    • ramon.vicens@blueliv.com
      2010/09/01 - 10:38 AM

      Por cierto ! acabo de ver que si le clickas al botón “view source” se ver correctamente el código !

      Saludos!

Leave a Reply

Your email address will not be published / Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

Current ye@r *