Archive for the ‘Análisis de Malware’ Category

Solucionario propuesto por Rubén Molina (a.k.a @ftbfsal reto Análisis de Malware Básico & Medio/Alto II. Rubén además de cumplir con los objetivos del reto, le dio varios valores agregados que permiten a los que recién inician tener una idea más clara de todo lo que involucra el análisis de malware y de toda la información que se puede obtener de una muestra por medio de la ingeniería inversa.

Como siempre animar y recordar a los recién iniciados y expertos a participar de estos desafíos, pues no hay mejor manera de aprender que enseñando…

Felicitaciones a Rubén Molina quien se convierte en el ganador de la tarjeta de regalo de Amazon por un valor de $20 usd. Gracias además por compartir ese magnífico solucionario.

Antes de iniciar con el solucionario voy a mostrar algunas capturas de pantalla de lo que fue el proceso de desarrollo del reto. Esto con el objetivo de enseñar de primera mano en qué consistía el desafío y de como esta técnica es actualmente utilizada por diferentes delincuentes informáticos… Pero principalmente de como @ftbfs de manera experta y sin conocimiento de la muestra y configuración que se le puede dar a un troyano fue capaz de obtener gran parte del funcionamiento del mismo :) Además que yo sabía que Rubén nunca había tocado un troyano para windows (por lo menos de los actuales). Esto lo hacía mucho más interesante, pues vuelvo y repito sin conocimiento previo y solo con reversing pudo llegar a esas acertadas conclusiones.

Windows Server sobre la plataforma Amazon EC2. Desde este equipo implementé el reto… Como pudieron observar durante el análisis el sistema estuvo Online para facilitar el proceso e interacción durante el estudio.

Configuración del servicio no-ip… Con el dominio similar al localhost para tratar de engañar a los más novatos

Para este segundo reto utilicé el famoso troyano Cybergate, pues ofrece un amplio repertorio de opciones de configuración.

Selección del perfil

Opciones de conexión inversa

Opciones de instalación (Directorio windows/system32, nombre controlp.exe, inyectar una vez ejecutado al proceso del navegador por defecto, hacerlo auto-ejecutable al inicio de windows con la llave de registro Policies\Explorer\Run, ocultar archivo, eliminar archivo una vez ejecutado, etc)

Utilización de las opciones Keylogger, pero sin envío adicional a un FTP. Esto implica la generación de un archivo para el almacenamiento de la información recolectada.

Esta es una de las opciones más interesantes de este reconocido troyano. Pues permite habilitar algunos métodos Anti-Debugging a la muestra.

Una vez finalizada la configuración solo basta generar la muestra.

Desde aquí solo utilicé diferentes métodos de packing para cada muestra. Medio=upx & Alto=CrypterOnline

Solucionario de Rubén Molina:

La presentación del reto esta aquí y básicamente consiste en el análisis de dos muestras de malware, con el objetivo de responder las siguientes preguntas:

  • ¿Es detectada la muestra por múltiples anti-virus?
  • ¿Es posible identificar algún tipo de empaquetado u ofuscamiento en las muestras? ¿Cuál?, ¿Es posible desempaquetar las muestras?
  • ¿Es posible identificar algunos strings que nos permita determinar a modo general la finalidad del malware?
  • Dentro de las funciones y recursos importados por la muestra, ¿es posible determinar a modo general la finalidad del malware?
  • ¿Qué comportamiento de red/archivos nos indica sobre la finalidad del malware?
  • Finalmente, luego de todos los análisis… ¿Cuál es el objetivo de la muestra?
  • Otros hallazgos (procesos, ocultamiento, anti’s, persistencia, etc, etc, etc)…

No tengo experiencia previa en el análisis de malware, pero tengo algo de experiencia en ingeniería inversa, por lo que decidí resolver este reto usando esa estrategia, y lo primero que hice fue un análisis en listado muerto de la primera muestra. Dentro de las cosas que encontré, descubrí que la muestra intentaba detectar la presencia de algunos sandboxes y que fallaba a reacionar ante ellos, busque esos nombres en Internet y el primero que encontré fue Anubis, con el que analicé el comportamiento en vivo de las dos muestras. Finalmente, aplique el análisis de listado muerto a la segunda muestra.

