En la segunda mitad de 2016, los investigadores de ESET identificaron un conjunto de herramientas maliciosas únicas que se utilizaron en ciberataques dirigidos contra objetivos de alto valor en el sector financiero ucraniano. Creemos que el principal objetivo de los atacantes que usaron estas herramientas es el sabotaje cibernético. En este artículo describimos los detalles de la campaña.
Nos referiremos a la banda detrás del malware como TeleBots, aunque es importante aclarar que estos atacantes, así como el conjunto de herramientas que utilizan, comparten una serie de similitudes con el grupo BlackEnergy, responsable de los ataques a la industria energética ucraniana perpetrados en diciembre de 2015 y enero de 2016. De hecho, pensamos que el grupo BlackEnergy ha evolucionado y se ha convertido en el grupo Telebots.
Vector de infección
Al igual que en las campañas atribuidas al grupo BlackEnergy, los atacantes usaron correos electrónicos de phishing dirigido con documentos adjuntos de Microsoft Excel que contienen macros maliciosas como vector de infección inicial. Esta vez, los documentos maliciosos no tienen ningún contenido de ingeniería social para hacer que las víctimas potenciales hagan clic en el botón “Enable Content” (Habilitar contenido). Parece que los atacantes dependen enteramente de la decisión de las víctimas de hacer clic o no.
Normalmente, los documentos maliciosos no contienen información significativa en sus metadatos, pero esta vez los metadatos del documento incluyen el apodo de la persona que modificó el archivo. Además, el apodo coincide con el de un individuo que está comunicándose activamente dentro de una comunidad de ciberdelincuentes de habla rusa. Sin embargo, también es posible que solo sea un engaño de bandera falsa o una mera coincidencia.
Cuando una víctima hace clic en el botón Habilitar contenido, Excel ejecuta la macro maliciosa. Nuestro análisis muestra que el código de la macro utilizada en los documentos de TeleBots coincide con el código de la macro utilizada por el grupo BlackEnergy en 2015. La Imagen 3 muestra estas similitudes.
El propósito principal de la macro es colocar un archivo binario malicioso en el sistema bajo el nombre de archivo explorer.exe y luego ejecutarlo. El binario colocado pertenece a una familia de descargadores de troyanos, cuyo objetivo principal es descargar y ejecutar otro malware. El descargador de troyanos está escrito en el lenguaje de programación Rust.
Cabe señalar que durante las primeras etapas del ataque, el grupo TeleBots hace un uso indebido de varios servidores legítimos para ocultar su actividad maliciosa en la red. Por ejemplo, el descargador de troyanos recupera datos de una URL codificada en forma rígida que apunta a un archivo de texto en el servicio putdrive.com. Putdrive es un servicio de alojamiento de archivos, que le permite a cualquiera subir archivos y compartirlos online. El archivo de texto alojado en el servicio online es el payload final, codificado con el algoritmo Base64.
El payload final es un backdoor escrito en Python, detectado como el troyano Python/TeleBot.AA. Dicho backdoor es el malware principal utilizado por estos atacantes, por eso hemos nombrado al grupo TeleBots.
Backdoor Python/TeleBot.AA
En enero de 2016 publicamos nuestro análisis de un ataque de phishing dirigido contra empresas de energía eléctrica ucranianas. Creemos que dicho ataque está relacionado con los infames ataques de BlackEnergy de 2015, dado que los atacantes usaron exactamente el mismo servidor de correo electrónico para enviar mensajes de phishing dirigido.
No obstante, los ataques efectuados en enero de 2016 fueron diferentes. En lugar de usar la familia de malware BlackEnergy, los atacantes usaron un backdoor de código abierto relativamente simple, escrito en el lenguaje de programación Python, llamado GCat. Primero se cifró el código Python del backdoor GCat y luego se utilizó el programa PyInstaller para convertirlo en un archivo ejecutable autosostenible.
El malware Python/TeleBot utiliza exactamente el mismo enfoque: se cifró el código del backdoor en Python y se empaquetó en un archivo ejecutable autosostenible utilizando el programa PyInstaller. Además, el código en Python fue codificado con ROT13, cifrado con AES, comprimido usando la biblioteca zlib, y finalmente codificado con Base64.
Pero lo que realmente hace a este backdoor tan interesante es la forma en que se comunica con los atacantes para recibir comandos. Python/TeleBot utiliza indebidamente la API de Telegram Bot de la aplicación Telegram Messenger para comunicarse con los atacantes. La API de Telegram Bot se basa en HTTP y, para un administrador de red dentro de una red infectada, la comunicación entre el equipo infectado y los atacantes se verá como una comunicación HTTP(S) con un servidor legítimo, para ser específicos, con api.telegram.org. Ya hemos informado a Telegram sobre este uso indebido de su plataforma de comunicación.
Cada una de las muestras descubiertas tiene un token único incrustado en su código, es decir que cada muestra utiliza su propia cuenta de Telegram Messenger. Python/TeleBot usa chats privados para comunicarse con los ciberdelincuentes. Este esquema permite controlar las computadoras infectadas a través de cualquier dispositivo que tenga instalado Telegram Messenger, incluso desde un smartphone, simplemente emitiendo comandos a través del chat.
El malware Python/TeleBot admite los siguientes comandos:
Comando | Propósito |
cmd|| %shellcmd% | Ejecuta un comando de Shell y envía los resultados por chat |
cmdd|| %shellcmd% | Ejecuta un comando de Shell pero no envía los resultados por chat |
getphoto|| %path% | Carga la imagen de la computadora infectada al chat |
getdoc|| %path% | Carga cualquier tipo de archivo de hasta 50 MB de tamaño al chat |
forcecheckin|| %random% | Recopila la versión de Windows, la plataforma (x64 o x86) y los privilegios actuales |
time|| %seconds% | Cambia el intervalo entre la ejecución de los comandos |
ss|| | Toma una captura de pantalla (no implementado) |
Además, el malware guarda automáticamente todos los archivos entrantes del atacante en una carpeta propia. De esta manera, los atacantes pueden impulsar herramientas maliciosas adicionales al equipo infectado.
Durante la investigación, encontramos una cuenta de Telegram que pertenecía a uno de los atacantes.
Debe tenerse en cuenta que la API Telegram Bot no fue el único protocolo legítimo que utilizaron estos atacantes. Hemos visto que al menos una muestra de este backdoor utiliza un buzón de correo de outlook.com como servidor de C&C.
Herramientas maliciosas para robar contraseñas
Después de haber infectado con éxito la red, los atacantes usan diversas herramientas maliciosas para recopilar contraseñas, lo que les permite moverse lateralmente dentro de la LAN infectada.
Una cadena que contiene una ruta al archivo PDB de símbolos de depuración sugiere que los atacantes usan la herramienta que ellos denominaron CredRaptor. Dicha herramienta recopila contraseñas guardadas de varios navegadores como Google Chrome, Internet Explorer, Mozilla Firefox y Opera.
Los atacantes están utilizando una herramienta llamada plainpwd con el fin de volcar en memoria las credenciales de Windows. Esta herramienta es una versión ligeramente modificada del proyecto de código abierto mimikatz.
Además de plainpwd y CredRaptor, el kit de herramientas incluye un keylogger. El keylogger utiliza una técnica estándar para capturar las pulsaciones del teclado, se trata específicamente de la función SetWindowsHookEx.
Para extraer también las contraseñas en el tráfico de red, los atacantes utilizan la versión de consola de la herramienta Intercepter-NG. Como requiere que estén instalados los controladores WinPcap, los atacantes crearon una herramienta personalizada para instalarlos en silencio.
El uso combinado de todas estas herramientas les permite a los atacantes tener un punto de apoyo en la red infectada, con el objetivo de lograr tomar el control total tras conseguir los privilegios de administrador del dominio.
Herramienta de consulta LDAP
Otro descubrimiento interesante fue la herramienta que se utilizó durante los ataques para realizar consultas a Active Directory mediante LDAP. Esta herramienta es capaz de volcar información detallada sobre los equipos y los nombres de usuario listados en Active Directory, y está adaptada para el dominio de la víctima específica.
Backdoor adicional
Investigaciones subsiguientes revelaron que los atacantes habían desplegado backdoors adicionales para recuperar el acceso a la red infectada, en caso de que alguien descubriera y quitara su backdoor principal Python/TeleBot. Este backdoor adicional está escrito en VBS y algunas de las muestras que descubrimos estaban empaquetadas usando el programa script2exe.
Son varios los ejemplos de este backdoor en VBS, pero todos tienen la misma funcionalidad principal. El backdoor envía el nombre de equipo y la dirección MAC del equipo que lo ejecuta a su servidor de C&C usando HTTP. La variable timeout define el tiempo en minutos que transcurre entre cada llamada al servidor. El servidor también puede impulsar comandos adicionales para que se ejecuten. A continuación se muestra la lista de comandos admitidos:
Comando | Propósito |
!cmd | Ejecuta el comando de Shell y envía los resultados al servidor |
!cmdd | Ejecuta el comando de Shell pero no envía los resultados al servidor |
!dump | Decodifica los datos de Base64 y los guarda en la carpeta %TEMP% |
!timeout | Define un nuevo tiempo de espera entre las llamadas al servidor |
!bye | Cierra |
!kill | Cierra y se elimina |
!up | Carga un archivo desde el equipo agente al servidor de C&C |
BCS-server
Los atacantes también usaron una herramienta maliciosa que denominaron BCS-server. Esta herramienta les permite abrir un túnel en una red interna y luego utilizarlo para enviar y recibir datos entre el servidor de C&C y los equipos aún no infectados de la red. La idea principal de esta herramienta se basa en los mismos principios que el malware XTUNNEL utilizado por el grupo Sednit.
Durante nuestras investigaciones, descubrimos que los atacantes usaron una guía para esta herramienta específica. Cabe notar que la guía está escrita en ruso.
A continuación transcribimos una traducción aproximada de la guía en ruso:
Parámetros
-saddr – dirección del servidor BCS-server
-hport – puerto de un host, que ya configuramos en el servidor, así es como evadimos el firewall
Ejemplos:
phost_win.exe –saddr=10.10.10.10 –hport=80
Versiones de depuración:
phost_cnv.exe – versión de consola
phost_win_log.exe – versión que guarda el registro en un archivo
Por lo tanto, los atacantes especifican un servidor de C&C externo en la línea de comandos y la herramienta se conecta a este servidor mediante HTTP. Los atacantes usan este servidor remoto como proxy: la herramienta redirige la conexión que se hace a este servidor a la red interna y cada respuesta que la herramienta reciba de los equipos de la red interna se envía al servidor de C&C. De esta forma, los atacantes pueden comunicarse con los servidores internos que normalmente no son accesibles desde Internet.
El tráfico de comunicación entre la herramienta BCS-server y el servidor de C&C está codificado con Base64 y encapsulado en etiquetas HTML.
KillDisk
KillDisk es un componente destructivo utilizado por estos atacantes en la etapa final de sus ataques. Las versiones anteriores de este componente se usaron en ataques dirigidos a empresas mediáticas en noviembre de 2015 y a empresas de suministro de energía eléctrica en Ucrania en diciembre de 2015.
KillDisk está diseñado para ejecutarse con privilegios elevados; esta vez se registra como un servicio bajo el nombre Plug-And-Play Support. Como en la fase final los atacantes probablemente ya han recopilado las credenciales de los administradores de la red, pueden usar Microsoft PsExec para ejecutar KillDisk con los privilegios más altos posibles en servidores y estaciones de trabajo.
Los atacantes pueden especificar la fecha de activación de KillDisk mediante líneas de comandos. Sin embargo, una de las muestras tenía un tiempo de activación predefinido establecido a las 9:30 AM del día 6 de diciembre de 2016.
Aunque hubo mejoras en el código, la base de KillDisk no ha cambiado tanto: elimina archivos importantes del sistema y hace que el equipo no se pueda arrancar. Además sobrescribe archivos cuyas extensiones de archivo coinciden con las predefinidas por los autores del malware. En esta versión de KillDisk, las extensiones son:
- .kdbx .bak .back .dr .bkf .cfg .fdb .mdb .accdb .gdb .wdb .csv .sdf .myd .dbf .sql .edb .mdf .ib .db3 .db4 .accdc .mdbx .sl3 .sqlite3 .nsn .dbc .dbx .sdb .ibz .sqlite .pyc .dwg .3ds .ai .conf .my .ost .pst .mkv .mp3 .wav .oda .sh .py .ps .ps1 .php .aspx .asp .rb .js .git .mdf .pdf .djvu .doc .docx .xls .xlsx .jar .ppt .pptx .rtf .vsd .vsdx .jpeg .jpg .png .tiff .msi .zip .rar .7z .tar .gz .eml .mail .ml .ova .vmdk .vhd .vmem .vdi .vhdx .vmx .ovf .vmc .vmfx .vmxf .hdd .vbox .vcb .vmsd .vfd .pvi .hdd .bin .avhd .vsv .iso .nrg .disk .hdd .pmf .vmdk .xvd
El malware KillDisk es capaz de crear archivos nuevos y pequeños para reemplazar los eliminados, usando el mismo nombre de archivo. Estos nuevos archivos contienen una de estas dos cadenas: mrR0b07 o fS0cie7y, en lugar del contenido original. Ésta no es la única referencia al programa de TV Mr. Robot. Además, esta variante específica de KillDisk muestra la siguiente imagen:
Curiosamente, el malware KillDisk no almacena esta imagen en ninguna parte: en cambio, tiene un código que dibuja la imagen en tiempo real utilizando el GDI de Windows. Se nota que, solamente para crear el código que dibuja esta imagen, los atacantes invirtieron mucho esfuerzo.
Conclusión
Los ciberdelincuentes responsables de estos ataques dirigidos demuestran tener la intención de llevar a cabo ataques de sabotaje cibernético. Para poder montar tales ataques, inventan constantemente nuevos tipos de malware y técnicas, como usar la API de Telegram Bot en lugar de un servidor de C&C más convencional.
Fuente:https://www.welivesecurity.com
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