Mostrando las entradas para la consulta remnux ordenadas por relevancia. Ordenar por fecha Mostrar todas las entradas
Mostrando las entradas para la consulta remnux ordenadas por relevancia. Ordenar por fecha Mostrar todas las entradas

16 abril 2013

Análisis dinámico de malware para Android con REMnux y MobiSec

Esta semana Lenny Zelster ha liberado la versión 4 de REMnux, una distribución pensada para el análisis de malware.

REMnux incorpora una batería de herramientas que facilita y acelera el proceso de análisis y aunque inicialmente no está pensada para analizar malware para Android sí que puede aprovecharse algunas de sus funcionalidades.

Por otro lado los chicos de Secure Ideas han desarrollado una distribución llamada MobiSec diseñada para evaluar y analizar la seguridad de dispositivos móviles y las aplicaciones para estos. Tiene también multitud de herramientas, emuladores, etc.

La idea de este post es daros a conocer ambas distribuciones y combinar sus funcionalidades con un pequeño ejemplo para Android. El objetivo no es realizar un análisis exhaustivo de malware sino explicar como con estas herramientas se podría realizar parte del análisis del comportamiento durante análisis de malware.

REMnux se puede descargar en formato OVF/OVA lo que permite importarla en VMWare or VirtualBox. Por el contrario MobiSec requiere descargar la ISO e instalarla en VMWare or VirtualBox de manera manual. Una vez instaladas ambas máquinas, y como se trata de analizar malware, es importante configurar la red de manera aislada y sin acceso a Internet, es decir, en modo 'Host only'. Además, con el fin de facilitar el análisis, configuraremos el DNS y gateway de MobiSec para que sean la IP de REMnux.

MobiSec, entre otras herramientas,  incorpora distintas versiones de emuladores para Android lo que facilita mucho el trabajo cuando se quiere ejecutar algo sobre Android de manera rápida, ya que no hay que configurar nada. En este caso usaremos la versión más reciente instalada, 4.0.3.



El siguiente paso es subir el malware al emulador de Android dentro de MobiSec. En el caso de este ejemplo el malware lo descargaremos desde http://contagiominidump.blogspot.com.es a la máquina física para luego subirlo a MobiSec por SCP. El malware elegido es el Android.Exprespam.  El único paso restante es instalar el malware en el emulador con los comandos de 'adb' (adb install).


Mientras, y antes de ejecutar el malware en el emulador, vamos a preparar REMnux. REMnux permite ejecutar servicios de tal manera que el malware se conecta a estos servicios simulados (como si se tratara de un honeypot) lo que es de gran utilidad para ver qué hace el malware de manera dinámica, por ejemplo resolver una determinada dirección IP, conectarse a un servidor de IRC, enviar SPAM or comunicarse vía HTTP. 

El primer paso es ejecutar 'fakedns' para resolver todos los nombres de dominio a la IP de REMnux y a su vez lanzar Wireshark para tener visibilidad de lo qué ocurre.
En este caso podemos ver que el malware  pregunta por el dominio ftukguhilcom.globat.com y que REMnux le responde con la IP de si misma.


A continuación se puede ver en Wireshark que el malware intenta realizar una conexión HTTPS, que es reseteada por REMnux al no existir tal servicio.


El siguiente paso es emular un servidor HTTPS, con el fin de ver que tipo de información se intercambia. REMnux incluye una servidor HTTP y stunnel, lo que permite crear de manera sencilla un servidor HTTPS. Para ello lanzamos el servidor HTTP con el comando 'httpd start' y configuramos stunnel con un certificado autofirmado.



Si miramos en los logs del servidor HTTP no vemos ninguna petición web. El problema es que al tratarse de un certificado autofirmado es necesario aceptarlo cuando se accede por HTTPS. Puede ser que el malware compruebe la validez del certificado, como un control adicional, o bien que el malware use el navegador de Android que tampoco tiene importado este certificado.


