Mastiff automatizando el análisis de malware

Hoy en día con la cantidad de malware que sale, es imposible poder analizar todas las muestras. Solamente analizando las muestras que desinteresadamente investigadores colocan para que te las puedas bajar de forma pública es complicado estar al día, Mastiff automatizando el análisis de malware nos ayudara en el análisis masivo de muestras.

Si a eso le sumas, el echo de tener sensores por ahí montados para analizar mas malware se te hace un trabajo bastante tedioso. Dependiendo de a la finalidad  a la que te dediques el ámbito con el que se abordará esta ardua tarea será una y otra.

Table

Mastiff automatizando el análisis de malware en Remnux

Antes de empezar a jugar con él os voy a pedir que lo uséis en la distribución Remnux, puesto que ya viene instalado. Una vez que tengáis la distribución bajada deberemos primero de actualizar el script de Mastiff.

Para ello hacemos:

<pre>wget http://remnux.org/mastiff-upgrade.zip
unzip mastiff-upgrade.zip
cd mastiff-upgrade
sudo ./upgrade_mastiff.sh
cd ..
rm -rf mastiff-upgrade mastiff-upgrade.zip</pre>

El output que deberíamos de recibir por consola es:


root@remnux:~/mastiff-upgrade# ./upgrade_mastiff.sh

Removing old version of MASTIFF

Done

Installing pydeep

pydeep install successful.
Done

Installing MASTIFF 0.6.0

Testing installation.
Checking Python imports in /root/mastiff-upgrade/mastiff-0.6.0 and below.
Done checking imports.

Checking for MASTIFF functionality.

Testing EXE: Success.
Testing Office: Success.
Testing PDF: Success.
Testing ZIP: Success.

Done checking MASTIFF functionality.
Installing.
mastiff install successful.
Copying plugins.
Copying configuration file to /usr/local/etc
Done

Complete. You can run mastiff using:
mas.py -c /usr/local/etc/mastiff.conf [YOUR FILE]

Sencillo ¿verdad?

Visualizar fichero de configuración

Ahora lo que haremos será echar un vistazo al fichero de configuración:

Mastiff automatizando el análisis de malware

Colocamos la API key y ya podemos usar Mastiff

Ejecutamos Mastiff y vamos a ver el output que genera:


root@remnux:/home/remnux# mas.py -c /usr/local/etc/mastiff.conf /media/sf_Downloads/malware/

[2013-11-18 12:57:30,824] [WARNING] [Mastiff] : You are running MASTIFF as ROOT! This may be DANGEROUS!

[2013-11-18 12:57:30,891] [INFO] [Mastiff] : Adding directory /media/sf_Downloads/malware/ to queue.

[2013-11-18 12:57:30,909] [INFO] [Mastiff.analyze] : Starting analysis on /media/sf_Downloads/malware/0bde4b8e18ea2ee8ad0166fac82d6eaf

[2013-11-18 12:57:30,967] [INFO] [Mastiff.Init_File] : Analyzing /media/sf_Downloads/malware/0bde4b8e18ea2ee8ad0166fac82d6eaf.

[2013-11-18 12:57:30,967] [INFO] [Mastiff.Init_File] : Log Directory: /var/log/mastiff/0bde4b8e18ea2ee8ad0166fac82d6eaf

[2013-11-18 12:57:31,079] [INFO] [Mastiff.DB.Insert] : Adding ['ZIP', 'Generic']

[2013-11-18 12:57:31,081] [INFO] [Mastiff.Analysis] : File categories are ['ZIP', 'Generic'].

[2013-11-18 12:57:31,082] [INFO] [Mastiff.Plugins.ZipExtract] : Starting execution.

[2013-11-18 12:57:31,085] [INFO] [Mastiff.Plugins.ZipExtract] : Password "infected" will be used for this zip.

[2013-11-18 12:57:31,086] [INFO] [Mastiff.Plugins.ZipExtract] : Extracting efax_9057733019_pdf.scr.

[2013-11-18 12:57:31,093] [INFO] [Mastiff.Plugins.ZipExtract] : Adding efax_9057733019_pdf.scr to queue.

[2013-11-18 12:57:31,095] [INFO] [Mastiff.Plugins.ZipInfo] : Starting execution.

[2013-11-18 12:57:31,099] [INFO] [Mastiff.Plugins.Fuzzy Hashing] : Starting execution.

