martes, 31 de enero de 2012

Qhost - Postal de Amor

Hoy les traigo este pequeño troyano Qhost, programado en Visual Basic.Net.
Es enviado en forma masiva por e-mail con subject : "Postal de Amor",  con fines
de atrapar a incautos mediante ingeniería social.


hxxp://176.9.192.196/gusanito.com/nuevo/Mensaje_Amor.exe
hxxp://176.9.192.196/gusanito.com/nuevo/mensaje.php

Virus Total:

SHA256: 5cc9ba24efbff1b02199368f52bc0972ee7233905707b21f5263f0fe943ba054
Nombre: Mensaje_Amor.exe  
Detecciones: 2 / 43 
Icono del Troyano.


Lo cargo en el IDA y veo que no esta ofuscado con Crypters ni Packers, 
solo noto que las Urls donde se descarga la configuración del Phishing
si esta encriptado por programa.

- llave de autoarranque

  loc_402741: push "SOFTWARE\Microsoft\Windows\CurrentVersion\Run" 

"HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run" 

- Nombre que tendrá el troyano

  loc_402752: push "C:\WINDOWS\system32\drivers\poraca.exe"  

-Archivo .host para realizar el pharming

  loc_40275B: push "C:\Windows\System32\drivers\etc\hosts" 

- Url encriptada

  loc_402765: push "icdE5//oEZW4.Ñ\cÑEEcMQÑV92z/wl//qD-1DtDu:1ñ/CTJhwR/orñYLmZ/NnZ5_Ed5c0ppaZHa" 

- llamada a desencriptar la url

  loc_40276A: callvirt DesEncriptarCadena    

- Url encriptada

"x\EHp//VtvÑHd4d4syeGQ/_7bzFÑJ/2Q:vJ/AVvAuDO/CT6Cm/Bn3/NoñN._jZNjHrHfpo.p" 

- llamada a desencriptar la url

  loc_402779: callvirt DesEncriptarCadena 




Encuentro dos cadenas mas, las que perteneces al procedimiento de encripcion y desencripcion de las urls.

  loc_4026E9: push "ABCDEFGHIJKLMNÑOPQRSTVWXYZ\abcdefg:.hijklmnñopqrstvwxyz1234567890"
  loc_4026EE: stfld patron_busqueda
  loc_4026F3: push Me
  loc_4026F4: push "ÑPbQ9GsWAFVtvM7:g1JlX6IDwhC3qBSTmOnñkLrYKNRxopij5.Za84eHf\Eycd0z2"
  loc_4026F9: stfld Patron_encripta


Rutinas de desencripcion:

DesEncriptarCadena

  Code: FatFormat
  Start: 402F9C
  Size: 51
  Flag: InitLocals
  Max Stack: 5
  Local Variables: 11000020

  loc_402F9C: ldc.i4.0 - Push 0 onto the stack as int32.
  loc_402F9D: push cadena
  loc_402F9E: callvirtget_Length
  loc_402FA3: ldc.i4.1   - Push 1 onto the stack as int32.
  loc_402FA4: sub.ovf   - Subtract native int from a native int. Signed result shall fit in same size
  loc_402FA5: stloc.3 - Pop a value from stack into local variable 3.
  loc_402FA6: stloc.1 - Pop a value from stack into local variable 1.
  loc_402FA7: br.s loc_402FC9 - Branch to target, short form loc_402FC9
  loc_402FA9: ldloc.2 - Load local variable 2 onto stack.
  loc_402FAA: push Me
  loc_402FAB: push cadena
  loc_402FAC: ldloc.1   - Load local variable 1 onto stack.
  loc_402FAD: ldc.i4.1 - Push 1 onto the stack as int32.
  loc_402FAE: callvirt Substring
  loc_402FB3: push cadena
  loc_402FB4: callvirt get_Length
  loc_402FB9: ldloc.1 - Load local variable 1 onto stack.
  loc_402FBA: callvirt DesEncriptarCaracter
  loc_402FBF: call Concat
  loc_402FC4: stloc.2 - Pop a value from stack into local variable 2.
  loc_402FC5: ldloc.1 - Load local variable 1 onto stack.
  loc_402FC6: ldc.i4.1 - Push 1 onto the stack as int32.
  loc_402FC7: add.ovf - Add signed integer values with overflow check.
  loc_402FC8: stloc.1 - Pop a value from stack into local variable 1.
  loc_402FC9: ' Referenced from: 402FA7
  loc_402FC9: ldloc.1 - Load local variable 1 onto stack.
  loc_402FCA: ldloc.3 - Load local variable 3 onto stack.
  loc_402FCB: ble.s loc_4030A9 - Branch to target if less than or equal to, short form.
  loc_402FCD: ldloc.2 - Load local variable 2 onto stack.
  loc_402FCE: ret