Si fuera el segundo caso se podría importar el certificado en el repositorio de Android y evitar este problema. Pero como el propósito de este post no es realizar un completo análisis sino mostrar las herramientas que ofrece REMnux y MobiSec, vamos a continuar el análisis con otro malware que usa HTTP. En este segundo caso usaremos el malware Chuli.A

Los pasos son análogos: instalaremos el malware en el emulador y lo ejecutaremos.


En este caso el malware accede directamente a una dirección IP, en lugar de resolver un dominio. Afortunadamente REMnux es capaz de responder a esas peticiones de manera automática por lo que mirando Wireshark podemos ver que el recurso pedido es 'android.php' pero este recurso no existe en nuestro servidor HTTP.


Paralelamente podemos ver en los logs del servidor HTTP las peticiones web al recurso android.php. Como el fichero no existe en el servidor, vamos a crearlo con el fin de interactuar con el malware y ver como reacciona al encontrar el fichero.



Ahora, al existir el recurso, se puede ver en los logs del servidor la respuesta con código 200 .


Probablemente durante este mensaje POST el malware informe al C&C de que el dispositivo ha sido comprometido y le mande información del mismo como por ejemplo el IMEI. Seguramente  el string 'phone1365842571243' envíado en el POST sea un identificador único para este dispositivo que permita indentificarlo.

Como la respuesta recibida ha sido 200 ahora el malware realiza otras peticiones que se pueden ver ver en los logs del servidor HTTP. Para ser precisos, el recurso solicitado es 'POST /data/phone1365842571243/process.php'. Igualmente que antes, y con el fin de interactuar con el malware, vamos a crear ese recurso y a ver que pasa.


Parece que funciona pues se realizan varias peticiones POST  que podremos analizar con Wireshark. Estas peticiones contienen diferente información.


Por ejemplo, en una de ellas se envía lo que parece ser la localización del dispositivo (probablemente coordenadas GPS codificadas de alguna manera)


En otra parece que se envía los contactos, que en este caso no son datos validos porque la lista esta vacía:



Podríamos seguir analizando las distintas peticiones y ver que tipo de información se envía mediante las diferentes peticiones POST pero no es el objetivo de este artículo.

Lo imporante es quedarse con la idea de que con MobiSec y REMnux es posible interactuar con el malware de manera dinámica creando respuestas DNS, servicios HTTP/s, recursos web, etc, según vayamos avanzando en el análisis. Además MobiSec incorpora herramientas que permitirían hacer ingeniería inversa del malware, pero eso lo dejamos para otro post.

Artículo cortesía de Angel Alonso-Parrizas 
Leer más...

23 marzo 2013

FedEX malware

 
El malware se distribuye de muchas maneras, una de ellas es mediante el envío de correos electrónicos. El malware puede venir adjunto con otra extensión o es posible que te den un enlace que te lleve hasta un exploit kit.

 En el caso de hoy, he recibido un correo sospechoso que parece venir de FedEX,  así que he analizado la muestra en un laboratorio para saber como actuaba la muestra, donde se conectaba, que acciones realizaba etc...


Lo primero de todo es mirar el correo, mediante ingeniería social intentan que el mensaje parezca que proviene del proveedor legítimo, de esta manera hacen más fácil la infección al usuario final.


El correo básicamente dice que me han intentado entregar un paquete y que no han podido, así que invitan a  descargar un recibo y entregarlo para que me den el paquete. Para descargar el recibo, tenemos que hacer click en el enlace.

El enlace es de una web japonesa, antes de descargar el fichero, miramos el whois del dominio, así podríamos saber quien lo ha registrado y cuando se ha registrado, por si se trata de un dominio registrado para una reciente campaña de distribución de malware, por ejemplo.

darkmac:Desktop marc$ whois sakura.ne.jp
[ JPRS database provides information on network administration. Its use is    ]
[ restricted to network administration purposes. For further information,     ]
[ use 'whois -h whois.jprs.jp help'. To suppress Japanese output, add'/e'     ]
[ at the end of command, e.g. 'whois -h whois.jprs.jp xxx/e'.                 ]