[2013-11-18 12:57:31,099] [INFO] [Mastiff.Plugins.Fuzzy Hashing] : Generating fuzzy hash.

[2013-11-18 12:57:31,115] [INFO] [Mastiff.Plugins.Fuzzy Hashing.compare] : Comparing fuzzy hashes.

[2013-11-18 12:57:31,116] [INFO] [Mastiff.Plugins.yara] : Starting execution.

[2013-11-18 12:57:31,137] [INFO] [Mastiff.Plugins.File Information] : Starting execution.

[2013-11-18 12:57:31,147] [INFO] [Mastiff.Plugins.Embedded Strings Plugin] : Starting execution.

[2013-11-18 12:57:31,184] [INFO] [Mastiff.Plugins.VirusTotal] : Starting execution.

Donde se guarda Mastiff los resultados

Mastiff guarda los resultados en un SQLite, lo pudimos ver en el archivo de configuración. Si quisiéramos hacer querys, os muestro un ejemplo de, en que tablas guarda la información Mastiff:

mastiff

Ahora veremos que LOG se ha generado, para ello deberemos de ir a /var/log/mastiff/. Dentro, habrá tantas carpetas como análisis hayamos echo.

Vamos a ver un ejemplo entrando en una carpeta de análisis:


root@remnux:/var/log/mastiff/0bde4b8e18ea2ee8ad0166fac82d6eaf# ls -la

total 276

drwxr-xr-x  3 root   root     4096 2013-11-18 12:57 <b>.</b>

drwxr-xr-x 16 remnux remnux   4096 2013-11-18 12:57 <b>..</b>

-rw-r--r--  1 root   root   212663 2013-11-18 12:57 0bde4b8e18ea2ee8ad0166fac82d6eaf.VIR

-rw-r--r--  1 root   root      157 2013-11-18 12:57 fuzzy.txt

-rw-r--r--  1 root   root     1666 2013-11-18 12:57 mastiff.log

-rw-r--r--  1 root   root     1218 2013-11-18 12:57 mastiff-run.config

-rw-r--r--  1 root   root    34219 2013-11-18 12:57 strings.txt

-rw-r--r--  1 root   root     3253 2013-11-18 12:57 virustotal.txt

drwxr-xr-x  2 root   root     4096 2013-11-18 12:57 <b>zip_contents</b>

-rw-r--r--  1 root   root      915 2013-11-18 12:57 zipinfo.txt

Este ejemplo es perfecto, he echo submit a Mastiff de un fichero ZIP que contenía malware.

Vamos a ver que ficheros de log se han generado:

Del listado de antes, vamos a ver archivo por archivo


root@remnux:/var/log/mastiff/0bde4b8e18ea2ee8ad0166fac82d6eaf# file 0bde4b8e18ea2ee8ad0166fac82d6eaf.VIR

0bde4b8e18ea2ee8ad0166fac82d6eaf.VIR: Zip archive data, at least v2.0 to extract

Esto es una copia del archivo que hemos analizado, si queremos analizar y ahorrar espacio, podemos hacerlo. Es una opción que se puede cambiar en el fichero de configuración.


root@remnux:/var/log/mastiff/0bde4b8e18ea2ee8ad0166fac82d6eaf# cat fuzzy.txt

Fuzzy Hash: 3072:zBrvMVHHfj9u0bgiYebsvqyssWyIqHlR/szVz91h7lBFVvbSH6W5ZGfb+BC:zp0nLE0ciYesyyZNU/1DfVTSXZiSC

 

No other fuzzy hashes were related to this file.

Si en la base de datos tenemos un fichero parecido, lo podremos saber gracias al fichero fuzzy.


root@remnux:/var/log/mastiff/0bde4b8e18ea2ee8ad0166fac82d6eaf# cat mastiff.log

[2013-11-18 12:57:30,967] [INFO] [Mastiff.Init_File] : Analyzing /media/sf_Downloads/malware/0bde4b8e18ea2ee8ad0166fac82d6eaf.

[2013-11-18 12:57:30,967] [INFO] [Mastiff.Init_File] : Log Directory: /var/log/mastiff/0bde4b8e18ea2ee8ad0166fac82d6eaf

[2013-11-18 12:57:31,079] [INFO] [Mastiff.DB.Insert] : Adding ['ZIP', 'Generic']

