La campaña de malvertising del Grupo Kovter expone a millones de personas a potenciales ataques de malware y fraudes

Share with your network!

Resumen general

Los investigadores de Proofpoint detectaron recientemente un ataque de malvertising (o publicidad maliciosa) a gran escala perpetrado por el grupo conocido como KovCoreG, conocidos por distribuir el malware de anuncios fraudulentos llamado Kovter y por ser los cabecillas del modelo de afiliación que distribuye el Kovter más ampliamente. Esta cadena de ataque dejó al descubierto a millones de víctimas potenciales en los EE. UU., Canadá, el Reino Unido y Australia, utilizando para ello ligeras variaciones de un mecanismo de actualizaciones falsas de navegador que funcionó en los tres principales navegadores web usados en Windows. El ataque ha estado activo por más de un año y continúa haciendo estragos en otros lugares, pero esta trayectoria de infección específica se desactivó cuando el operador del sitio y la red de anuncios fueron notificados de la actividad.

Antecedentes

A pesar de los drásticos descensos en la actividad de los kits de exploits durante el año pasado, el malvertising sigue siendo una fuente de ingresos atractiva para actores que pueden lograr una escala de aplicación lo suficientemente grande y entregar el malware eficazmente en un entorno en el que las máquinas vulnerables son cada vez menos abundantes. Para aumentar sus tasas de infección y evadir mejor la detección por parte de proveedores e investigadores, los actores de amenazas se han volcado al uso de técnicas avanzadas de filtrado e ingeniería social en vez de usar los exploits indiscriminadamente.

Pocos grupos son capaces de infiltrarse en la cadena de anuncios de las páginas web más visitadas. Recientemente, hemos visto a algunos de estos grupos, incluyendo a SadClowns [1], GooNky [2], VirtualDonna [3] and AdGholas [4]. Si bien hemos hablado de Kovter anteriormente [14], no hemos tenido oportunidad de analizar en profundidad una operación del KovCoreG (alias MaxTDS por FoxIT InTELL). En este artículo se habla de una reciente campaña de KovCoreG y se describe lo que se sabe del estado actual de su muy activo mecanismo de ingeniería social [5-11].

La cadena de infección