Para el reporte, sin embargo, decidí cambiar el orden de los análisis, pues el análisis en vivo da una visión mas general, y ademas siempre me ha gustado dejar las cosas mas entretenidas para el final :)

Análisis en codigo vivo

Para el análisis comportamental de las muestras en código vivo se uso la herramienta en línea Anubis –Analyzing Unknown Binaries– (http://anubis.iseclab.org/) que suministra información sobre accesos a memoria, archivos, y registro de Windows, junto con capturas del tráfico de red asociado a la muestra. El sistema presenta reportes detallados con análisis automáticos de los hallazgos.

También se utilizo la herramienta en línea Virus Total (http://virustotal.com/) para registrar las tasas de detección para cada muestra.

Se presenta a continuación el análisis de los resultados obtenidos en estas herramientas. En este análisis se ha intentado explicar el orden de las actividades detectadas. Anubis reporta muchas otras actividades que no son de interés para este análisis.

smss.exe

sha-1: 3ed34887b65f48daea269ca49d0a31edc99bf0f2

http://anubis.iseclab.org/?action=result&task_id=16018433585d866145d1547aaafad18b4&call=first

Se identifica un empaquetado UPX (http://upx.sf.net/)

36 de 42 detecciones (86%) en http://virustotal.com/

  • smss.exe crea algunos mutex (para asegurarse de una única instancia?)
    • _x_X_BLOCKMOUSE_X_x_
    • _x_X_PASSWORDLIST_X_x_
    • _x_X_UPDATE_X_x_
  • smss.exe crea una copia de si mismo (controlp.exe) en el directorio del sistema
    • C:\WINDOWS\System32\controlp.exe
  • smss.exe modifica el registro para asegurar la ejecución de controlp.exe ante el reinicio
    • [HKEY_LOCAL_MACHINE\Software\Microsoft\Active Setup\Installed Components\{17564C2H-5U15-AD2W-I8W2-04Y0LSXEIQ00}]
      “StubPath”=”C:\WINDOWS\System32\controlp.exe Restart”
    • [HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer\Run]
      “Policies”=”C:\WINDOWS\System32\controlp.exe”
    • [HKEY_USERS\S-1-5-21-842925246-1425521274-308236825-500\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer\Run]
      “Policies”=”C:\WINDOWS\System32\controlp.exe”
  • smss.exe inicia iexplorer.exe e inyecta código en la memoria del mismo
    • C:\Program Files\Internet Explorer\iexplore.exe
  • iexplore.exe intercepta la entrada por teclado y almacena en disco (keylogger).
    • C:\Documents and Settings\Administrator\Application Data\cglogs.dat
  • iexplore.exe se comunica con 127-001.servehttp.com (23.22.69.31:443) e intercambia información (para reportar la infección, o recibir nuevas ordenes, o reportar información robada)
    • En total recibe 149 bytes y envía 1006 bytes
    • Al final de la comunicación recibe ” ping|..” y envia “pong|C:\Program Files\Common Files\exec.exe###114891|.”, estos strings parecen estar asociados al proyecto DarkComet RAT (Remote Administration Tool), http://darkcomet-rat.com/
  • iexplore.exe (actuando como dropper) crea “teste.vbs” (con nuevas ordenes?)
    • “C:\Documents and Settings\Administrator\Local Settings\Temp\teste.vbs”
    • VB Scripting es una de las funcionalidades de DarkComet RAT.
  • iexplore.exe ejecuta teste.vbs usando cscript.exe
    • “C:\WINDOWS\system32\cscript.exe” “C:\Documents and Settings\Administrator\Local Settings\Temp\teste.vbs”
  • iexplore.exe inicia controlp.exe

winlogon.exe

sha-1: 062e05b5ad7e4803d5abc733e879e2eccaedeb8e

http://anubis.iseclab.org/?action=result&task_id=101a922a06ffc33741546bf97c5a34407&call=first

No se identifica un empaquetado

19 de 42 detecciones (45%) en http://virustotal.com/

  • winlogon.exe crea algunos mutex (para asegurarse de una única instancia?)
    • _x_X_BLOCKMOUSE_X_x_
    • _x_X_PASSWORDLIST_X_x_
    • _x_X_UPDATE_X_x_
  • winlogon.exe crea una copia de si mismo (controlp.exe) en el directorio del sistema
    • C:\WINDOWS\System32\controlp.exe
  • winlogon.exe modifica el registro para asegurar la ejecución de controlp.exe ante el reinicio
    • [HKEY_LOCAL_MACHINE\Software\Microsoft\Active Setup\Installed Components\{17564C2H-5U15-AD2W-I8W2-04Y0LSXEIQ00}]
      “StubPath”=”C:\WINDOWS\System32\controlp.exe Restart”
    • [HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer\Run]
      “Policies”=”C:\WINDOWS\System32\controlp.exe”
    • [HKEY_USERS\S-1-5-21-842925246-1425521274-308236825-500\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer\Run]
      “Policies”=”C:\WINDOWS\System32\controlp.exe”
  • winlogon.exe inicia iexplorer.exe e inyecta código en la memoria del mismo
    • C:\Program Files\Internet Explorer\iexplore.exe
  • iexplore.exe intercepta la entrada por teclado y almacena en disco (keylogger).
    • C:\Documents and Settings\Administrator\Application Data\cglogs.dat
  • iexplore.exe se conecta con 127-001.servehttp.com (23.22.69.31:443) pero NO intercambia información
    • 0 bytes enviados y 0 bytes recibidos
    • No se descarga entonces ningún *.vbs
  • iexplore.exe inicia controlp.exe

Continuar leyendo desde el Blog Oficial de Rubén Molina >>

 

Reto: Análisis de Malware Básico II
Descargar las muestra desde:

Nivel: Básico/Medio

Nivel: Medio/Alto

Password: m4lw4r3

Esta muestra de malware es real… Desarrollada para el reto, pero con objetivos maliciosos reales. Así que analizar en ambientes controlados.

El reto cuenta con 2 niveles de complejidad… Es decir que los participantes pueden elegir entre el nivel básico/medio y medio/alto. Esto según su nivel de experticia en análisis de malware. Obviamente el ideal es que realizaran ambos niveles e identificaran comportamientos en cada una de las muestras. Pues en definitiva las dos muestras tienen una finalidad idéntica, solo que lo hacen de diferente manera :)

Sobra aclarar que la finalidad del reto es completamente académica. Por ello se incluye un password de descompresión de la muestra. Una vez descomprimido el archivo, corresponde responsabilidad de uso y propagación al investigador.

Realizar una análisis de malware básico/medio/alto y dar respuesta a las siguientes preguntas:

- ¿Es detectada la muestra por múltiples anti-virus?

 - ¿Es posible identificar algún tipo de empaquetado u ofuscamiento en las muestras? ¿Cuál?, ¿Es posible desempaquetar las muestras?

- ¿Es posible identificar algunos strings que nos permita determinar a modo general la finalidad del malware?

- Dentro de las funciones y recursos importados por la muestra, ¿es posible determinar a modo general la finalidad del malware?

- ¿Qué comportamiento de red/archivos nos indica sobre la finalidad del malware?

- Finalmente, luego de todos los análisis… ¿Cuál es el objetivo de la muestra?

- Otros hallazgos (procesos, ocultamiento, anti’s, persistencia, etc, etc, etc)…

@4v4t4r

www.sec-track.org

Solucionarios a 4v4t4r (at) gmail (dot) com

El premio será entregado por medio del sistema de envío de tarjetas de regalo de amazon (e-mail), así que aplica a cualquier lugar del planeta :P

El tiempo límite para el envío de solucionarios será hasta el próximo sábado (1 de septiembre de 2012).

Mucho ánimo ;)

Solucionario propuesto por @t1gr385 al reto Análisis de Malware Básico I. @t1gr385 cumplió con el objetivo inicial del reto: Dar respuesta las preguntas propuestas inicialmente, además decidió salir del común de los análisis (Pregunta: Otros hallazgos) e ir más allá con este. Identificando plenamente la muestra (Un downloader inicial), sus actividades principales (Keylogger Ardamax) y el envío de la información recolectada a un host específico y con unos datos de login determinados por el atacante.

Me pareció muy extraño que algunos de los análisis recibidos se limitaran solo a la muestra inicial (Downloader) cuando claramente como investigadores deben tener muy claro que siempre debemos ir más allá… No limitarnos a resultados regulares… Mucho ánimo para la próxima.

Como siempre animar y recordar a los recién iniciados y expertos a participar de estos desafíos, pues no hay mejor manera de aprender que enseñando… Pronto publicaré otros dos solucionarios geniales realizados por @c1b3rh4ck y wolfmastermx4.

Felicitaciones a @t1gr385 quién se convierte en el ganador del libro ¡Mucho Hacker!

Mucho ánimo, pues en unos días presento otro reto también de malware, igualmente premiado gracias a la corporación ElHackLab.

Descargar solucionario (pdf) >>

Ver en línea:

Reto: Análisis de Malware Básico I
Descargar la muestra desde http://bit.ly/PlS7y6

Password: m4lw4r3

Esta muestra de malware es real… Desarrollada para el reto, pero con objetivos maliciosos reales. Así que analizar en ambientes controlados.

Sobra aclarar que la finalidad del reto es completamente académica. Por ello se incluye un password de descompresión de la muestra. Una vez descomprimido el archivo, corresponde responsabilidad de uso y propagación al investigador.

Realizar una análisis de malware básico y dar respuesta a las siguientes preguntas:

- ¿Es detectada la muestra por múltiples anti-virus?
- ¿En que fecha fueron compiladas las muestras?
- ¿Es posible identificar algún tipo de empaquetamiento en las muestras? ¿Cuál?
- ¿Es posible identificar algunos strings que nos permita determinar a modo general la finalidad del malware?
- Dentro de las funciones y recursos importados por la muestra, ¿es posible determinar a modo general la finalidad del malware?
- ¿Qué comportamiento de red nos indica sobre la finalidad del malware?
- Finalmente, luego de todos los análisis… ¿Cuál es el objetivo de la muestra?
- Otros hallazgos…

@4v4t4r
www.sec-track.org

Solucionarios a 4v4t4r (at) gmail (dot) com

El premio será entregado en la ciudad de Bogotá – Colombia, aprovechando que ando por esta ciudad y que hace poco compré dicho libro…

El tiempo límite para el envío de solucionarios será hasta el próximo sábado (18 de agosto de 2012). Es poco tiempo debido a que el reto es bastante simple… Con el objetivo de introducirnos en el área de análisis de malware.

Mucho ánimo ;)