DesEncriptarCaracter

  Code: FatFormat
  Start: 402FDC
  Size: 136
  Flag: InitLocals
  Max Stack: 3
  Local Variables: 11000021

  loc_402FDC: push Me
  loc_402FDD: ldfld Patron_encripta
  loc_402FE2: push caracter
  loc_402FE3: callvirt IndexOf
  loc_402FE8: ldc.i4.m1ldc.i4.M1
  loc_402FE9: beq.s loc_403062
  loc_402FEB: push Me
  loc_402FEC: ldfld Patron_encripta
  loc_402FF1: push caracter
  loc_402FF2: callvirt IndexOf
  loc_402FF7: push variable
  loc_402FF8: sub.ovf
  loc_402FF9: push a_indice
  loc_402FFA: sub.ovf
  loc_402FFB: ldc.i4.0
  loc_402FFC: ble.s loc_40301D
  loc_402FFE: push Me
  loc_402FFF: ldfld Patron_encripta
  loc_403004: push caracter
  loc_403005: callvirt IndexOf
  loc_40300A: push variable
  loc_40300B: sub.ovf
  loc_40300C: push a_indice
  loc_40300D: sub.ovf
  loc_40300E: push Me
  loc_40300F: ldfld Patron_encripta
  loc_403014: callvirt get_Length
  loc_403019: rem
  loc_40301A: stloc.1
  loc_40301B: br.s loc_403046
  loc_40301D: ' Referenced from: 402FFC
  loc_40301D: push Me
  loc_40301E: ldfld patron_busqueda
  loc_403023: callvirt get_Length
  loc_403028: push Me
  loc_403029: ldfld Patron_encripta
  loc_40302E: push caracter
  loc_40302F: callvirt IndexOf
  loc_403034: push variable
  loc_403035: sub.ovf
  loc_403036: push a_indice
  loc_403037: sub.ovf
  loc_403038: push Me
  loc_403039: ldfld Patron_encripta
  loc_40303E: callvirt get_Length
  loc_403043: rem
  loc_403044: add.ovf
  loc_403045: stloc.1
  loc_403046: ' Referenced from: 40301B
  loc_403046: ldloc.1
  loc_403047: push Me
  loc_403048: ldfld Patron_encripta
  loc_40304D: callvirt get_Length
  loc_403052: rem
  loc_403053: stloc.1
  loc_403054: push Me
  loc_403055: ldfld patron_busqueda
  loc_40305A: ldloc.1
  loc_40305B: ldc.i4.1
  loc_40305C: callvirt Substring
  loc_403061: ret
  loc_403062: ' Referenced from: 402FE9
  loc_403062: push caracter
  loc_403063: ret


Me lo puse a analizar para hacer un desencriptor en python, pero......no hizo falta mucho análisis. 
El codigo utilizado por el programador del troyano es un cut & paste del siguiente codigo en VB.
(es Calcado 100%)

http://www.devjoker.com/print/Articulos/2/Articulos.aspx

Igualmente arme el desencriptor... en python, para el que lo quiera probar.


#Decode data Gusanito
# -*- coding: iso-8859-15 -*-
base =       'ABCDEFGHIJKLMNÑOPQRSTVWXYZ\\abcdefg:.hijklmnñopqrstvwxyz1234567890';
patron_dec = 'ÑPbQ9GsWAFVtvM7:g1JlX6IDwhC3qBSTmOnñkLrYKNRxopij5.Za84eHf\Eycd0z2';

cadena  =    "icdE5//oEZW4.Ñ\cÑEEcMQÑV92z/wl//qD-1DtDu:1ñ/CTJhwR/orñYLmZ/NnZ5_Ed5c0ppaZHa"; #cadena a desencriptar

#cadena  =    'x\EHp//VtvÑHd4d4syeGQ/_7bzFÑJ/2Q:vJ/AVvAuDO/CT6Cm/Bn3/NoñN._jZNjHrHfpo.p';
salida = '';
def decc(caracter, variable, indice): 
    if patron_dec.find(caracter) <> - 1 :
                if ((patron_dec.find(caracter)) - variable - indice) > 0:
                        indice = ((patron_dec.find(caracter)) - variable - indice) % (len(patron_dec))
                        
                else:
                        indice = ((len(base)) + ((((patron_dec.find(caracter)) - variable - indice)) % (len(patron_dec))))
                indice = (indice % (len(patron_dec)))
                caracter = base[indice]
                                               
    else:
         caracter = caracter;
    
    return caracter;
              
length = len(cadena);
for i in range(length):
           salida += decc(cadena[i],i,length);
       
