Nueva Funcionalidad De La Botnet Stantinko: Minado De Criptomonedas
La botnet Stantinko (una campaña de adware masiva iniciada en 2012) ha expandido sus funcionalidades para añadir una nueva forma de obtener beneficios a través de los equipos de los que toma el control.
Esta botnet cuenta ya con aproximadamente medio millón de máquinas – las cuales se conoce que están activas desde al menos el año 2012 y que tienen como objetivo principal a los usuarios de Rusia, Ucrania, Bielorrusia y Kazajstán – ahora ha implementado un módulo para el minado de criptomonedas. Monero, criptomoneda cuya tasa de conversión ha oscilado entre los 50$US y 100$US a lo largo de este 2019, ha sido el medio de monetización de la botnet desde al menos agosto de 2018. Antes de eso, dicha botnet presentaba anuncios para estafar a las víctimas, que al pulsar sobre los mismos accedían a los fraudes en redes sociales y ataques de robo de contraseñas.
La característica más llamativa del nuevo módulo de criptominado es la forma en la que está ofuscado para evadir los sistemas de análisis y así evitar ser detectado. Debido al uso de ofuscación a nivel de código con cierto grado de aleatoriedad, y el hecho de que los creadores de Stantinko compilan este módulo específicamente para cada nueva víctima, las muestras del módulo son completamente diferentes entre sí.
Modificación en el módulo de criptominado
El módulo de minado de criptomonedas de Stantinko, el cual hace uso de la gran mayoría de los recursos de la máquina comprometida al minar criptomonedas, es una versión ampliamente modificada del módulo de minado open-source xmr-stak. Todas las cadenas innecesarias, e incluso funcionalidades completas, han sido eliminadas en un intento de evadir los sistemas de detección. Las cadenas y funcionalidades restantes han sido eficazmente ofuscadas.
Uso de proxies de minado
CoinMiner.Stantinko no se comunica con su pool de minería directamente, sino vía proxies cuyas direcciones IP se adquieren de las descripciones de vídeos de Youtube con el propósito de almacenar C&Cs cifrados.
Las direcciones IP de proxies de minado se encuentran en formato hexadecimal. Por ejemplo, el vídeo que aparece en la siguiente imagen tiene como descripción «03101f1712dec626», lo que se corresponde con dos direcciones IP en formato hexadecimal (03101f17 corresponde a 3.16.31[.]23 en notación decimal con puntos, y 12dec626 es 18.222.198[.]38). Los investigadores de ESET informaban de que a la hora de escribir el artículo en la web de WeLiveSecurity el formato había sido ligeramente ajustado. Actualmente las direcciones IP se encuentran representadas entre los signos «!!!!», lo cual simplifica el proceso de análisis de cadenas y prevenir posibles cambios en la estructura HTML del vídeo de Youtube lo que haría, en consecuencia, que el sistema de análisis dejase de funcionar.
En versiones anteriores del malware, la URL de Youtube era incluida directamente en el código del binario de CoinMiner.Stantinko. En contraste a esto, actualmente el módulo recibe un identificador de vídeo como parámetro de comando. Este parámetro es posteriormente usado para construir la URL de Youtube (https://www.youtube.com/watch?v=%PARAM%). El módulo de criptominado es ejecutado bien por el componente BEDS de Stantinko, o por el ejecutable rundll32.exe por medio de un archivo de procesamiento por lotes, con el módulo cargado en el sistema de archivos local (%TEMP%\%RANDOM%\%RANDOM_GUID%.dll).
Los investigadores de ESET dieron el aviso a Youtube y todos los vídeos partícipes de esta actividad fueron retirados de la plataforma.
Capacidades de criptominado
El módulo de criptominado se puede dividir en cuatro partes distintas, las cuales presentan diferentes funcionalidades. La parte principal ejecuta la función de criptominado, mientras que las otras partes del módulo son responsables de funciones adicionales:
- Cesar la actividad de otras actividades de criptominado que puedan existir previamente en el equipo afectado.
- Detectar software de seguridad.
- Suspender la función de criptominado propia si el equipo tiene un nivel bajo de batería, o cuando se detecta un administrador de tareas para así prevenir la detección del usuario.
Criptominado
En el núcleo de la funcionalidad de criptominado se encuentra el proceso de hashing y la comunicación con el proxy. El método de obtención de la lista de proxies de minado ya se ha descrito con anterioridad; CoinMiner.Stantinko establece la comunicación con el primer proxy de minado que responde (es decir, que está «vivo»).
La comunicación tiene lugar mediante protocolo TCP y se cifra con RC4 y una llave que se corresponde con los 26 primeros caracteres del número pi (incluyendo la coma y cifrados estos caracteres en la cadena “3,141592653589793238462643“) y luego con base 64; se utiliza la misma clave en todas las muestras detectadas por ESET.
El código del algoritmo de hash se descarga a través del proxy de minado al principio de la comunicación y se carga en la memoria – ya sea directamente o, en versiones anteriores, de la librería libcr64.dll que se incluye primeramente en el disco.
Descargar el código de hash en cada ejecución del binario permite que los creadores de Stantinko cambien dicho código sobre la marcha. Este cambio hace posible, por ejemplo, adaptarse a los ajustes de los algoritmos en criptomonedas existentes y pasar a minar otras criptomonedas con el fin de, quizás, minar la que les pueda proporcionar mayores beneficios en el momento de la ejecución. La mayor ventaja de descargar la parte principal del módulo desde un servidor remoto y cargarlo directamente en la memoria es que esta parte del código nunca se almacena en el disco. Este ajuste adicional, el cual no está presente en la versión anterior, trata de dificultar la detección por parte de los sistemas de seguridad. A pesar de lo anterior, todas las muestras analizadas por los investigadores de ESET mostraban el minado de la criptomoneda Monero.
El algoritmo de hash utilizado era CryptoNight R. Sin embargo, debido a que existen varias criptomonedas que usan este algoritmo, dicen los investigadores que su reconocimiento no es suficiente por sí solo, sino que esto simplemente reduce la lista.
A diferencia del resto de CoinMiner.Stantinko, el algoritmo de hash no está ofuscado, ya que la ofuscación reduciría significativamente la velocidad del proceso de cálculo del hash y, por lo tanto, de toda la ejecución del binario en general y los beneficios obtenidos, aunque los creadores de Stantinko no dejaron a la vista ninguna cadena que contuviese información relevante.
Suspensión de otros procesos de criptominado
Este malware lleva a cabo una enumeración de los procesos en busca de otros módulos de criptominado. Si se encuentra alguno, Stantinko lo cancela por completo.
CoinMiner.Stantinko considera que un proceso es de criptominado si su línea de comando contiene una cadena en particular, o una combinación, la cual varía en cada muestra. Por ejemplo: minerd, minergate, xmr, cpservice, vidservice and stratum+tcp://, stratum://, -u and pool, “-u and pool, “-u and xmr, -u and xmr, -u and mining, “-u and mining, -encodedcommand and exe, –donate-level, windows and -c and cfgi, regsvr32 and /n and /s and /q, application data and exe, y, por último, appdata and exe.
Estas cadenas hacen referencia a una serie de módulos de criptominado que se listarán en el apartado de «Más información» de este artículo.
Prevención de detección
CoinMiner.Stantiko suspende temporalmente su propio minado si detecta que el equipo no está enchufado a la toma de corriente. Esta medida evita que se agote rápidamente la batería, lo cual podría llamar la atención del usuario.
Asimismo, suspende también temporalmente el minado si se detecta una aplicación de administración de tareas (un proceso llamado procexp64.exe, procexp.exe or taskmgr.exe).
El malware también escanea los procesos que están siendo ejecutados para detectar software de seguridad además de los mencionados administradores de tarea. Calcula el CRC-32 del nombre del proceso y luego lo comprueba con una lista de sumas de verificación CRC-32 incluidas en el código. En general, esta técnica puede ayudar a evadir la detección, ya que los nombres de procesos de esos productos de seguridad no están incluidos en el binario. A su vez, esto hace difícil para los analistas encontrar qué es lo que buscan los creadores el malware ya que hay que descifrar los hashes. Sin embargo, según los investigadores de ESET, usar una lista de nombres de procesos conocidos suele ser suficiente para determinar los hashes con exactitud.
Si hay una coincidencia con un CRC-32, dicho CRC se añade a un archivo de log (api-ms-win-crt-io-l1-1-0.dll). Este archivo es aparentemente exportado posteriormente por algún componente de Stantinko no detectado por el equipo de investigadores.
Ofuscación
Además de las funcionalidades de criptominado, CoinMiner.Stantinko destaca también por sus técnicas de ofuscación dirigidas a evitar la detección de los sistemas de seguridad que pueda haber en el equipo víctima, como ya se ha mencionado previamente.
Conclusiones
Stantinko es una muestra de un trabajo continuo de mejora por parte de sus creadores, quienes inicialmente llevaban a cabo ataques de diccionario distribuidos a sitios web que hacían uso de Joomla y WordPress para así obtener credenciales. El haber añadido una función de criptominado demuestra que los creadores del malware, lejos de dar su trabajo por finalizado, tienen intenciones de continuar innovando las funcionalidades que éste presenta con el objetivo de obtener los mayores beneficios posibles.
Ya que los principales métodos de infección por malware tienen lugar a través de la ingeniería social (campañas de phishing vía email, por ejemplo) y descargas en sitios P2P, se recomienda a los usuarios verificar la legitimidad de los sitios web a los que acceden y de los archivos descargados, así como analizar estos últimos una vez la descarga se haya completado ya que, aunque los binarios presenten técnicas de evasión de antivirus y otros softwares destinados a la seguridad de los equipos, estos últimos también se van actualizando con la información proporcionada por los investigadores de ciberseguridad para hacer la protección de los equipos más eficiente.
Indicadores de compromiso
- Nombres detectados por ESET:
- Win32/CoinMiner.Stantinko
- Win64/CoinMiner.Stantinko
- SHA-1: en este repositorio de GitHub se incluye una lista de más de 1.000 hashes.
- Nombres de los archivos:
- api-ms-win-crt-io-l1-1-0.dll
- libcr64.dll
- C:\Windows\TEMP\%RANDOM%\%RANDOM_GUID%.dll
- Mutex Name (Mutual Exclusion Name) y clave RC4: “3,141592653589793238462643”
- URLs de Youtube con datos de configuración de proxies de minado:
- https://www.youtube[.]com/watch?v=kS1jXg99WiM
- https://www.youtube[.]com/watch?v=70g4kw2iRGo
- https://www.youtube[.]com/watch?v=cAW1xEpyr7Y
- https://www.youtube[.]com/watch?v=6SSKQdE5Vjo
- https://www.youtube[.]com/watch?v=fACKZewW22M
- https://www.youtube[.]com/watch?v=FDQOa5zCv3s
- https://www.youtube[.]com/watch?v=TpyOURRvFmE
- https://www.youtube[.]com/watch?v=2fpiR4NIpsU
- https://www.youtube[.]com/watch?v=TwnD0Kp_Ohc
- https://www.youtube[.]com/watch?v=wJsbj8zPPNs
- Direcciones IP de los proxies de minado:
- 3.16.150[.]123
- 3.16.152[.]201
- 3.16.152[.]64
- 3.16.167[.]92
- 3.16.30[.]155
- 3.16.31[.]23
- 3.17.167[.]43
- 3.17.23[.]144
- 3.17.25[.]11
- 3.17.59[.]6
- 3.17.61[.]161
- 3.18.108[.]152
- 3.18.223[.]195
- 13.58.182[.]92
- 13.58.22[.]81
- 13.58.77[.]225
- 13.59.31[.]61
- 18.188.122[.]218
- 18.188.126[.]190
- 18.188.249[.]210
- 18.188.47[.]132
- 18.188.93[.]252
- 18.191.104[.]117
- 18.191.173[.]48
- 18.191.216[.]242
- 18.191.230[.]253
- 18.191.241[.]159
- 18.191.47[.]76
- 18.216.127[.]143
- 18.216.37[.]78
- 18.216.55[.]205
- 18.216.71[.]102
- 18.217.146[.]44
- 18.217.177[.]214
- 18.218.20[.]166
- 18.220.29[.]72
- 18.221.25[.]98
- 18.221.46[.]136
- 18.222.10[.]104
- 18.222.187[.]174
- 18.222.198[.]38
- 18.222.213[.]203
- 18.222.253[.]209
- 18.222.56[.]98
- 18.223.111[.]224
- 18.223.112[.]155
- 18.223.131[.]52
- 18.223.136[.]87
- 18.225.31[.]210
- 18.225.32[.]44
- 18.225.7[.]128
- 18.225.8[.]249
- 52.14.103[.]72
- 52.14.221[.]47
- 52.15.184[.]25
- 52.15.222[.]174
- Técnicas MITRE ATT&CK
- Sumas de verificación CRC-32 que verifica CoinMiner.Stantinko y los archivos equivalentes:
- 0xB18362C7: afwserv.exe
- 0x05838A63: ashdisp.exe
- 0x36C5019C: ashwebsv.exe
- 0xB3C17664: aswidsagent.exe
- 0x648E8307: avastsvc.exe
- 0x281AC78F: avastui.exe
- 0xAA0D8BF4: avgcsrva.exe
- 0x71B621D6: avgcsrvx.exe
- 0x7D6D668A: avgfws.exe
- 0x1EF12475: avgidsagent.exe
- 0x010B6C80: avgmfapx.exe
- 0x6E691216: avgnsa.exe
- 0xB5D2B834: avgnsx.exe
- 0x36602D00: avgnt.exe
- 0x222EBF57: avgrsa.exe
- 0xF9951575: avgrsx.exe
- 0x2377F90C: avgsvc.exe
- 0x37FAB74F: avgsvca.exe
- 0xEC411D6D: avgsvcx.exe
- 0x0BED9FA2: avgtray.exe
- 0x168022D0: avguard.exe
- 0x99BA6EAA: avgui.exe
- 0x7A77BA28: avguix.exe
- 0x0D22F74A: avgwdsvc.exe
- 0x98313E09: avira.servicehost.exe
- 0x507E7C15: avira.systray.exe
- 0xFF934F08: avp.exe
- 0x9AC5F806: avpui.exe
- 0xBD07F203: avshadow.exe
- 0x64FDC22A: avwebg7.exe
- 0x0BC69161: avwebgrd.exe
- 0xBACF2EAC: cureit.exe
- 0x8FDEA9A9: drwagntd.exe
- 0xE1856E76: drwagnui.exe
- 0xF9BF908E: drwcsd.exe
- 0xC84AB1DA: drwebcom.exe
- 0x183AA5AC: drwebupw.exe
- 0xAC255C5E: drwupsrv.exe
- 0x23B9BE14: dwantispam.exe
- 0xDAC9F2B7: dwarkdaemon.exe
- 0x7400E3CB: dwengine.exe
- 0x73982213: dwnetfilter.exe
- 0x1C6830BC: dwscanner.exe
- 0x86D81873: dwservice.exe
- 0xB1D6E120: dwwatcher.exe
- 0xD56C1E6F: egui.exe
- 0x69DD7DB4: ekrn.exe
- 0xFB1C0526: guardgui.exe
- 0x5BC1D859: ipmgui.exe
- 0x07711AAE: ksde.exe
- 0x479CB9C4: ksdeui.exe
- 0x6B026A91: nod32cc.exe
- 0xCFFC2DBB: nod32krn.exe
- 0x59B8DF4D: nod32kui.exe
- 0x998B5896: procexp.exe
- 0xF3EEEFA8: procexp64.exe
- 0x81C16803: sched.exe
- 0x31F6B864: spideragent.exe
- 0x822C2BA2: taskmgr.exe
- 0x092E6ADA: updrgui.exe
- 0x09375DFF: wsctool.exe
Más información:
Via: unaaldia.hispasec.com