Análisis de Malware Estático – Básico I

Posted by 4v4t4r On agosto - 3 - 2012

Algunas memorias y apuntes que hacen parte de los Laboratorios realizados sobre Análisis de Malware… En este caso sobre Análisis Estático Básico.

- Consiste en analizar las muestras SIN ejecutarla.
- Determinar si la muestra es maliciosa.
- Provee información sobre la funcionalidad del Malware.

Proceso simple de realizar pero poco efectivo frente a malware avanzado

——————————–——————————–
Análisis de Escaneo con Antivirus
Múltiples Antivirus
Los AntiVirus No son perfectos (firmas de archivos, Heurística). Si se modifica el código, se hace indetectable. Si se modifica la técnica y comportamiento, se hace indetectable.

Lab
https://www.virustotal.com/

Office.exe
http://dc529.4shared.com/download/dD_1Vl4J/Office.rar
SHA-1: 6374174bad269e458a9d97722de4945889e60329
Password: malware
Nota: El archivo Office.exe NO es malware… Son unas cuentas líneas de código en forma de “desafío” sobre introducción al reversing.

Office.exe (exe):http://dc529.4shared.com/download/dD_1Vl4J/Office.rar

Source: http://pastebin.com/m4Gs5Am6

 #include <stdio.h>
 #include <string.h>
 #define SERIAL_SIZE 100
 #define SERIAL "ElHackLab\n"
 int main ()
 {
 int count=0;
 char buff [SERIAL_SIZE];
 for (;;){
 printf ("Ingrese el serial:");
 fgets (&buff [0], SERIAL_SIZE,stdin);
 if (strcmp (&buff [0], SERIAL))
 printf ("Serial incorrecto - Compre el software desde http://www.sec-track.org o Intente nuevamente :P\n");
 else break;
 if (++count>4) return -1;
 }
 printf ("Serial Válido :D\n");
 }