print salida;  






La cadena 

icdE5//oEZW4.Ñ\cÑEEcMQÑV92z/wl//qD-1DtDu:1ñ/CTJhwR/orñYLmZ/NnZ5_Ed5c0ppaZHa"

desencripta como:
http://alexfang.kedesign.ca/wp//wp-includes/images/smilies/icom_twisted.gif



La cadena:

x\EHp//VtvÑHd4d4syeGQ/_7bzFÑJ/2Q:vJ/AVvAuDO/CT6Cm/Bn3/NoñN._jZNjHrHfpo.p"

desencripta como:
http://777singles.com/_themes/admin/default/login/img/print_printerr.gif


los .GIF en realidad son archivos .TXT


69.194.196.3 www.viabcp.com
69.194.196.3 viabcp.com
69.194.196.3 bcpzonaseguras.viabcp.com
69.194.196.3 www.bbvabancocontinental.com
69.194.196.3 bbvabancocontinental.com
69.194.196.3 bn.com.pe
69.194.196.3 www.bn.com.pe
69.194.196.3 www.bancochile.cl
69.194.196.3 ww3.bancochile.cl





Es todo por el momento.

@Dkavalanche  2012




viernes, 27 de enero de 2012

Dorkbot / NgrBot  

Hoy voy a analizar un troyano que me enviaron a mi casilla de correo, se trata nada mas y nada menos que de Dorkbot, uno de los troyanos mas difundido en Argentina.
Su éxito se debe a que es muy fácil armarse una Botnet con el, no requiere de muchos conocimientos técnicos, ni una infraestructura muy grande, al contrario de lo que puede ser Zeus o Spyeye.
Dorkbot, es una  botnet basada en IRC (Internet Relay Chat), es decir que el troyano es un cliente IRC el cual se conecta a un canal en particular creado por el botmaster a la espera de instrucciones, estas son impartidas utilizando el método "push", lo que le permite tener un control total de todas las maquinas infectadas en tiempo real.

Que hace Dorkbot

  • Ataques de denegación de servicio DDoS.
  • Bloqueo de direcciones IP (descarga de antivirus, actualizaciones, etc)
  • Redirección a sitios de Phishing, (host poisoning).
  • Descarga y ejecución de cualquier tipo de programa.
  • Matar procesos de Antivirus o programas, monitor de descargas (Ruskill).
  • Propagación vía mensajeros del tipo Msn, Pidgin,  Facebook, etc.
  • Robo de credenciales de sitios web, Hotmail, Facebook, etc.
  • Robo de credenciales de clientes FTP.
  • Se inyecta en los siguientes procesos: alg.exe; chrome.exe; csrss.exe; explorer.exe; firefox.exe; flock.exe; ieuser.exe; iexplore.exe; msmsgs.exe; msnmsgr.exe; opera.exe; pidgin.exe; services.exe; smss.exe; spoolsv.exe; svchost.exe; winlogon.exe; wlcomm.exe; wuauclt.exe

Módulos

Rootkit - Para ocultarse y no ser detectado
RusKill - Monitor de archivos descargados, puede sobre escribirlos y deletarlos en cada reboot.
Proactive Defense - Defensa contra otras amenazas o antivirus.
Dns Modifier - Este modulo bloquea y redirige IP/Domains.
SYN Flood - DDoS.
UDP Flood - DDoS.
Internet Explorer Loging Grabber - Este modulo hace un hook sobre wininet.dll y analiza cada método  POST utilizado a la espera de ingreso de usuario / password, capturando on the fly.
Firefox Grabber - Al igual que el modulo anterior hace un hook de nspr4.dll para el robo de usuarios y passwords.
Ftp Grabber - Para el robo de credenciales de FTP.
MSN Spread - Propagación vía mensajeros instantáneos.


Análisis del caso.


Recibo el siguiente correo a mi cuenta de mail, a decir verdad lo veo bastante interesante...
pero bueh... a la chica en cuestión no la conozco, así que se trata de un engaño mas para atrapar algún incauto....

A dar click en el.... link... se descarga un archivo ejecutable con un .icon de flash.





hxxp://www.endenter.com/wp-content/video.Facebook.com/Video-Melissa-Desnuda.exe

Un escaneo rápido arroja el siguiente resultado en Virustotal.com

SHA256: 3e8f534f500cba630e9f6fd01b55349f16584e64e0b5d7bf7ff4920e49588cde
Detection ratio: 4 / 43



GDataWin32:VBCrypt-FY20120127
IkarusWin32.VBCrypt

Análisis Estático.


Se trata de código ofuscado en VB, así que hay que echarle mano al Ollydbg para desempaquetarlo.

Aquí el resultado.