Domain Information: [B%I%a%$%s>pJs]
a. [B%I%a%$%sL>]                 SAKURA.NE.JP
b. [B$M$C$H$o!<$/$5!<$S$9$a$$]
c. [B%M%C%H%o!<%/%5!<%S%9L>]     B$5$/$i%$%s%?!<%M%C%H
d. [Network Service Name]       SAKURA Internet
k. [BAH?%<oJL]                   B%M%C%H%o!<%/%5!<%S%9
l. [Organization Type]          Network Service
m. [BEPO?C4Ev<T]                 TU053JP
n. [B5;=QO"MmC4Ev<T]             TS22695JP
n. [B5;=QO"MmC4Ev<T]             KW419JP
p. [B%M!<%`%5!<%P]               ns1.dns.ne.jp
p. [B%M!<%`%5!<%P]               ns2.dns.ne.jp
s. [B=pL>80]
[B>uBV]                          Connected (2013/01/31)
[BEPO?G/7nF|]                    1997/01/13
[B@\B3G/7nF|]                    1997/02/10
[B:G=*99?7]                      2012/02/01 01:11:32 (JST)

Parece que el dominio se creó hace bastante tiempo por lo que no se trata de una campaña en la que se haya registrado un dominio específico para distribuir la muestra.

Si el dominio no se ha registrado en una campaña de distribución de malware, pueden haberlo comprometido, es una práctica habitual entre los ciber criminales.

¿Es posible por lo tanto que hayan comprometido este host?

Si miramos el host remoto:


Parece que es un host vulnerable, por lo que podemos imaginar que se trata de un host comprometido.

PORT     STATE    SERVICE        VERSION
21/tcp   open     ftp            ProFTPD 1.3.3g
22/tcp   open     ssh            OpenSSH 5.1p1 (FreeBSD 20080901; protocol 1.99)
|_sshv1: Server supports SSHv1
|_ssh-hostkey: ERROR: Script execution failed (use -d to debug)
25/tcp   open     smtp           Sendmail 8.14.3/8.14.3
69/tcp   filtered tftp
79/tcp   filtered finger
80/tcp   open     http           Apache httpd 1.3.42 ((Unix) mod_ssl/2.8.31 OpenSSL/0.9.8e)
|_http-title: pontile*
|_http-methods: GET HEAD OPTIONS
110/tcp  open     pop3           Courier pop3d
111/tcp  filtered rpcbind
137/tcp  filtered netbios-ns
138/tcp  filtered netbios-dgm
139/tcp  filtered netbios-ssn
143/tcp  open     imap           Courier Imapd (released 2008)
443/tcp  open     ssl/http       Apache httpd 1.3.42 ((Unix) mod_ssl/2.8.31 OpenSSL/0.9.8e)
|_http-title: \x82\xB3\x82\xAD\x82\xE7\x82\xCC\x83\x8C\x83\x93\x83^\x83\x8B\x83T\x81[\x83o
|_http-methods: GET HEAD OPTIONS
445/tcp  filtered microsoft-ds
587/tcp  open     smtp           Sendmail 8.14.3/8.14.3
623/tcp  filtered oob-ws-http
664/tcp  filtered secure-aux-bus
787/tcp  open     drac           1 (RPC #900101)
993/tcp  open     ssl/imap       Courier Imapd (released 2008)
995/tcp  open     ssl/pop3       Courier pop3d
3339/tcp filtered unknown
8025/tcp filtered ca-audit-da
Service Info: OSs: Unix, FreeBSD; CPE: cpe:/o:freebsd:freebsd

Tiene bastantes servicios al descubierto y se confirma la versión de NMAP Apache 1.3.4.
El tener el servidor web, entre otros servicios con vulnerabilidades da que pensar que igual han vulnerado el host remoto y que han subido ahí la muestra. Comprobamos el enlace a ver si la muestra está todavía disponible.

darkmac:Desktop marc$ curl -I iyukicks.sakura.ne.jp/RFCRPYZLDP.php?php=receipt
HTTP/1.1 200 OK
Date: Sat, 05 Jan 2013 11:45:01 GMT
Server: Apache/1.3.42 (Unix) mod_ssl/2.8.31 OpenSSL/0.9.8e
Content-Disposition: attachment; filename=PostalReceipt.zip
Content-Length: 35398
Content-Type: application/zip

El host responde con un 200 y lo que tenemos para descargar es un fichero ZIP, así que lo bajamos y descomprimos el archivo.

Una de las primeras cosas que se pueden hacer es saber si alguien ya ha escaneado este archivo, por lo tanto lo comprobamos en Virus Total, por ejemplo.
Primero miramos el MD5

darkmac:~ marc$ md5 Downloads/PostalReceipt.exe
MD5 (Downloads/PostalReceipt.exe) = ca0393c3d4ae30f258266329b8b8867a

Y luego se comprueba si el archivo ha sido subido a Virus Total:

darkmac:~ marc$ python tools/malware/virustotal/virustotal.py get ca0393c3d4ae30f258266329b8b8867a
INFO:virustotal:Get report of 'ca0393c3d4ae30f258266329b8b8867a'

********************************************************************************
Report:
- MicroWorld-eScan (12.0.250.0, 20130105):    Trojan.Generic.KDV.820505
- nProtect (2013-01-04.03, 20130104):    Trojan/W32.Small.49152.CEB
- CAT-QuickHeal (12.00, 20130104):    TrojanDownloader.Kuluoz.agy
- McAfee (5.400.0.1158, 20130105):    Generic Downloader.x!gpd
- Malwarebytes (1.62.0.140, 20130105):    Trojan.Fakeword
- K7AntiVirus (9.156.8074, 20130104):    Riskware
- TheHacker (None, 20130105):    Posible_Worm32
- NANO-Antivirus (0.22.6.49175, 20130105):    None
- F-Prot (4.6.5.141, 20130104):    None
- Symantec (20121.2.1.2, 20130105):    Trojan.Gen.2
- Norman (6.08.06, 20130104):    W32/Troj_Generic.GJHER
- TotalDefense (37.0.10238, 20130104):    Win32/Kuluoz.DA
- TrendMicro-HouseCall (9.700.0.1001, 20130105):    TROJ_KULUOZ.GC
- Avast (6.0.1289.0, 20130105):    Win32:Malware-gen
- eSafe (7.0.17.0, 20130103):    None
- ClamAV (0.97.3.0, 20130105):    None
- Kaspersky (9.0.0.837, 20130105):    Trojan-Downloader.Win32.Kuluoz.agy
- BitDefender (7.2, 20130105):    Trojan.Generic.KDV.820505
- Agnitum (5.5.1.3, 20130104):    None
- SUPERAntiSpyware (5.6.0.1008, 20130105):    None
- Emsisoft (3.0.0.569, 20130105):    Trojan.Win32.Agent.AMN (A)
- Comodo (14796, 20130105):    TrojWare.Win32.Trojan.Agent.Gen
- F-Secure (9.0.17090.0, 20130104):    Trojan.Generic.KDV.820505
- DrWeb (7.0.4.09250, 20130105):    BackDoor.Kuluoz.3
- VIPRE (14848, 20130104):    Trojan.Win32.Generic.pak!cobra
- AntiVir (7.11.55.234, 20130104):    TR/Rogue.kdv.820505.1
- TrendMicro (9.561.0.1035, 20130105):    TROJ_KULUOZ.GC
- McAfee-GW-Edition (2012.1, 20130104):    Generic Downloader.x!gpd
- Sophos (4.84.0, 20130105):    Troj/Zbot-DKL
- Jiangmin (13.0.900, 20121221):    None
- Antiy-AVL (2.0.3.7, 20130104):    None
- Kingsoft (2012.12.21.213, 20130104):    Win32.Malware.Generic.a.(kcloud)
- Microsoft (1.9002, 20130105):    TrojanDownloader:Win32/Kuluoz.B
- ViRobot (2011.4.7.4223, 20130104):    Trojan.Win32.S.Downloader.49152.CQ
- AhnLab-V3 (2013.01.05.00, 20130104):    Win-Trojan/Downloader.49152.UF
- GData (22, 20130105):    Trojan.Generic.KDV.820505
- Commtouch (5.3.2.6, 20130104):    None
- ByteHero (1.0.0.1, 20121226):    None
- VBA32 (3.12.18.4, 20130104):    None
- PCTools (8.0.0.5, 20130105):    Trojan.Gen
- ESET-NOD32 (7862, 20130104):    a variant of Win32/Kryptik.ARME
- Rising (24.43.04.02, 20130104):    None
- Ikarus (T3.1.1.122.0, 20130104):    Trojan-Downloader.Win32.Kuluoz
- Fortinet (5.0.26.0, 20130105):    W32/Kuluoz.AGY!tr.dldr
- AVG (10.0.0.1190, 20130105):    Downloader.Generic13.XMH
- Panda (10.0.3.5, 20130104):    Trj/CI.A


Parece que hay premio, es detectado por la mayoría de antivirus. Antes de empezar ningún análisis dinámico o estático podemos ver mas información del binario:

root@remnux:/home/remnux# pescanner PostalReceipt.exe
################################################################################
Record 0
################################################################################

Meta-data
================================================================================
File:    PostalReceipt.exe
Size:    49152 bytes
Type:    PE32 executable for MS Windows (GUI) Intel 80386 32-bit
MD5:     ca0393c3d4ae30f258266329b8b8867a
SHA1:    be8ce26449980e5aecba2d2f793f5e4e5123ff61
ssdeep:  768:zWZkk1ZcczE0AGalM8eF7sft+FZqUATV9ddobwttIK1K4bKI/2X:SZF1ZZzE0P3wftytApl1Kj1X
Date:    0x50E4C291 [Wed Jan  2 23:28:17 2013 UTC]
EP:      0x4282d0 UPX1 1/3 [SUSPICIOUS]
CRC:     Claimed: 0x0, Actual: 0x10922 [SUSPICIOUS]
Packers: UPX 2.90 [LZMA] -> Markus Oberhumer, Laszlo Molnar & John Reiser

Resource entries
================================================================================
Name               RVA      Size     Lang         Sublang                  Type
--------------------------------------------------------------------------------
RT_ICON            0x290a4  0x4228   LANG_ENGLISH SUBLANG_ENGLISH_US       data
RT_GROUP_ICON      0x2d2d0  0x14     LANG_ENGLISH SUBLANG_ENGLISH_US       MS Windows icon resource - 1 icon

Sections
================================================================================
Name       VirtAddr     VirtSize     RawSize      Entropy    
--------------------------------------------------------------------------------
UPX0       0x1000       0x20000      0x0          0.000000    [SUSPICIOUS]
UPX1       0x21000      0x8000       0x7600       7.825471    [SUSPICIOUS]
.rsrc      0x29000      0x5000       0x4600       3.971729   


Es un binario empaquetado con UPX y se ha compilado hace bien poquito, por el timestamp del ejecutable.

Análisis dinámico

Lo que haremos ahora es ejecutar la muestra en un entorno controlado para ver que hace exactamente.
Ejecutamos la muestra,


Al ejecutar la muestra se nos abre un archivo TXT, supuestamente es el que tendría que imprimir para que me entregaran el paquete....

Pero, en segundo plano se abren varias conexiones en paralelo.


Tenemos muchas Ip's además de diferente Content-Type.

Si miramos por ejemplo el que es de tipo application,


Nos encontramos con un bonito ejecutable :)

Artículo cortesía de Marc Rivero López

Leer más...

14 junio 2015

Enlaces de la SECmana - 280

Leer más...