La secuela del ransomware: formas alternativas de lucrar
Un día después de publicar nuestro descifrador No Ransom Campaign en la lucha contra el ransomware CoinVault, nos escribió Bart Blaze, un colega investigador de Panda. Muy gentilmente nos informó que existían nuevas variantes de este temible ransomware y ofrecía compartirlas con nosotros. Después de obtener los nuevos hashes MD5 de los archivos, nos pusimos a buscar más pistas, más archivos, y a analizar lo que ocultaban estas nuevas variantes: tres familias de programas maliciosos compartían asombrosas similitudes.
Al final nos encontramos con algunas interesantes sorpresas (para más detalles sobre nuestros descubrimientos, puedes seguir leyendo).
Sin embargo, lo mejor fue que, gracias a nuestro análisis, la Unidad nacional de delitos de alta tecnología de la policía holandesa logró capturar a dos sospechosos el pasado lunes.
La historia comienza con CoinVault
Nuestra búsqueda comenzó con el descubrimiento de la primera versión de CoinVault, en mayo de 2014 (ver tabla al final de este artículo, que contiene MD5s, otros hashes y más información). Curiosamente, esta muestra no se ejecutaba en cualquier ordenador, por lo que tuvimos que renunciar a un análisis más profundo de dicha versión.
Y de repente apareció Comhost
Dos meses después de que detectáramos la versión inicial de CoinVault, detectamos otras dos muestras casi idénticas. Los archivos sólo se diferenciaban por la forma en que el programa malicioso se descomprimía y ejecutaba desde los recursos del binario.
Ambos binarios tenían la misma carga, un ejecutable conocido como ‘comhost.exe’. Comhost era completamente diferente a CoinVault en cuanto a sus funciones. Mientras CoinVault pertenecía a la categoría de ransomware tradicional (hasta este punto, por lo menos), Comhost era más bien un ladrón de información. ¡Si estás impaciente por saber qué pasó, puedes saltar lo siguiente!
Una vez que se ejecutaba, el programa malicioso resolvía los dos nombres de dominio (que estaban especificados en su código) a direcciones IP. Después, iniciaba un detector de actividad en el teclado y un cronómetro. Una vez trascurrido el lapso determinado, comenzaba a buscar billeteras de bitcoins.
Es muy probable que los atacantes implementaran esta función debido a que la minería de bitcoins es cada vez más difícil.
Además, el programa malicioso podía ejecutar los comandos recibidos desde el C2.
Volviendo a CoinVault
Dos meses después, encontramos otro ejemplo de CoinVault. Esta vez el código del programa tenía impresionantes similitudes con Comhost. Por ejemplo, algunas funciones, como fixNOIPhosts() eran casi idénticas, lo que establecía un claro vínculo entre CoinVault y Comhost. El diseño del programa también era muy similar a Comhost.
Afortunadamente, los autores de este programa malicioso cometieron un pequeño error. En lugar de sobrescribir el archivo original con contenido encriptado, crearon un nuevo archivo en el mismo directorio con una extensión ._clf.
A continuación, el programa original se eliminaba invocando la función File.Delete(). A nivel interno, este método se implementó como una llamada a la función Win32Native.DeleteFile(). La función DeleteFile marcaba el archivo como eliminado en la entrada MFT. Esto significaba que las víctimas de CoinVault que se infectaron con esta versión específica del programa malicioso probablemente podrían recuperar archivos eliminados en la actividad forense (cuando no se habían realizado muchas actividades en el disco tras la eliminación del archivo).
La introducción de S.H.I.E.L.D Runner y otras funciones
Un mes después de la aparición de la última muestra de CoinVault, apareció una nueva versión de Comhost. Se trataba de la primera muestra que contenía “S.H.I.E.L.D Runner”. Hemos analizado la funcionalidad de este código en particular en un artículo previo: Pesadilla en la Calle Malware.
Aparentemente, los autores de este programa malicioso no estaban satisfechos con la anterior versión de Comhost.
Olvidaron añadir un detector de actividades del teclado (para detectar mayúsculas, etc.). Otra interesante función añadida era la capacidad de recopilar información sobre la solución antivirus y el navegador predeterminado, que después enviaba al C2. Sin embargo, la nueva función más interesante era la clase ActivecaptionWatcher, que permitía realizar capturas de pantalla y enviarlas al C2.
Mailspreader y ofuscación añadida
En noviembre de 2014 ya habíamos escrito sobre CoinVault: en el artículo analizábamos la muestra que había aparecido semanas antes después de la última versión de Comhost. Todas las muestras que aparecieron alrededor de esta fecha estaban ofuscadas con Confuser. Pero algo que omitimos en nuestro análisis fue una función que no logramos clasificar en aquel momento: la clase interna ‘emailDownloader’.
Esta clase contenía algunos códigos interesantes que necesitaban mayor análisis. Contenía referencias a varios archivos ejecutables, pero ¿dónde estaban? Y más importante aún, ¿qué papel desempeñaban en la infección?
Resulta que estos archivos eran descargados por un tercer programa malicioso de la familia CoinVault: el Mailspreader. La sección de recursos dentro del binario muestra que varios archivos venían embebidos, y los extrajimos para estudiarlos por separado.
El laconismo del código es un rasgo común en todos los módulos que encontramos en las muestras de CoinVault. La función era sencilla pero más que suficiente para lograr los resultados deseados. Creaba un hilo y lo iniciaba para utilizar todos los beneficios que ofrecía el archivo ‘MailSpreader.exe’.
Como mencionamos anteriormente, el C2 que descubrimos es el mismo usado por otra muestra de características similares (hash MD5: AF0E5A5DF0BE279AA517E2FD65CADD5C), lo que demuestra una vez más la vinculación entre CoinVault y Mailspreader.
Mediante estos archivos ejecutables y una manera directa de hacer que la infección sea ‘invisible’, los ciberpiratas lanzaron un nuevo proceso que se ocultaba casi al instante, y activaba todo el código de correo malicioso.
Aún no hemos respondido a la pregunta sobre qué representan estos archivos ejecutables, o cuál es su uso real en el esquema de este ransomware. Comenzaremos con ‘mailpv.exe’, que era parte de CoinVault, y que usaba algunos métodos de ‘dropper’ para obtener la carga primaria. En lo que se refiere a ‘nk2edit.exe’ y ‘livecv.exe.’, una rápida búsqueda en Google reveló su verdadera naturaleza: ambas eran herramientas legítimas para interactuar con Outlook y Windows Live Messenger.
El archivo ‘livecv.exe‘ tenía un hash MD5 de D7FC749BB3B10FCC38DE498E8DB2639A, y su ejecutable contaba con una firma verificada. Esta es la descripción del desarrollador sobre esta utlilidad: ‘LiveContactsView es una pequeña utilidad que le permite visualizar los detalles de todos sus contactos en Windows Live Messenger’.
Lo mismo sucedió con ‘nk2edit.exe‘ (C1A591727E4519AC0D94C59B680E00E4): se trataba de una utilidad para interactuar con la función AutoComplete de la lista de direcciones en Microsoft Outlook.
CoinVault: QEPD
Después de la publicación de nuestra investigación sobre CoinVault, esta amenaza y sus autores permanecieron en silencio por un tiempo. No fue sino hasta abril de 2015 que detectamos una nueva muestra circulando en Internet. El cambio más notable era la presencia de frases en impecable holandés en todo el binario. El holandés es un idioma relativamente difícil de escribir sin cometer errores. Por esta razón, al principio de nuestra investigación sospechamos que habría una conexión holandesa con los supuestos autores del programa malicioso.
Otra interesante función añadida fue la verificación y neutralización de procesos de análisis y detección, como processhacker, spyhunter, roguekiller, etc. Además, esta versión también admitía el almacenamiento de datos en archivos .ini.
Poco después de la aparición de estas nuevas versiones, la policía holandesa logró capturar el servidor C2 que los ciberpiratas usaban y nos proporcionaron las IDs de billeteras de bitcoins, IVs y llaves necesarias para crear y ofrecer una herramienta de descifrado.
Y entonces… se detuvo. Por un tiempo no supimos nada de CoinVault y parecía que la campaña había llegado a su fin.
Hola Bitcryptor
Tuvimos razón al decir que CoinVault había llegado a su fin. Sin embargo, un mes después apareció BitCryptor.
BitCryptor es sin duda alguna el sucesor de CoinVault, ya que gran parte de su código es idéntico. Pero BitCryptor no se parece a las versiones anteriores de CoinVault que apuntaban a los usuarios holandeses. Se eliminaron todos los textos en holandés (así como todos los enlaces a CoinVault). Se añadió una pequeña función que se ejecuta en segundo plano y sirve para verificar si la víctima ya ha pagado.
Conclusión
Desde la publicación de nuestro informe inicial sobre CoinVault, y la presentación de la campaña No Ransom, los ciberpiratas autores de estas creaciones han estado tratando de modificarlas para seguir apuntando a nuevas víctimas. Ganar la lucha contra los programas ransomware requiere de un esfuerzo conjunto entre las autoridades, las compañías privadas y los usuarios finales. En este caso en particular, al trabajar juntos logramos un gran resultado: la captura de dos sospechosos.
Sin embargo, ahora más que nunca, es de invaluable importancia informar sobre la manera en que funcionan estas amenazas y apuntan a sus víctimas. Lo mismo que publicar alertas y reportes sobre nuevos incidentes con la mayor brevedad posible. Agradecemos a nuestro colega investigador Bart Blaze por compartir las muestras. En realidad disfrutamos este viaje al pasado. 🙂
MD5:
0f1830174d7b08c0d1fcd9aea00cdc97 Trojan-Ransom.MSIL.CoinVault.l
10438b6d4f479779234ef60560d2f40c Trojan-Ransom.MSIL.CoinVault.p
174a3f6982d254a74d2db202fd87ec26 Trojan-Ransom.MSIL.CoinVault.f
289b43d3c234585285a38b2a0f4db2e3 Trojan-Ransom.MSIL.CoinVault.i
2f707ed9f368cd5838f5fb76abcd5bd9 Trojan-Ransom.MSIL.CoinVault.q
30bc17990350f44d74f4a2ca25cdb9e3 Trojan-Ransom.MSIL.CoinVault.s
45db7e51b39fd0669b4f78eedc00ad2f Trojan-Ransom.MSIL.CoinVault.n
4d46310bdfdc5c49615be5c61b13c8ae Trojan-Ransom.MSIL.CoinVault.r
4d52e7e6f4dc77c39c50ed84ce1b10b5 Trojan-Ransom.MSIL.CoinVault.s
60a5b27a525ca21026ffff1f0d0baa6a Trojan-Ransom.MSIL.CoinVault.t
648280e5ba36ff038e97e444ecdb9d8e Trojan-Ransom.MSIL.CoinVault.g
716dfea51b1a8d95859cfda38ff7fa9d Trojan-Ransom.MSIL.CoinVault.j
73848ec02d5d9f4d0fdd5be31ef86449 Trojan-Ransom.MSIL.CoinVault.u
78fd303be07db8fa35b98645bef10ca4 Trojan-Ransom.MSIL.CoinVault.v
7fff4eabcdfb21e7884a240e668f1e8b Trojan-Ransom.MSIL.CoinVault.i
80db8e54a1a28e0167a4d66b3be84a5d Trojan-Ransom.MSIL.CoinVault.af
876050d738f434fc149970cc0d073dbe Trojan-Ransom.MSIL.CoinVault.w
8e1bdc1c484bc03880c67424d80e351d Trojan-Ransom.MSIL.CoinVault.x
a6499dac9a7b59830c77442eb030c93c Trojan-Ransom.MSIL.CoinVault.a
a76df48770a6cffc62e4d1a21749071b Trojan-Ransom.MSIL.CoinVault.m
a90d5d05728fec4c592393c7f4ec173e Trojan-Ransom.MSIL.CoinVault.e
ac4b5ce347820c8817afd49eacee3ec5 Trojan-Ransom.MSIL.CoinVault.y
af0e5a5df0be279aa517e2fd65cadd5c Trojan-Ransom.MSIL.CoinVault.z
aff8fefe76cc51d5e7120ef3f422ce29 Trojan-Ransom.MSIL.CoinVault.ah
b3a7fc445abfba3429094542049063c2 Trojan-Ransom.MSIL.CoinVault.x
b3bb6facbb557ddd9aada93f6b2efab8 Trojan-Ransom.MSIL.CoinVault.h
b3e1c2fce9763a2bdd08223c406bcf7f Trojan-Ransom.MSIL.CoinVault.aa
b92ec8ccc085b853545fc54781d0c1a3 Trojan-Ransom.MSIL.CoinVault.ab
be1f48b6b4c0515ac0d865713968e1c3 Trojan-Ransom.MSIL.CoinVault.ac
cb91d0db64d9245426c7789ed00ba4d3 Trojan-Ransom.MSIL.CoinVault.k
d5f291f2bc38873e145f6e6b13fb05db Trojan-Ransom.MSIL.CoinVault.d
d7732b4132440e9e8902080032897c15 Trojan-Ransom.MSIL.CoinVault.ad
d92e1be4fdfdea99dfa23de27f3bb568 Trojan-Ransom.MSIL.CoinVault.ae
e6227eaefc147e66e3c7fa87a7e90fd6 Trojan-Ransom.MSIL.CoinVault.af
e7414d82d69b902b5bc1efd0f3e201d7 Trojan-Ransom.MSIL.CoinVault.b
e883706376bb45ef53ec52fbd090a29a Trojan-Ransom.MSIL.CoinVault.ai
e8b83233071fd752e29b436113d5ea9d Trojan-Ransom.MSIL.CoinVault.ag
f293970741bbe0ee0c1b8ce6cb045d4d Trojan-Ransom.MSIL.CoinVault.b
Coinvault: ¿Se termina la pesadilla?