Se puede notar claramente los Strings utilizados para la captura de Password de sitios Web y el Rushkill.




String en el que se puede observar la utilización de \\.\PHISICALDRIVE, y una puteada para los crackers que podrían estar reservando el código.... xD



Strings de las Webs de los antivirus, para denegar el acceso a ellos.



String de donde realiza Dns Query.
http://api.wipmania.com



Analisis Dinamico (PC Infectada)

Utilización de un Sniffer para monitorear el trafico de red y Gmer .


Aquí podemos observar la comunicación que realiza vía IRC .



En rosa se puede ver el MSN Spread, enviando distintos mensajes via msn con links a descargas del troyano

En gris se puede ver la actualización del bot, desde una web comprometida, indicando el nombre que tendrá y donde se descargara en la PC.



Descarga de un ejecutable.




Con Gmer podemos observar el troyano oculto utilizando técnicas de Rootkit.


Los archivos  31.tmp y 57.tmp también eran dos versiones de Dorkbot que fueron actualizadas por el botmaster.


Algo interesante es el siguiente envío de datos para realizar un pharming hacia un sitio de phishing de bancos Peruanos.







Eso es todo... hasta la próxima.

@Dkavalanche  2012

miércoles, 25 de enero de 2012

Postal virtual con sorpresa...mmm y que sorpresa!


Las postales virtuales son un método utilizado frecuentemente por los cybercriminales para poder
engañar mediante ingeniería social a los desprevenidos e infectarlos con software malicioso.

En el día de hoy me llego un correo fraudulento que utiliza este tipo de ardid.






Si clickeamos cualquiera de los links nos llevara a otra pagina que simula ser una web de postales muy conocida..
Esta web requerirá instalar una nueva versión del adobe flash player para poder ver la postal, lo cual sin mas ni menos, se trata de un troyano.


















Link del php.
hxxp://photopaq.com/actualidad/actualizacion/adobe_flash/Adobe_flash_player.php

Download del troyano.
hxxp://photopaq.com/actualidad/actualizacion/adobe_flash/Adobe_flash_player.exe


El examen de Virus Total nos entrega el siguiente resultado:

SHA256: 3c719eb459876eee85556c3f2b3128c643584d9ec01c5a5c7871228e3a0af9df
Detection ratio: 13 / 42





Haciendo un examen mas exhaustivo en una V.M. con ayuda de OllyDbg y otras herramientas, llego a la conclusión que se trata de un troyano pertenece a la Botnet V0lks. 



0015FD04  62 00 79 00 76 00 4F 00  b.y.v.O.
0015FD0C  6C 00 6B                 l.k


0012FA04  |0015FC2C  ASCII "byvOlk"



Desencriptado de la URL del Control Panel de la Botnet, dentro del cuerpo del troyano:

0016002C  9D 07 18 00 5A 00 00 00   .Z...
00160034  68 00 74 00 74 00 70 00  h.t.t.p.
0016003C  3A 00 2F 00 2F 00 62 00  :././.b.
00160044  61 00 73 00 74 00 65 00  a.s.t.e.
0016004C  6E 00 79 00 63 00 68 00  n.y.c.h.
00160054  69 00 6E 00 6F 00 61 00  i.n.o.a.
0016005C  6D 00 6F 00 72 00 65 00  m.o.r.e.
00160064  73 00 66 00 6F 00 72 00  s.f.o.r.
0016006C  65 00 76 00 65 00 72 00  e.v.e.r.
00160074  2E 00 63 00 6F 00 6D 00  ..c.o.m.
0016007C  2F 00 49 00 6E 00 73 00  /.I.n.s.
00160084  74 00 50 00 61 00 6E 00  t.P.a.n.
0016008C  65 00 00 00              e...

C&C Bot Panel
http://bastenychinoamoresforever.com/InstPanel/















Modificaciones del Registro para auto-ejecutarse en cada inicio del sistema:

HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Ru\Microsofts: "C:\WINDOWS\system\csrcs.exe"


El troyano una vez instalado en el sistema, se comunica con el C&C a la espera de comandos, uno de ellos es cambiar el archivo .host de la pc, para poder redireccionar al usuario a una web fraudulenta sin que este lo sepa. 
En este caso se efectúa un pharming sobre bancos del Perú.



Host Pharming.


199.119.226.67 viabcp.com.pe
199.119.226.67 www.viabcp.com.pe
199.119.226.67 www.viabcp.com
199.119.226.67 viabcp.com
199.119.226.67 bn.com.pe
199.119.226.67 www.bn.com.peBotVolk


Eso fue todo.

Hasta la próxima.

@Dkavalanche 2012

 Hola, me mudé a medium .... nos vemos!!! FELIZ 2022!!!