"

Resultado:

https://www.virustotal.com/file/bb63554fb7f44cd2a0f6e2a9bdfd98cb90aa45a4adabfe5f814500e0dda2b55f/analysis/1343202439/
——————————– ——————————–
——————————– ——————————–
Prueba de Concepto: Office.exe + Crypter (Sistema de cifrado detectado como malware)
Resultado:

Análisis Automatizado de Malware – ANUBIS http://anubis.iseclab.org/

Resultado:

http://anubis.iseclab.org/?action=result&task_id=1a7c31c6b5e884ac4312615ba25df3b71&format=html

——————————– ——————————–
——————————– ——————————–
Hashing (Generación de HASH) – Huellas Digitales de los Archivos

http://es.wikipedia.org/wiki/Funci%C3%B3n_Hash
MD5: The Message-Digest Algorithm 5
SHA-1: Secure Hash Algorithm

Hashing – MD5DEEP http://md5deep.sourceforge.net/
D:\wiki_malware\md5>md5deep.exe Office.exe Office_Cifrado.exe
md5deep.exe: WARNING: You are running a 32-bit program on a 64-bit system.
md5deep.exe: You probably want to use the 64-bit version of this program.
f9262c331c86eb63416f68279fe52ecb D:\wiki_malware\md5\Office.exe
07e6f9fbc44e3dfeb7cc15d3e1ecf88d D:\wiki_malware\md5\Office_Cifrado.exe