[2013-11-18 12:57:31,081] [INFO] [Mastiff.Analysis] : File categories are ['ZIP', 'Generic'].

[2013-11-18 12:57:31,082] [INFO] [Mastiff.Plugins.ZipExtract] : Starting execution.

[2013-11-18 12:57:31,085] [INFO] [Mastiff.Plugins.ZipExtract] : Password "infected" will be used for this zip.

[2013-11-18 12:57:31,086] [INFO] [Mastiff.Plugins.ZipExtract] : Extracting efax_9057733019_pdf.scr.

[2013-11-18 12:57:31,093] [INFO] [Mastiff.Plugins.ZipExtract] : Adding efax_9057733019_pdf.scr to queue.

[2013-11-18 12:57:31,095] [INFO] [Mastiff.Plugins.ZipInfo] : Starting execution.

[2013-11-18 12:57:31,099] [INFO] [Mastiff.Plugins.Fuzzy Hashing] : Starting execution.

[2013-11-18 12:57:31,099] [INFO] [Mastiff.Plugins.Fuzzy Hashing] : Generating fuzzy hash.

[2013-11-18 12:57:31,115] [INFO] [Mastiff.Plugins.Fuzzy Hashing.compare] : Comparing fuzzy hashes.

[2013-11-18 12:57:31,116] [INFO] [Mastiff.Plugins.yara] : Starting execution.

[2013-11-18 12:57:31,137] [INFO] [Mastiff.Plugins.File Information] : Starting execution.

[2013-11-18 12:57:31,147] [INFO] [Mastiff.Plugins.Embedded Strings Plugin] : Starting execution.

[2013-11-18 12:57:31,184] [INFO] [Mastiff.Plugins.VirusTotal] : Starting execution.

[2013-11-18 12:57:32,111] [INFO] [Mastiff.Analysis] : Finished analysis for /media/sf_Downloads/malware/0bde4b8e18ea2ee8ad0166fac82d6eaf.

Aquí podremos ver el output del LOG que se ha generado con el análisis de Mastiff.


root@remnux:/var/log/mastiff/0bde4b8e18ea2ee8ad0166fac82d6eaf# more mastiff-run.config

[Dir]

log_dir = /var/log/mastiff/0bde4b8e18ea2ee8ad0166fac82d6eaf

plugin_dir = /usr/local/lib/python2.7/dist-packages/mastiff-0.6.0-py2.7.egg/plugins, ./plugins, /etc/mastiff

base_dir = /var/log/mastiff

 

[Misc]

verbose = off

copy = on

hashes = ('0bde4b8e18ea2ee8ad0166fac82d6eaf', '9ce19224615b8abf282e586b0949a91f3e9a7d6d', '2fd9994af61c487a552f2c432e28bf00c4205b1686754d00b398a18d1ef3cbcd')

 

[Sqlite]

db_file = mastiff.db

 

[File ID]

trid = /usr/local/bin/trid

trid_db = /usr/local/lib/triddefs.trd

Tendremos un fichero de configuración en el cual podremos ver las opciones que se han usado para el análisis.


root@remnux:/var/log/mastiff/0bde4b8e18ea2ee8ad0166fac82d6eaf# more strings.txt

b A kQCH

10 A qa'>

1e A efax_9057733019_pdf.scr

44 A 'e,S

57 A DgFS