La cadena de infección en esta campaña apareció en PornHub (que ocupa la posición #21 de Alexa para los EE. UU. y la posición #38 a nivel mundial al momento de escribir este documento), y abusaba de la red de anuncios de Traffic Junky. Es importante resaltar que tanto PornHub como Traffic Junky actuaron rápidamente para remediar esta amenaza al recibir la notificación.

Estudiamos tres casos de la cadena en Windows: Chrome, Firefox y Microsoft Edge/Internet Explorer (Figura 1). Hablaremos en detalle de la variante de Chrome, pero los tres casos operan de manera similar.

 

Ejemplo de plantillas de ingeniería social de Kovter.

Figura 1: las tres plantillas de ingeniería social de KovCoreG que observamos

La Figura 2 muestra la cadena de infección completa de KovCoreG en PornHub mediante el “callback” de Kovter a su centro de comando y control (C&C).

 

Ejemplo de cadena de infección de Kovter en Pornhub.

Figura 2: 1 de octubre de 2017 - Cadena de infección completa de KovCoreG

La cadena comienza por un redireccionamiento malintencionado en avertizingms[.]com, que inserta una llamada alojada detrás de KeyCDN, una gran red de distribución de contenidos.

Parece que las impresiones del malvertising están restringidas por filtrados tanto geográficos como de ISP. Para los usuarios que superan estos filtros, la cadena entrega un paquete que contiene un JavaScript sumamente ofuscado, que es idéntico al utilizado por Neutrino y NeutrAds [15]. Sin embargo, debemos resaltar que no creemos que haya una conexión fuerte entre ambos grupos, más allá de compartir el código o un codificador común con un nuevo cliente/socio.

 

Ejemplo de señuelo de Kovter.

Figura 3: KovCoreG enviando una llamada de señuelo al evadir visitantes o sistemas no deseados

El análisis de este primer paso está en curso, pero contiene varios componentes, incluyendo el filtrado y la determinación de huella digital del huso horario, dimensiones de la pantalla, idioma (usuario/navegador), longitud del historial de las ventanas actuales del navegador y creación de ID únicos mediante Mumour [12].

Las Figuras 4-6 muestran las falsas pantallas de actualización que aparecen durante la cadena de infección, invitando al usuario a abrir el archivo descargado. Los archivos varían dependiendo del navegador que se use.

 

Ejemplo de pantalla de actualización de Chrome fraudulenta.

Figura 4: la plantilla para navegador Chrome - KovCoreG simula una “Actualización crítica de Chrome” y entrega un archivo zip runme.js después de que el usuario hace clic

 

Pantalla de Firefox simulando actualización fraudulenta de Kovter.

Figura 5: la plantilla para navegador Firefox - KovCoreG simula una “Actualización crítica de Firefox” y entrega un archivo firefox-patch.js después de que el usuario hace clic

 

Ejemplo de actualización de Flash Player fraudulenta.

Figura 6: la plantilla para navegador Microsoft Edge/Internet Explorer - KovCoreG simula una “Actualización de Flash Player” falsa (“Su Flash Player podría estar desactualizado”) y entrega un archivo FlashPlayer.hta después de que el usuario hace clic

 

Ejemplo de archivo zip fraudulento.

 

Figura 7: archivo zip runme.js de una falsa actualización de Chrome; la víctima debe abrir explícitamente este archivo, porque la cadena no se basa en exploits

El archivo runme.js file asociado con la falsa actualización de Chrome lleva al mismo servidor que aloja el mecanismo de ingeniería social. Esto añade una capa adicional de protección contra la reproducción o el estudio. Los analistas no podrán llegar al siguiente paso en la cadena si su IP no ha hecho “check-in” en el host del malvertising. Esto hacer muy poco probable que se pueda ejecutar un JavaScript individualmente, y ofrece la carga útil en un entorno de pruebas. Esta es la causa más probable de que el componente de la cadena no se haya documentado antes.

Después, el JavaScript descarga los archivos “flv” y “mp4”. El archivo “flv” consta de los dígitos “704” seguidos por una clave rc4. El archivo “mp4” es una carga útil intermedia, encriptada con la clave rc4 del archivo “flv”, que posteriormente se codifica hexadecimalmente. En este caso, el “704” seguramente sea el ID interno de la campaña.

La carga útil intermedia en sí es más JavaScript, que en este caso incluye un script codificado de Powershell que incrusta un shellcode. Este shellcode descarga y lanza un archivo “avi”, que es la carga útil de Kovter, con una codificación RC4 que, en ese pase en particular, usa la clave “hxXRKLVPuRrkRwuaPa” almacenada en el shellcode.

Kovter es conocido, entre otras cosas, por su singular mecanismo de persistencia. Las Figuras 8-10 muestran, respectivamente, un asiento de registro y un acceso directo al archivo .bat, y al archivo .bat en sí. Estos son engranajes del mecanismo, que han sido descritos anteriormente por Microsoft [13].

 

Ejemplo de entrada de registro de Kovter.

Figura 8: artefacto del mecanismo de persistencia de Kovter (entrada de registro)

 

Ejemplo de acceso directo al archivo .bat de Kovter.

Figura 9: artefacto del mecanismo de persistencia de Kovter (acceso directo al archivo .bat)

 

Ejemplo de mecanismo de persistencia de Kovter.

Figura 10: artefacto del mecanismo de persistencia de Kovter

 

Conclusión

La combinación de grandes campañas de publicidad maliciosa en páginas web de muy alto ranking con sofisticados mecanismos de ingeniería social que convencen a los usuarios de que se infecten a sí mismos implican que la potencial exposición al malware es bastante elevada, llegando a millones de internautas. Una vez más, podemos ver actores aprovechándose del factor humano mientras adaptan las herramientas y enfoques a un entorno en el que los ataques tradicionales de kits de exploit son menos eficaces. Si bien en este caso la carga útil es malware de fraude con anuncios, también podría haber sido ransomware, un ladrón de información o cualquier otro tipo de malware. Pero más allá de esto, los actores de amenazas están siguiendo al dinero y buscando combinaciones más eficaces de ingeniería social, selección de objetivos y prefiltrado para infectar a nuevas víctimas a gran escala.

 

Agradecimientos:

Queremos agradecer a

  • @Malc0de por su colaboración en este estudio.
  • Pornhub, KeyCDN y Traffic Junky por su rápida acción al ser notificados.

 

Referencias

[1] https://www.proofpoint.com/us/threat-insight/post/video-malvertising-bringing-new-risks-high-profile-sites

[2] https://www.proofpoint.com/us/threat-insight/post/The-Shadow-Knows

[3] http://malware.dontneedcoffee.com/2015/10/a-doubleclick-https-open-redirect-used.html

[4] https://www.proofpoint.com/us/threat-insight/post/massive-adgholas-malvertising-campaigns-use-steganography-and-file-whitelisting-to-hide-in-plain-sight

[5] https://support.mozilla.org/en-US/kb/i-found-fake-firefox-update

[6] https://twitter.com/compvla/status/810923447601790976

[7] https://productforums.google.com/forum/#!topic/chrome/mLKWHEAGBSo

[8] https://www.bleepingcomputer.com/news/security/skype-malvertising-campaign-pushes-fake-flash-player/

[9] https://twitter.com/JAMESWT_MHT/status/867678039798403072

[10] https://bartblaze.blogspot.co.uk/2017/09/malicious-adclick-networks-common-or.html

[11] http://executemalware.com/?p=432

[12] https://andywalpole.me/blog/140739/using-javascript-create-guid-from-users-browser-information

[13] https://blogs.technet.microsoft.com/mmpc/2016/07/22/kovter-becomes-almost-file-less-creates-a-new-file-type-and-gets-some-new-certificates/

[14] https://www.proofpoint.com/us/threat-insight/post/spike-kovter-ad-fraud-malware-clever-macro-trick

[15] https://www.proofpoint.com/us/threat-insight/post/microsoft-patches-CVE-2016-3298-second-information-disclosure-zero-day

 

Indicadores de compromiso (IOC, del inglés “Indicators Of Compromise”)

IOC

IOC Type

Description

www.advertizingms[.com|204.155.152.173

dominio|IP

Servidor Epom sospechoso 2017-10-01

*-6949.kxcdn.com

dominios

Subdominio de un cliente rebelde 2017-10-01

phohww11888[.org|192.129.215.155

dominio|IP

KovCoreG soceng host 2017-10-01

cipaewallsandfloors[.net|192.129.162.107

dominio|IP

KovCoreG soceng host 2017-10-01

b8ad6ce352f502e6c9d2b47db7d2e72eb3c04747cef552b17bb2e5056d6778b9

sha256

            T016d6n7t96x2hc43r5f3u6gs61d.zip (runme.js en zip)  2017-10-01

 

4ebc6eb334656403853b51ac42fb932a8ee14c96d3db72bca3ab92fe39657db3

sha256

FlashPlayer.hta

2017-10-01

a9efd709d60e5c3f0b2d51202d7621e35ba983e24aedc9fba54fb7b9aae14f35

sha256

Firefox-patch.js

2017-10-01

 

0e4763d4f9687cb88f198af8cfce4bfb7148b5b7ca6dc02061b0baff253eea12

sha256

Kovter 2017-10-01

 

f449dbfba228ad4b70c636b8c46e0bff1db9139d0ec92337883f89fbdaff225e

sha256

Kovter 2017-10-01

 

Firmas Suricata/Snort ET y ETPRO

2823606 || ETPRO CURRENT_EVENTS Posible redireccionamiento malintencionado a EK Dec 04 2016

2022636 || ET INFO SUSPICIOUS Archivo JS único dentro de una descarga ZIP (observado como cebo en campañas de malspam)

2018358 || ET INFO GENERIC SUSPICIOUS POST a formato “Dotted Quad” con navegador falso 1

2810582 || ETPRO TROJAN WIN32/KOVTER.B “Check-in” 2

 

Apéndice A:

Ejemplo de configuración de Kovter:

cp1: 198.106.131.66:80,128.227.37.159:53635,145.88.81.116:80,19.240.49.245:80,53.92.175.216:80,162.162.89.123:80,32.229.45.97:443,4.225.180.41:8080,238.186.215.63:80,38.82.31.87:80,112.140.163.32:80,45.193.7.134:80,175.165.34.220:80,241.224.231.165:80,104.147.195.64:80,240.101.37.16:8080,108.127.72.16:443,171.61.97.177:443,157.97.103.190:443,110.176.29.85:80,38.189.233.232:80,217.98.225.232:49411,77.104.102.93:80,18.153.103.194:80,4.36.195.194:80,49.115.126.134:80,163.67.178.140:443,111.102.161.80:80,191.157.182.37:80,54.147.36.248:49420,29.178.233.125:26103,93.250.105.38:8080,172.216.42.235:443,143.140.150.221:80,52.147.112.46:80,165.192.115.158:80,154.186.98.132:443,69.224.50.174:80,207.90.221.249:80,37.137.209.187:80,29.238.249.141:80,74.51.220.188:80,140.87.139.238:8080,194.52.186.243:8080,192.195.60.158:8080,129.194.69.83:443,171.111.108.165:80,239.46.99.172:41118,3.137.221.221:57410,18.151.63.243:80,2.47.245.189:80,184.3.3.54:443,113.162.84.109:443,67.155.140.238:80,124.241.35.89:80,109.107.102.171:8080,189.173.140.179:80,60.108.109.62:80,28.175.68.111:443,109.177.183.248:80,80.116.145.114:443,95.223.57.196:8080,150.130.56.35:80,162.94.161.16:80,68.43.75.135:443,103.243.74.30:80,110.97.122.223:56537,217.190.103.158:80,252.32.129.31:80,36.125.246.51:80,59.93.100.193:80,181.65.232.162:51668,86.4.165.53:80,126.243.153.28:80,150.60.190.180:80,225.50.135.20:80,194.113.174.132:80,121.57.168.97:80,210.183.222.119:8080,245.224.169.18:22549,63.77.218.243:80,188.37.101.207:8080,40.65.30.171:80,151.227.80.248:443,35.175.158.154:443,174.143.123.87:443,152.150.237.115:443,203.47.174.49:80,88.63.60.3:24597,230.55.202.166:52832,122.68.242.21:80,144.73.35.41:40286,17.156.104.220:8080,22.14.201.51:443,9.110.104.239:80,79.38.11.244:80,132.57.113.153:80,243.42.115.22:80,82.39.237.185:80,184.206.16.130:80,117.138.112.220:80,176.44.160.187:80,31.64.88.144:80,89.110.147.2:43937,190.114.255.205:26337,185.120.14.76:443,142.58.189.80:8080,193.146.45.23:33617,98.102.72.235:443,85.25.147.17:443,83.244.194.235:80,23.238.20.223:25153,148.243.122.57:443,190.95.194.164:443,130.131.2.244:8080,84.70.191.66:80,250.206.210.124:50346,71.7.64.36:8080,239.79.33.171:80,64.234.199.207:80,74.83.197.63:443,133.172.91.132:23896,85.82.64.209:80,135.216.97.170:80,81.248.122.251:80,185.230.47.137:80,121.219.110.183:443,135.60.116.225:443,225.55.17.34:443,50.168.224.146:80,58.227.76.179:80,179.108.196.226:8080,91.208.219.18:37136,98.77.12.68:80,237.123.29.16:80,79.183.99.225:80,156.196.85.80:80,9.187.104.234:443,213.70.128.176:443,25.19.163.36:80,175.18.209.204:80,84.27.216.183:80,84.192.55.163:55289,64.95.202.42:80,159.111.143.80:80,167.99.106.203:443,26.220.139.229:443,1.213.151.251:54905,234.187.238.142:443,46.236.232.87:80,198.139.215.141:41121,58.246.254.243:80,218.127.244.216:80,245.173.244.240:80,

cp1cptm: 30

cptmkey: e086aa137fa19f67d27b39d0eca18610

keypass: 65537:19522997575054907426554839772202893949064667436330012851486601573672578014023529616671665555927323094351879155591436487128820172552469735659517542751735426712295686609130477424093114196023150427769866831977132493325789625582690673761599383991535000872703053188107144540678963887449541977716556272360743912300213554790082676478081366256001689695367664109647204683040472995564506452532881927504362622488073259160546226002887661491089819185150097820082274803050015187526359970203832566435923214708589228221527050531432943671054442357162433286543257082235512170086631319042116775032280820629831168914542642499106397564761

passdebug: 0

debugelg: 1

elgdl_sl: 0

dl_slb_dll: 0

b_dllnonul: http://109.120.179.92/upload2.php

nonuldnet32: http://download.microsoft.com/download/0/8/c/08c19fa4-4c4f-4ffb-9d6c-150906578c9e/NetFx20SP1_x86.exe

dnet32dnet64: http://download.microsoft.com/download/9/8/6/98610406-c2b7-45a4-bdc3-9db1b1c5f7e2/NetFx20SP1_x64.exe

dnet64pshellxp: http://download.microsoft.com/download/E/C/E/ECE99583-2003-455D-B681-68DB610B44A4/WindowsXP-KB968930-x86-ENG.exe

pshellxppshellvistax32: http://download.microsoft.com/download/A/7/5/A75BC017-63CE-47D6-8FA4-AFB5C21BAC54/Windows6.0-KB968930-x86.msu

pshellvistax32pshellvistax64: http://download.microsoft.com/download/3/C/8/3C8CF51E-1D9D-4DAA-AAEA-5C48D1CD055C/Windows6.0-KB968930-x64.msu

pshellvistax64pshell2k3x32: http://download.microsoft.com/download/1/1/7/117FB25C-BB2D-41E1-B01E-0FEB0BC72C30/WindowsServer2003-KB968930-x86-ENG.exe

pshell2k3x32pshell2k3x64: http://download.microsoft.com/download/B/D/9/BD9BB1FF-6609-4B10-9334-6D0C58066AA7/WindowsServer2003-KB968930-x64-ENG.exe

pshell2k3x64cl_fv: 0

cl_fvfl_fu: https://fpdownload.macromedia.com/get/flashplayer/current/licensing/win/install_flash_player_24_active_x.exe

fl_fumainanti: DD1D:1:DD1DDD2D:1:DD2DDD3D:1:DD3DDD4D:1:DD4DDD5D:0:DD5DDD6D:1:DD6DDD7D:1:DD7DDD8D:1:DD8DDD9D:1:DD9DDD10D:1:DD10DDD11D:0:DD11DDD12D:1:DD12DDD13D:1:DD13DDD14D:1:DD14DDD15D:1:DD15DDD16D:1:DD16DDD17D:1:DD17Dal:http://109.120.179.92/upload.php:al