Hashing – HashCheck Shell Extension http://code.kliu.org/hashcheck

——————————– ——————————–
——————————– ——————————–
Prueba de Concepto: Hashing – Alterando Hash – Office.exe
MD5: f9262c331c86eb63416f68279fe52ecb

Hash:

Resultado de Análisis Múltiples AntiVirus

——————————– ——————————–
——————————– ——————————–
Context Triggered Piecewise Hashing – Fuzzy Hashing
http://www.forensicswiki.org/wiki/Context_Triggered_Piecewise_Hashing
D:\wiki_malware\md5>ssdeep.exe Office.exe Office_Mod.exe Office_Cifrado.exe ssdeep,1.1–blocksize:hash:hash,filename192:66HKHYD8iVGM3qqihmtQSTGkjyFoITcCDq:KYD87MaqiotQS/eaITrW,”D:\wiki_malware\md5\Office.exe”192:26HKHYD8iVGM3qqihmtQSTGkjyFoITcCDq:GYD87MaqiotQS/eaITrW,”D:\wiki_malware\md5\Office_Mod.exe” 768:Rcj7N75t0PXtMVVfYsxjsGoEiuchUtwDnJR+:R07z0VMV5XjsGoEHchLR+,”D:\wiki_malware\md5\Office_Cifrado.exe”

——————————– ——————————–
——————————– ——————————–
Prueba de Concepto – Modificación Archivos – OFFSETs – Para hacerlos indetectables frente a los AntiVirus

Escaneo de Office.exe (archivo original)

Escaneo de Office_Cifrado.exe (archivo cifrado con un crypter reportado como amenaza)