f2 A -]=+[

Mastiff extraerá los strings del fichero que hemos mandado a analizar, como vemos uno de los strings interesantes que podemos ver es "1e A efax_9057733019_pdf.scr".


root@remnux:/var/log/mastiff/0bde4b8e18ea2ee8ad0166fac82d6eaf# cat virustotal.txt

VirusTotal Results for 0bde4b8e18ea2ee8ad0166fac82d6eaf

Last scan date: 2013-10-28 19:55:32

Total positive results: 35/46

Link to virustotal.com:

https://www.virustotal.com/file/2fd9994af61c487a552f2c432e28bf00c4205b1686754d00b398a18d1ef3cbcd/analysis/1382990132/

 

AV                        Version         Results

Bkav                      1.3.0.4261      W32.Clod483.Trojan.1c13

CAT-QuickHeal             12.00           TrojanDroper.Agent.gen

McAfee                    5.600.0.1067    PWS-Zbot.dx

Malwarebytes              1.75.0.1        Spyware.Agent

K7AntiVirus               9.173.10014     Trojan

K7GW                      12.7.0.14       Trojan

TheHacker                 6.8.0.5.355     Trojan/Spy.Zbot.aan

Symantec                  20131.1.5.61    Trojan.Zbot

Norman                    7.02.06         Troj_Generic.QMOLC

TrendMicro-HouseCall      9.700.0.1001    TROJ_GEN.F47V1017

Avast                     8.0.1489.320    Win32:Dropper-gen [Drp]

Kaspersky                 9.0.0.837       HEUR:Trojan.Win32.Generic

BitDefender               7.2.5028.0      Trojan.Injector.ARN

Agnitum                   5.5.1.3         TrojanSpy.Zbot!1TH8DOzGHTM

ViRobot                   2011.4.7.4223   Trojan.Win32.Zbot.377856

Emsisoft                  3.0.0.589       Trojan.Injector.ARN (B)

Comodo                    17172           UnclassifiedMalware

DrWeb                                     Trojan.MulDrop5.1202

VIPRE                     22808           Trojan.Win32.Generic!BT

AntiVir                   7.11.109.226    TR/Crypt.Xpack.27913

TrendMicro                9.740.0.1012    TSPY_ZBOT.FUU

McAfee-GW-Edition         2013            PWS-Zbot.dx

Sophos                    4.94.0          Troj/Bredo-AJR

Antiy-AVL                 2.0.3.7         Trojan/Win32.Generic

Kingsoft                  2013.4.9.267    VIRUS_UNKNOWN

Microsoft                 1.10003         PWS:Win32/Zbot

AhnLab-V3                 2013.10.29.00   Trojan/Win32.Zbot

GData                     22              Trojan.Injector.ARN

Commtouch                 5.4.1.7         W32/Trojan.WJRB-7538

Panda                     10.0.3.5        Trj/CI.A

ESET-NOD32                8976            Win32/Spy.Zbot.AAN

Ikarus                    T3.1.5.4.0      Trojan.Inject

Fortinet                  5.1.147.0       W32/DrodZp.A

AVG                       13.0.0.3169     Inject.CIUP

Baidu-International       3.5.1.41473     Trojan.Win32.Generic.aSsH

Como hemos incluído la API de Virus Total, podremos ver que resultados arroja si es que el archivo ha sido subido con anterioridad.


root@remnux:/var/log/mastiff/0bde4b8e18ea2ee8ad0166fac82d6eaf# cat zipinfo.txt

File Name: 0bde4b8e18ea2ee8ad0166fac82d6eaf

This file has no comment.

 

Modification Date   File Size  File Name


--------------------------------------------------------------------------------

10/17/2013 13:30:36 377856     efax_9057733019_pdf.scr

 

File Name:              efax_9057733019_pdf.scr

Last modification date: 10/17/2013 13:30:36

Compression Type:       8 - Deflated

File comment:           None

Creation system:        MS-DOS, OS/2, FAT/VFAT/FAT32 (0)

PKZIP creation version: 20

Version to extract:     20

Flag bits:              0x0

- Normal (-en) compression option was used.

Volume number:          0

Internal attributes:    0x0

External attributes:    0x20

CRC32:                  1634835784

Header offset:          0

Compressed size:        212519

Uncompress size:        377856

This file entry contains extra data. Not supported yet.

En mi caso, como era un fichero ZIP tendremos un archivo de LOG con el resultado de la extracción.


root@remnux:/var/log/mastiff/0bde4b8e18ea2ee8ad0166fac82d6eaf# ls zip_contents/

efax_9057733019_pdf.scr

En este caso, como había un fichero scr dentro del ZIP nos lo guarda en un directorio.

Si queremos ver el tipo de fichero:


root@remnux:/var/log/mastiff/0bde4b8e18ea2ee8ad0166fac82d6eaf# file zip_contents/efax_9057733019_pdf.scr

zip_contents/efax_9057733019_pdf.scr: PE32 executable for MS Windows (GUI) Intel 80386 32-bit

Mastiff automatizando el análisis de malware, como veis Mastiff, es una herramienta muy completa que nos puede dar una visión global de lo que estamos analizando, naturalmente lo podríamos combinar con otras herramientas de descarga de Malware, por ejemplo.

También este post te puede interesar - http://dragonjar.org/creando-un-laboratorio-de-pentesting-gns3.xhtml

Go up