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.

Índice

    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:

    [email protected]:~/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:

    [email protected]:/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:

    [email protected]:/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

    [email protected]:/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.

    [email protected]:/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.

    [email protected]:/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.

    [email protected]:/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.

    [email protected]:/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".

    [email protected]:/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.

    [email protected]:/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.

    [email protected]:/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:

    [email protected]:/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 - https://www.dragonjar.org/creando-un-laboratorio-de-pentesting-gns3.xhtml

    Subir