División (1000 bytes) y Rellenado con valores (00)

División (100 bytes) y Rellenado con valores (00)
División (10 bytes) y Rellenado con valores (00)
División (1 byte) y Rellenado con valores (00)

——————————– ——————————–
——————————– ——————————–

Strings – Secuencia de Caracteres

http://technet.microsoft.com/en-us/sysinternals/bb897439.aspx

Strings Office.exe

Strings Office_Cifrado.exe

——————————– ——————————–
——————————– ——————————–
Malware Empaquetado y Ofuscado
Empaquetado:

Detección de Empaquetado – PEiD:
http://dc607.4shared.com/download/mWb48Dih/PEiD-095-20081021.zip
Detección Empaquetado – Office.exe (archivo original)

Detección de Empaquetado – RDG Packer Detector:
http://rdgsoft.8k.com/

Packer – UPX

http://upx.sourceforge.net/

Resultado de Análisis Múltiples AntiVirus

Detección del Packer UPX con RDG Packer Detector:

Strings sobre UPX

Desempaquetar UPX

asas

Al habla de Ingeniería Inversa de Malware (Reverse-Engineering Malware – REM) es obligatorio hablar del experto investigador  Lenny Zeltser y aun más cuando recién está realizando los cursos por parte de SANS sobre esta materia.

Entre uno de sus proyectos de investigación se encuentra el desarrollo de una distribución de GNU/Linux  basada en Ubuntu y enfocada al Análisis e Ingeniería Inversa de Malware.

REMnux se presenta entonces como un completo entorno de análisis de malware que puede ser incluido en nuestros laboratorios de investigación. Entre sus funcionalidades se encuentra la posibilidad de implementación de servicios en determinados puertos para simular el sistema que recibe algún tipo de instrucción o petición desde un equipo del laboratorio infectado.

Permite además realizar análisis de malware basado en aplicaciones web, como javascripts maliciosos, apps de java y películas en flash (animaciones maliciosas). También dispone de diferentes herramientas para el análisis en busca de documentos maliciosos como pueden ser los de Microsoft Office, OpenOffice y PDF’s. Algo que llama aun más la atención en la funcionalidad e realizar ejecuciones del malware en el propio REMnux y realizar volcados de memoria para su posterior análisis en el mismo sistema.

REMnux se distribuye como un archivo imagen de VMWare, por lo tanto solo basta descomprimir el archivo descargado y luego abrir con cualquiera de los productos de VMWare (WorkStation, Server, Player).

Entre las herramientas incluidas se encuentran las siguientes:
Análisis de Malware en Archivos Flash: swftools, flasm, flare.
Análisis de Boots IRC: Inspire, Irssi.
Monitoreo de red: Wireshark, Honeyd, INetSim, fakedns, fakesmtp, NetCat.
Análisis de JavaScripts: Firebug, NoScript, JavaScript Deobfuscator, Rhino debugger, SpiderMonkey, Windows Sript Decoder, Jsunpack-n.
Interacción con malware basado en web: TinyHTTPd, Paros Proxy.
Análisis de Shellcode: gdb, objdump, Radare, shellcode2.exe
Detección de protecciones y cifrados: upx, packerid, bytehist, xorsearch, TRiD.
Análisis de PDF maliciosos: Didier’s PDF tools, Origami framework, Jsunpack-n, pdftk.
Análisis de memoria: Volatility Framework

Dejo algunos screen shots del entorno REMnux.

Boot y pantalla de login:

User: remnux

Password: malware

X:

Tools:

Página oficial del proyecto REMnux

Descargar REMnux - MD5: dc28330411acafc6b7f595a11e8b7ea4

Reto desde HackPlayers: Una ayuda para Juanito

Posted by 4v4t4r On mayo - 30 - 2010

Nuevamente desde HackPlayers comparten a toda la comunidad en internet un reto relacionado con la seguridad de la información. Esta vez, sobre análisis de malware!!!

Read the rest of this entry »