El reciente brote de malware similar a Petya obtuvo mucha atención de los medios. Sin embargo, debería notarse que no fue un incidente aislado: es el último de una serie de ataques similares en Ucrania. Este artículo revela muchos detalles sobre Win32/Diskcoder.C, también conocido como ExPetr, PetrWrap, Petya, o NotPetya, así como información sobre ataques que no habían sido reportados.
TeleBots
En diciembre de 2016 publicamos dos artículos detallados sobre ataques disruptivos perpetrados por el grupo que llamamos TeleBots, escpecíficamente contra instituciones financieras y una versión para Linux del malware KillDisk usado por este grupo.
Los objetivos de TeleBots fueron varios sistemas informáticos de Ucrania, que podemos definir como infraestructuras críticas. Además, el grupo tiene conexiones con el infame grupo BlackEnergy que fue responsable de los cortes de electricidad en Ucrania ocurridos en diciembre de 2015.
En la etapa final de sus ataques, TeleBots siempre usó al malware KillDisk para sobrescribir archivos con extensiones específicas en el disco de la víctima; recolectar el dinero del rescate nunca fue su prioridad principal.
En la primera ola de ataques de diciembre de 2016, en vez de cifrar, KillDisk sobrescribía los archivos objetivo. Pero no proveía información de contacto para comunicarse con el atacante, solo mostraba una imagen de la serie Mr. Robot.
En la segunda ola de ataques, los cibercriminales añadieron información de contacto, para que pareciera un típico ransomware. Sin embargo, pedían un número extraordinario de bitcoins: 222 BTC, equivalentes a 250.000 dólares en ese entonces. Esto podría indicar que no estaban interesados en los bitcoins, sino que su objetivo real era causar daño a las compañías atacadas, más allá de que no pudieran pagar el rescate.
En 2017, el grupo TeleBots continuó con sus ataques; de hecho, se hizo más sofisticado. En el período entre enero y marzo de este año, sus integrantes comprometieron una compañía de software de Ucrania (no relacionada a M.E. Doc) y, usando túneles VPN desde allí, obtuvieron acceso a las redes internas de muchas instituciones financieras.
Durante ese ataque, agrandaron su arsenal con dos piezas de ransomware y versiones actualizadas de las herramientas que habíamos descrito en las investigaciones mencionadas.
El primer backdoor era Python/TeleBot.A, que fue reescrito en el lenguaje de programación Rust. La funcionalidad sigue siendo la misma: es un backdoor estándar que utiliza la API Telegram Bot para recibir comandos y enviar respuestas al operador de malware.
El segundo backdoor, que fue escrito en VBS y empaquetado usando el programa script2exe, estaba densamente ofuscado, pero la funcionalidad seguía siendo la misma que en ataques previos.
Esta vez, el backdoor VBS usó el servidor de C&C en 130.185.250[.]171. Para hacer las conexiones menos sospechosas para quienes chequean los logs del firewall, los atacantes registraron el dominio transfinance.com[.]ua y lo alojaron en esa dirección IP. Como es evidente en la imagen 6, este servidor también estaba ejecutando el relay de Tor llamado severalwdadwajunior.
Además, usaron las siguientes herramientas:
- CredRaptor (para robar contraseñas)
- Plainpwd (Mimikatz modificado usado para recuperar credenciales de Windows de memoria)
- PsExec de SysInternals (usado para movimiento lateral)
Como mencionamos arriba, en la etapa final de sus ataques, el grupo TeleBots usó ransomware valiéndose de credenciales de Windows robadas y de PsExec de Sysinternals. Este nuevo ransomware se detectaba como Win32/Filecoder.NKH en los productos de ESET. Una vez ejecutado, cifra todos los archivos (excepto los ubicados en el directorio C:\Windows) usando algoritmos AES-128 y RSA-1024. El malware añade la extensión .xcrypted a los archivos cifrados.
Cuando el cifrado termina, crea un archivo de texto llamado “!readme.txt” con el siguiente contenido:
Por favor contáctenos: openy0urm1nd@protonmail.ch
Además de malware para Windows, el grupo usó ransomware para Linux en servidores que no corren Windows. Este ransomware es detectado por los productos de ESET como Python/Filecoder.R y, de manera predecible, está escrito en Python. Esta vez, los atacantes ejecutan utilidades de terceros como openssl para cifrar archivos. El cifrado se realiza usando los algoritmos RSA-2048 y AES-256.
En el código del script en Python, los atacantes dejaron un comentario con el siguiente texto:
feedback: openy0urm1nd[@]protonmail.ch
Win32/Filecoder.AESNI.C
El 18 de mayo de 2017, notamos que había nueva actividad de parte de otra familia de ransomware, Win32/Filecoder.AESNI.C (también llamada XData).
Se propagó mayormente en Ucrania, a raíz de un interesante vector inicial. Según la telemetría de nuestro sistema ESET LiveGrid®, el malware se creó justo después de la ejecución del software M.E.Doc, que es muy utilizado por personal contable en este país.
Win32/Filecoder.AESNI.C tenía un mecanismo de propagación que le permitía hacer movimiento lateral de manera automática dentro de la red LAN comprometida de una compañía. Específicamente, tenía un DLL que usaba para extraer credenciales de cuentas de Windows de la memoria de una PC comprometida. Con ellas, se propagaba en la red local usando la utilidad PsExec de Sysinternals.
Parece que los atacantes no lograron su objetivo en esa ocasión, o bien fue una prueba para un posterior ataque más efectivo. Publicaron claves maestras de descifrado en el foro de BleepingComputer, y afirmaron que el motivo era que, según el autor original, el código fuente había sido robado y usado en el incidente de Ucrania.
ESET publicó una herramienta de descifrado para el ransomware Win32/Filecoder.AESNI, y este evento no obtuvo mucha atención de los medios.
El brote de Diskcoder.C (“similar a Petya”)
Lo que sí obtuvo mucha atención de los medios fue el brote del malware similar a Petya originado esta semana, el 27 de junio de 2017. La razón fue que logró comprometer muchos sistemas de infraestructura crítica y otras organizaciones en Ucrania, y luego en otros países.
Este malware tiene la habilidad de reemplazar el Master Boot Record (MBR) con su propio código malicioso, que tomó prestado del ransomware Petya. Es por eso que otros investigadores llamaron a esta amenaza ExPetr, PetrWrap, Petya o NotPetya.
Sin embargo, a diferencia del original ransomware Petya, los autores de Diskcoder.C modificaron el código de MBR de manera tal que la recuperación no será posible. El atacante no puede proveer una clave de descifrado y de todas formas no podría ser ingresada en la pantalla de pedido de rescate, porque se generaría incluyendo caracteres no aceptados.
Visualmente, esta parte de Diskcoder.C dedicada al MBR se ve como una versión ligeramente modificada de Petya: primero muestra un mensaje que se hace pasar por CHKDSK, la utilidad de verificación de disco de Microsoft. Durante el falso chequeo de CHKDISK, el malware cifra la información.
Cuando el cifrado termina, la parte de MBR muestra el siguiente mensaje con las instrucciones de pago, pero, como señalamos arriba, esta información es inútil.
El resto del código, excluyendo la parte de MBR prestada, fue implementado por los propios autores. Esto incluye el cifrado de archivos que puede ser usado como complemento del MBR que cifra el disco. Para los archivos, el malware usa los algoritmos AES-128 y RSA-2048.
Cabe destacar que los autores cometieron errores que hacen que descifrar los archivos sea menos posible. Específicamente, el malware cifra solo el primer MB de datos y no escribe ningún encabezado o estructura específica, solo datos cifrados crudos, y no cambia el nombre de los archivos cifrados, por lo que es difícil decir qué archivos están cifrados y cuáles no.
Además de eso, los archivos que son mayores a 1MB después del cifrado no contienen bytes de relleno o separación, por lo que no hay forma de verificar la clave.
Es interesante remarcar que la lista de extensiones de archivos objetivo no es idéntica pero sí muy similar a la que KillDisk usó en los ataques de diciembre de 2016.
Una vez que el malware es ejecutado, intenta propagarse usando el infame exploit EternalBlue, aprovechando el backdoor de DoublePulsar, que se ejecuta en modo kernel. Fue exactamente el mismo método usado en el ransomware WannaCryptor.D.
Diskcoder.C también adoptó el método del ransomware Win32/Filecoder.AESNI.C (XData): usa una versión más liviana de Mimikatz para obtener credenciales y luego ejecuta el malware usando PsExec en otras máquinas de la red de área local. Además de eso, los atacantes implementaron un tercer método de propagación usando un mecanismo WMI.
Los tres métodos han sido usados para propagar malware dentro de redes LAN. A diferencia del infame WannaCryptor, Diskcoder.C usa el exploit EternalBlue solo contra computadoras dentro del espacio de direcciones de red local.
¿Por qué hay infecciones en otros países además de Ucrania? Nuestra investigación reveló que las compañías afectadas en otros países tenían conexiones VPN a sus filiales o a socios comerciales en Ucrania.
Vector de infección inicial
Tanto Diskcoder.C como Win32/Filecoder.AESNI.C usaron ataques a la cadena de suministro como vector de infección inicial. Estas familias de malware se propagaron usando un software contable ucraniano llamado M.E.Doc.
Hay varias opciones que permiten implementar este ataque. M.E.Doc tiene un sistema interno de mensajería e intercambio de documentos, por lo que los atacantes podrían enviar mensajes de phishing dirigido a las víctimas. Se requiere intacción del usuario para ejecutar algo malicioso de esta forma; por lo tanto, habría técnicas de ingeniería social involucradas. Como Win32/Filecoder.AESNI.C no se propagó tanto, asumimos erróneamente que se habían usado estas técnicas en este caso.
Sin embargo, el subsecuente brote de Diskcoder.C sugiere que los atacantes tuvieron acceso al servidor de actualización del software legítimo. Usándolo, subieron una actualización maliciosa que fue aplicada automáticamente sin la interacción de los usuarios. Fue por eso que tantos sistemas en Ucrania se vieron afectados. De todas formas, parece que los autores del malware subestimaron las capacidades de propagación de Diskcoder.C.
Investigadores de ESET encontraron evidencia que soporta esta teoría. Específicamente, identificamos un backdoor PHP malicioso que desplegaba medoc_online.php en uno de los directorios FTP en el servidor de M.E.Doc. Este backdoor era accesible desde HTTP; sin embargo, estaba cifrado, por lo que el atacante debía tener la contraseña para usarlo.
Debemos decir que hay señales que sugieren que Diskcoder.C y Win32/Filecoder.AESNI.C no fueron las únicas familias de malware que se desplegaron usando ese vector de infección. Podemos especular que estas actualizaciones maliciosas fueron desplegadas de manera sigilosa en redes que pertenecen a blancos de alto perfil.
Un malware con el que se usó este mecanismo fue el backdoor VBS usado por el grupo TeleBots. Esta vez, el atacante volvió a usar un nombre de dominio que tiene que ver con lo financiero: bankstat.kiev[.]ua.
El día del brote de Diskcoder.C, el registro de tipo A de este dominio se cambió a 10.0.0.1.
Conclusiones
El grupo TeleBots sigue evolucionando para ejecutar ataques disruptivos en Ucrania. En vez de correos de spear phishing con documentos que contienen macros maliciosas, usaron un esquema mucho más sofisticado conocido como ataque a la cadena de suministro.
Fuente:https://www.welivesecurity.com/la-es/2017/06/30/vuelve-telebots-empresas-ucrania/
Entusiasta de la seguridad cibernética. Especialista en seguridad de la información, actualmente trabajando como especialista en infraestructura de riesgos e investigador.
Experiencia en procesos de riesgo y control, soporte de auditoría de seguridad, diseño y soporte de COB (continuidad del negocio), gestión de grupos de trabajo y estándares de seguridad de la información.
Envía tips de noticias a info@noticiasseguridad.com o www.instagram.com/iicsorg/.
También puedes encontrarnos en Telegram www.t.me/noticiasciberseguridad