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
1 comentario:
Gracias por avisar. Yo utilizo las postales de http://www.postaldeamor.com/ y me encanta!!
Saludos
Publicar un comentario