Muchas veces nos encontramos entornos donde nos facilitan el código o por lo menos el software ya instalado, pero en caso de tener los ejecutables y librerías que podríamos hacer para complementar nuestras pruebas?.
Existen muchas pruebas que podríamos llevar a cabo pero hoy nos centraremos en pensar que el .exe puede llegar a tener un comportamiento de malware lo cual podría ocasionar conflictos con el AV que se tenga instalado en la maquina.
Cuckoo Sandbox: Automated Malware Analysis
Cuckoo que
es un sistema abierto automatizado para el analisis de Malware, se
utiliza para ejecutar, analizar y recopilar informacion sobre el
malware, mientras es ejecutado en un entorno aislado, en pocas palabras
en una Sandbox.
Cuckoo es una alternativa a otros proyectos como dionaea, Sandboxie, o Buster Sandbox
Con Cuckoo se puede utilizar para analizar:
Con Cuckoo se puede utilizar para analizar:
- Genéricos ejecutables de Windows
- Archivos DLL
- Los documentos PDF
- Documentos de Microsoft Office
- URL
- Scripts PHP
- Casi todo lo demás
Generando los siguientes resultados:
- Los rastros de win32 llamadas API realizadas por todos los procesos generados por el malware.
- Los archivos que se crean, eliminan y descargar el malware durante su ejecución.
- Los volcados de memoria de los procesos de malware.
- Red de seguimiento de tráfico en formato PCAP.
- Capturas de pantalla del escritorio de Windows tomada durante la ejecución del malware.
- Volcados de memoria completos de las máquinas.
Arquitectura
Cuckoo consiste en un software de gestión central que se encarga de la ejecución y análisis de muestras.
Cada análisis se pone en marcha en una
máquina virtual nueva y aislada. La Infraestructura de Cuckoo está
compuesto por una máquina host (software de gestión) y un número de
máquinas de clientes (máquinas virtuales para el análisis).
La configuracion de cuckoo recomendada
es usarlo en un sistema operativo Linux con un windows xp virtualizado,
pero tambien funciona desde un Mac Os con windows xp o 7 virtualizado.
Ya que vimos un poco de lo que es Cuckoo, pasaremos a la instalación.
Como habíamos visto en la
bugtraq2 habían agregado esta herramienta, así que partiré de
la configuración de cuckoo desde el sistema operativo de Bugtraq2.
En caso de que quieras hacer la instalación de Cuckoo con otro sistema operativo linux les dejo aquí una guia.
Para el uso de Cuckoo necesitamos instalar las siguientes librerias en nuestra maquina anfitrion
sudo apt-get install python sudo apt-get install python-sqlalchemy sudo pip install sqlalchemy sudo apt-get install python-dpkt python-jinja2 python-magic python-pymongo python-libvirt python-bottle python-pefile sudo apt-get install tcpdump
Y necesitamos darle permisos de root al Tcpdump, lo hacemos con el siguiente comando
sudo setcap cap_net_raw,cap_net_admin=eip /usr/sbin/tcpdump
Ahora para los que hagamos la configuración de cuckoo en la bugtraq2 donde cuckoo ya viene instalado y solo hay que configurar, solo tenemos que hacer algo antes de empezar.
En este caso como sistema para el virtualizado usaremos virtualbox, pero también con vmware podemos usar cuckoo.
Si usamos el virtualbox desde la bugtraq2 nos encontraremos con un pequeño fallo al querer correr cualquier sistema.
Si usamos el virtualbox desde la bugtraq2 nos encontraremos con un pequeño fallo al querer correr cualquier sistema.
Kernel driver not installed (rc=-1908)
En este caso quise recompilar el kernel
pero no me funciono así que tuve que volver a reinstalar el virtualbox
que venia por defecto en la bugtraq2.
Podemos hacerlo fácilmente, lo puedes eliminar desde el Centro de Software o desde el Gestor de Paquetes Synaptics.
Una vez eliminado podemos descargar la version mas actual desde la pagina de Virtualbox
Y la instalación la podemos hacer con el siguiente comando:
sudo sh ./nombre del archivo.run
Con esto tenemos ya listo nuestro virtualbox para configurar cuckoo
Primeramente instalaremos nuestro sistema operativo invitado. En mi caso use el Windows XP SP1 ya que es el que mas vulnerabilidades tiene para que el malware a prueba pueda explotar.
Crearemos una maquina virtual con el
nombre de “cuckoo1″ en caso de que vallamos agregando mas usar un
orden(cuckoo2,cuckoo3,cukoo4), si instalamos un windows xp le pondremos
256 mb de ram, si es un windows 7 le ponemos 5120mb.
Una vez ya instalado el windows, pasaremos a configurar la maquina invitado, empezamos instalando el “Guest Additions”
Para instalar lo pueden hacer dando click en Dispositivos y luego en “Instalar Guest Addtions” en virtualbox
Para instalar lo pueden hacer dando click en Dispositivos y luego en “Instalar Guest Addtions” en virtualbox
Configuramos nuestra maquina virtualbox el area de Red y la pondremos en modo Bridge (puente) y recuerden el nombre de la interfaz que usaran(vboxnet, eth0,etc)
Instalaremos Python en nuestra maquina virtual http://www.python.org/getit/
También podemos instalar aplicaciones de preferencia versiones viejas que sean vulnerables, las podemos descargar desde Oldapps
Configuramos una ip estática para
nuestra maquina virtual, desactivamos el firewall y las
actualizaciones automáticas y reiniciamos la computadora.
Ahora tenemos que agregar el Agente de Cuckoo a nuestra maquina virtual, el agente es un archivo en python que hara la conexion de nuestra maquina invitada a la anfitriona,
El archivo esta localizado en /bugtraq/tools/laboratories/sandbox/cuckoo/agent/agent.py
Despues de esto abrimos el archivo, y tomaremos una imagen instantanea,
esto hara que cada que iniciemos la maquina virtual inice en ese estado
en cual tomamos la imagen. Para hacer la instantanea lo podemos hacer
dando clicl en Maquina, luego en Tomar Instantanea.
Ahora configuraremos los archivos .conf de cuckoo.
En el archivo Virtualbox.conf configuraremos el nombre de la maquina que especificamos en el virtualbox.
Y especificaremos la IP que le habíamos asignado a la maquina virtual.
Y especificaremos la IP que le habíamos asignado a la maquina virtual.
El archivo reporting.conf ese lo pueden modificar a su gusto, y no olviden guardar los cambios.
Ahora ya tenemos configurado nuestra maquina virtual invitada y nuestra maquina anfitriona.
Para iniciar cuckoo podemos hacerlo con el comando
python cuckoo.py
O hacerlo desde el acceso directo que viene en la bugtraq2
Cuckoo quedara a la espera de el envió de algún archivo para su análisis.
Ahora para enviar un archivo para analizarlo podremos hacerlo de diferentes formas.
Podemos hacerlo usando el submit.py
usage: submit.py [-h] [--url] [--package PACKAGE] [--custom CUSTOM] [--timeout TIMEOUT] [--options OPTIONS] [--priority PRIORITY] [--machine MACHINE] [--platform PLATFORM] [--memory] [--enforce-timeout] target
Ejemplo : enviar un binario local:
$. / Utils / submit.py / ruta / hacia / binario
Ejemplo : enviar una URL:
$. / Utils / submit.py - http://www.example.com url
Ejemplo : enviar un binario local y especificar una prioridad más alta:
$. / Utils / submit.py - Prioridad 5 / ruta / hacia / binario
Ejemplo : enviar un binario local y especificar un tiempo de espera de análisis personalizado de 60 segundos:
$. / Utils / submit.py - timeout 60 / ruta / hacia / binario
Ejemplo : enviar un binario local y especifique un paquete de análisis personalizado:
$. / Utils / submit.py -/ ruta binario
Ejemplo : enviar un binario
local y especificar un paquete de análisis personalizado y algunas
opciones (en este caso un argumento de línea de comandos para el
malware):
$ / Utils / submit.py -. Exe paquete - Opciones argumentos = - dosomething / ruta / al / Binary.exe
Ejemplo : enviar un binario local que se ejecuta en la máquina virtual de cuckoo1 :
$. / Utils / submit.py - cuckoo1 máquina / ruta / hacia / binario
Ejemplo : enviar un binario local que se ejecuta en un equipo Windows:
$. / Utils / submit.py - Windows / plataforma binarios camino / al /
Ejemplo : enviar un binario local y tomar un volcado de memoria completa de la máquina de análisis:
$ / Utils / submit.py -. Memoria / ruta / hacia / binario
Ejemplo : enviar un binario
local y forzar el análisis a ser ejecutado por el tiempo muerto (sin
tener en cuenta el mecanismo interno que Cuckoo utiliza para decidir
cuándo terminar el análisis):
$. / Utils / submit.py - aplicar-timeout / ruta / hacia / binarioO hacerlo desde la interfaz WEB
Para usar la interfaz web hay que correr el archivo web.py localizado en la ruta: Bugtraq/tools/laboratories/sandbox/cuckoo/utils
Una vez ya estando en ese directorio solo usamos el comando python web.py y correra el servicio, para ingresar usaremos la direccion 0.0.0.0:8080
Para actualizar las firmas usaremos el siguiente comando.
python community.py -a
Con esto añadiremos las firmas creadas por la comunidad de Cuckoo, tambien puedes crear tus propias firmas aqui les dejo el link de como hacerlo.
Tambien podemos añadir al reporte la deteccion con virustotal para agregar esto debemos modificar el archivo virustotal.py que se encuentra dentro de /modules/processing/
Para conseguir el API de virustotal hay que registrarnos y en el area de tu perfil te dan tu codigo de la API.
Para agregarlo a cuckoo solo pegas el codigo de la API dentro de las comillas de VIRUSTOTAL_KEY
Aquí reportes de Análisis ya hechos.
Un Analisis al troyano de FLU.
Un analisis de Zeus con Cuckoo
Cuckoo against a Flash Player Exploit.
Bueno aqui termino, les dejo este gran
proyecto para el analisis de malware, aunque tiene sus Pros tambien
tiene sus contras. Si no chequen este articulo de Iñaki Rodriguez
de Securitybydefault
FUENTES:
http://www.flu-project.com/cuckoo-sandbox-automated-malware-analysis-por-ifsecurity.html
No hay comentarios:
Publicar un comentario