Threat Profile: Red BerryMiner

Red BerryMiner

Objetivo

Esta publicación describe el análisis del modus operandi, los TTPs, infraestructura y herramientas utilizadas de un grupo de amenazas nombrado por SCILabs como Red BerryMiner, el cual, explota vulnerabilidades de servidores de diferentes organizaciones expuestos en Internet para infectarlos con las familias de malware Mirai, ShellBot y predominantemente, el crypto-miner XMRig.

Visión General

El vector de acceso inicial de este adversario es principalmente la explotación de vulnerabilidades de servidores expuestos a Internet, predominantemente la vulnerabilidad registrada con el identificador CVE-2023-3722(CVSS:3.0 – 9.8), que afecta a la aplicación web de Avaya Aura Device Services.

SCILabs identificó en investigaciones propias y públicas, que Red BerryMiner realiza la explotación de otras vulnerabilidades como las registradas con los identificadores CVE-2018-20062(CVSS:3.0 – 9.8) y CVE-2022-22965(CVSS:3.0 – 9.8), con el objetivo de instalar malware como Mirai y XMRig.

Con base en el estudio de la telemetría de SCILabs, observamos que Red BerryMiner dirige sus ataques a organizaciones de diferentes países (sin dirigirse a un sector en específico), con la finalidad de utilizar la infraestructura comprometida para actividades de criptominería. De acuerdo con nuestra investigación, Red BerryMiner, podría estar operando desde febrero de 2023.

Región de operación

De acuerdo con la evidencia recopilada por SCILabs, se presentan los países donde se ha observado actividad relacionada a ataques de Red BerryMiner, entre los que más resaltan México, Estados Unidos, España, Rusia y Sudáfrica.

Figura 1. Región de operación de Red BerryMiner, identificada hasta el momento por SCILabs

Al analizar la infraestructura utilizada por Red BerryMiner, SCILabs identificó que parte de la infraestructura utilizada como repositorio de malware por este grupo de amenazas, se encuentra geolocalizada en diversos países del mundo, destacando Países Bajos, debido a su dirección IP pertenece a la infraestructura de Alsycon B.V por lo que se tiene la hipótesis con bajo nivel de confianza de que los operadores detrás de Red BerryMiner se encuentran ubicados principalmente en dicho país.

Figura 2. Regiones de registro de dominios de Red BerryMiner

Figura 3. Información del dominio download[.]asyncfox[.]xyz utilizado por Red BerryMiner

En la siguiente figura se muestra una línea del tiempo con la actividad más relevante de Red BerryMiner de acuerdo con los eventos observados y analizados por SCILabs desde febrero de 2023.

Figura 4. Línea del tiempo de campañas de Red BerryMiner

¿A quién puede afectar?

De acuerdo con la telemetría de SCILabs, las principales organizaciones afectadas son aquellas que utilicen o cuenten con servicios públicos en Internet con vulnerabilidades sin mitigar. Las vulnerabilidades más explotadas por estos cibercriminales son las siguientes:

# Tecnología Vulnerabilidad Nivel de criticidad

Descripción

1  Avaya Aura Device Services CVE-2023-3722

CVSS:3.0 – 9.8 CRÍTICO

Vulnerabilidad de tipo inyección de comandos del sistema operativo en la aplicación web Avaya Aura Device Services, que podría permitir la ejecución remota de código como usuario del servidor web a través de un archivo cargado malicioso. Este problema afecta a Avaya Aura Device Services versión 8.1.4.0 y anteriores
2 ThinkPHP

CVE-2018-20062

CVSS:3.0 – 9.8 CRÍTICO

Permite a atacantes remotos ejecutar código PHP de su elección, mediante el uso manipulado del parámetro “filter”
3 Spring Shell

CVE-2022-22965

CVSS:3.0 – 9.8 CRÍTICO

Una aplicación Spring MVC o Spring WebFlux que se ejecuta en JDK 9+, puede ser vulnerable a la ejecución remota de código (RCE) mediante enlace de datos. El exploit específico, requiere que la aplicación se ejecute en Tomcat como una implementación WAR. Si la aplicación se implementa como un jar ejecutable de Spring Boot, es decir, el valor predeterminado, no es vulnerable al exploit. Sin embargo, la naturaleza de la vulnerabilidad es más general y puede haber otras formas de explotarla.

¿Cómo puede afectar a una organización?

El principal riesgo asociado a este grupo de amenazas es que, suelen explotar vulnerabilidades de tecnología comúnmente utilizada por todo tipo de organizaciones, con el objetivo de distribuir el crypto-miner XMRig, además de integrar a los dispositivos victima a la red Botnet Mirai. Esto puede provocar consecuencias severas en la infraestructura de una organización. Mirai conocida por sus ataques DDoS, puede causar interrupciones masivas en servicios y sistemas, dañando la reputación y ocasionando pérdidas financieras. Por otro lado, XMRig consume recursos de los sistemas comprometidos para minar criptomonedas, lo que lleva a una ralentización de operaciones, aumento en costos de energía y posibles brechas de seguridad adicionales.

Análisis

Primera campaña identificada por SCILabs

Durante el primer ataque analizado por SCILabs registrado durante el mes de julio, el cual afectó a una organización del sector gobierno, se identificó el uso de diferentes droppers desarrollados con PHP para la descarga de un shell script y el malware ShellBot. El shell script descargado con nombre start.sh, tiene como objetivo desplegar dos scripts adicionales, así como el software para criptominería XMRig; uno de los scripts se encarga de terminar procesos específicos, y otro recopila llaves SSH, hosts y usuarios para poder realizar movimiento lateral dentro de la red de la organización afectada.

Droppers

Droppers del script start.sh

  • Primera variante del dropper PHP:
    • Descarga un archivo con curl o wget desde las URL hxxp[:]//178[.]62[.]44[.]152/start[.]sh o hxxp[:]//45[.]81[.]243[.]128/start[.]sh, el cual es almacenado en /tmp con el nombre sh, utiliza la opción -k para permitir conexiones a través de HTTPS sin validar certificados SSL.
    • Al finalizar la descarga, ejecuta el archivo /tmp/start.sh utilizando bash.

Figura 5. Código de la primera variante del script

  • Segunda variante del dropper PHP:
    • Descarga un archivo con curl o wget desde la URL hxxp[:]//45[.]81[.]243[.]128/start[.]sh, el cual es almacenado en /tmp con el nombre sh, utiliza la opción -k para permitir conexiones a través de HTTPS sin validar certificados SSL.
    • Al finalizar la descarga, le otorga permisos de ejecución con el comando chmod +x.
    • Ejecuta el archivo descargado, con el ‘.’ indica que debe ser ejecutado en el contexto actual en lugar de crear un nuevo proceso.

Figura 6. Código de la segunda variante del script

start.sh: Dropper de los scripts kill.sh, ssh.sh y XMRig

El artefacto start.sh tiene como objetivo descargar el software XMRig y dos scripts adicionales, a continuación, se explica de forma general su funcionamiento.

  • Realiza varias comprobaciones de procesos, validando su nombre o el consumo de CPU de ese proceso, para después terminarlos utilizando el comando kill -9.
  • Con los comandos curl y wget realiza la descarga de los siguientes archivos:
    • xmrig-6.19.2-linux-static-x64.tar.gz desde la URL hxxp[:]//45[.]81[.]243[.]128/xmrig-6[.]19[.]2-linux-static-x64[.]tar[.]gz, el cual se trata de un archivo comprimido que contiene el software XMRig. El archivo es almacenado en /tmp/$file_name.tar.gz.
    • sh desde la URL hxxp[:]//45[.]81[.]243[.]128/kill[.]sh, el cual tiene como objetivo terminar con procesos específicos en el sistema. El archivo es almacenado en /tmp/kill.sh.
    • sh desde la URL hxxp[:]//45[.]81[.]243[.]128/ssh[.]sh, el cual tiene como objetivo recopilar llaves SSH, hosts y usuarios, para intentar conectarse a equipos adicionales en la red interna de la organización. El archivo es almacenado en /tmp/ssh.sh.
  • Otorga permisos de lectura, escritura y ejecución a todos los archivos descargados con el comando chmod 777, y los ejecuta en segundo plano.

Figura 7 Código del script start.sh

Dropper para la descarga de ShellBot

Este script tiene como objetivo descargar una versión del malware ShellBot AKA PerlBot, a continuación, se explica el funcionamiento del dropper.

  • Utiliza la función system() para la ejecución de comandos, primero cambia el directorio a /tmp utilizando el comando
  • Con la utilidad curl descarga el contenido de un archivo remoto ubicado en 85[.]239[.]33[.]32/ruby, utiliza la opción -s para activar el modo silencioso, por lo que no mostrará información o progreso en la consola. Posteriormente, el resultado de la descarga es procesado y ejecutado por el intérprete de Perl.
  • Al igual que con curl, el script trata de realizar la descarga y ejecución del archivo remoto por medio de la utilidad.

Figura 8. Código del script encargado de descargar el malware ShellBot

La siguiente imagen ilustra los droppers identificados en este ataque y su respectivo payload.

Figura 9. Droppers identificados en esta campaña

Manipulación de procesos y movimiento lateral

Una vez que el script start.sh es descargado y ejecutado, se despliegan shell scripts adicionales que se encargan de la manipulación de procesos y realizar el movimiento lateral dentro de la red interna. A continuación, se describe de forma general su funcionamiento:

kill.sh

Este script busca y termina varios procesos, elimina archivos y verifica si existe un proceso en ejecución relacionado con XMRig, si no lo encuentra, realiza una serie de acciones para descargar y ejecutar el archivo. A continuación, se explica de forma general su funcionamiento.

  • Dentro del bucle while se realizan una serie de comandos para detener procesos, eliminar archivos y otras acciones.
  • Se utilizan los comandos killall y pkill para terminar los siguientes procesos:
    • kdevtmpfsi, kinsing, xmrig, xmr, qwer, system, /tmp/.ssh/redis.sh, kthreaddk, kwolker, mini, kacpi_notifyd, vim, mym, network, .libs, javase, libexec, system y redis.sh

Figura 10. Bloque de código del script kill.sh

  • Utiliza el comando rm y la opción -rf para eliminar los siguientes directorios y archivos:
    • /usr/lib/vmware-vsphere-ui/server/postgres
    • /usr/lib/vmware-vsphere-ui/server/postgres_start.sh
    • /usr/lib/vmware-vsphere-ui/server/kvm.sh
    • /usr/lib/vmware-vsphere-ui/server/elastic.sh
    • $HOME/postgres
    • $HOME/kvm.sh
    • $HOME/elastic.sh

Figura 11. Bloque de código del script kill.sh

  • Después se buscan procesos que contengan cadenas de texto específicas, para terminar esos procesos con el comando kill -9, también busca procesos que están utilizando más del 40% de la CPU.

Figura 12. Bloque de código del script kill.sh

  • Realiza una serie de validaciones para verificar si existe un proceso relacionado con XMRig, si no es así, procede a descargarlo desde la URL hxxp[:]//45[.]81[.]243[.]128/xmrig-6[.]19[.]2-linux-static-x64[.]tar[.]gz utilizando el comando curl o wget, el archivo es almacenado en /tmp/log_rotari2.tar.gz.
  • El archivo es descomprimido y ejecutado con una serie de argumentos para definir el algoritmo de minado y la URL del server de minado, redirige la salida a /dev/null para descartarla y ejecuta el proceso en segundo plano.

Figura 13. Bloque de código del script kill.sh

ssh.sh

Este script busca claves SSH y hosts en varios directorios y archivos de configuración, para iterar sobre las combinaciones de usuario, host y clave SSH, y establecer una conexión SSH. El objetivo de este artefacto es infectar más equipos en la red interna de la organización.

  • Realiza varias validaciones en búsqueda de directorios y archivos que puedan contener llaves SSH y nombres de Hosts, las cuales son almacenadas en diferentes variables. También se recopilan los usuarios existentes.
  • Se realizan diversas transformaciones de texto para formatear y organizar la información de usuarios, claves SSH y nombres de host.
  • Se inicia un bucle para otorgar permisos, establecer conexiones SSH a hosts remotos y ejecutar un archivo descargado desde la URL hxxp[:]//45[.]81[.]243[.]128/start[.]sh en el directorio /tmp en los hosts remotos.

Figura 14. Código del script ssh.sh

Webshells/Backdoor script

Durante la investigación también se identificaron distintos scripts PHP que servían de webshells y backdoors a los atacantes.

info.php

Este artefacto es una webshell que tiene como objetivo ejecutar el código que sea proporcionado en una solicitud HTTP a través del argumento $_POST.

Figura 15. Código ofuscado del script info.php

Figura 16. Código desofuscado del script info.php

avayabing.php

Este script es una webshell diseñada para decodificar datos base64 y después ejecutarlos utilizando la función eval. A continuación, se explica de forma general el funcionamiento del script.

  • Define una función llamada Decrypt que toma un parámetro llamado $data, esta función se utiliza para descifrar datos cifrados
  • Dentro de la función se define una clave de cifrado en la variable $key con el valor “e45e329feb5d925b”, así como también la variable $bs, a la cual se le asigna el valor de dos cadenas concatenadas que dan como resultado “base64_decode”.
  • A la variable $after se le asigna el resultado de la función definida en $bs pasándole el parámetro $data.
  • En el ciclo for se itera sobre cada carácter de la cadena $after, en cada iteración se realiza una operación XOR entre el carácter actual y el carácter correspondiente de la clave key utilizando la expresión $key[$i+1&15]. El resultado final se devuelve como valor de retorno de la función Decrypt.
  • La variable $post se asigna llamando a la función previamente definida, pasando como parámetro el contenido de una solicitud POST recibida a través de php://input.
  • Finalmente, se utiliza la función eval para ejecutar el contenido de la variable $post.

Figura 17. Código del script avayabing.php

avayadirini.php

Este artefacto es una webshell que procesa una solicitud POST, decodificando el contenido base64 y una operación XOR, el resultado es ejecutado con la función eval. A continuación, se explica de forma general el funcionamiento del script.

  • Recibe el valor del parámetro error enviado a través de una solicitud POST y lo asigna a la variable $a.
  • Utiliza la función base64_decode() para decodificar el contenido de la variable $a, el resultado es almacenado en $string.
  • Desempaqueta la variable $string con la función unpack(), el especificador “C*” se utiliza para indicar que los datos son enteros sin signo, el resultado es almacenado en $arr como una matriz.
  • Inicia un ciclo for que itera sobre cada número en la matriz $arr, en cada iteración realiza una operación XOR entre el elemento actual de $arr y el resultado de la expresión (($i-1)%256), el operador % se utiliza para asegurarse que el valor de ($i-1) se mantenga dentro del rango 0 a 255. El resultado se convierte en un carácter utilizando la función chr() y es concatenado al valor de la variable $str.
  • Finalmente, utiliza la función eval para ejecutar el contenido de la variable $str.

Figura 18. Código del script avayadirini.php

avayatunnel.php

Este script puede utilizarse como backdoor en un servidor, realiza diferentes configuraciones para permitir abrir URLs remotas y define una función para recuperar las cabeceras de solicitudes HTTP personalizadas. Dependiendo del valor del header “Cz” en la solicitud HTTP, realiza diferentes acciones, como establecer una conexión a un servidor remoto, terminar la conexión establecida, y recuperar datos recibidos desde el servidor del atacante para decodificarlos y guardarlos en la sesión.

El primer bloque de código realiza algunas configuraciones y definiciones necesarias para el manejo de URLs remotas, informe de errores y la obtención de cabeceras de solicitudes HTTP.

Figura 19. Primer bloque de código del script avayatunnel.php

El segundo bloque de código establece el límite de tiempo de ejecución del script a 0 (ilimitado), obtiene las cabeceras de la solicitud HTTP, define cadenas de caracteres para encriptación/desencriptación, y procesa la cabecera para obtener un comando y dividirlo en partes relevantes.

Figura 20. Segundo bloque de código del script avayatunnel.php

El tercer bloque de código se evalúa el valor de la variable $cmd utilizando switch, en el primer caso establece una conexión (Reverse Shell) con un objetivo específico, el objetivo y el puerto se obtienen a partir de la decodificación y manipulación de una cabecera HTTP especifica. Si la conexión no se establece correctamente, se configuran las opciones de no bloqueo y se inicia una sesión para almacenar información relacionada con la ejecución y comunicación con el socket.

Figura 21. Tercer bloque de código del script avayatunnel.php

El cuarto bloque de código se encarga de controlar la comunicación bidireccional a través de un socket, lee datos del búfer de escritura y los envía a través del socket, verifica si la escritura fue exitosa y finaliza el bucle si ocurre un error.

Figura 22. Cuarto bloque de código del script avayatunnel.php

El quinto bloque de código se encarga de leer los datos de un socket en bloques y acumularlos en el búfer de lectura $_SESSION[$readbuf] durante cada iteración del bucle. Además, verifica si la lectura fue exitosa y finaliza el bucle si ocurre un error.

Figura 23. Quinto bloque de código del script avayatunnel.php

El sexto bloque de código se encarga de limpiar y eliminar las variables $_SESSION[$run], $_SESSION[$readbuf] y $_SESSION[$writebuf], terminando con la ejecución de la reverse Shell establecida en el caso anterior.

Figura 24. Sexto bloque de código del script avayatunnel.php

El séptimo bloque de código se encarga de enviar respuestas HTTP basadas en el estado de ejecución del bucle, Si el bucle sigue en ejecución, se envían encabezados específicos y se imprime el contenido codificado en base64 del búfer de lectura, si el bucle se ha detenido, se envía un encabezado especifico indicando el estado.

Figura 25. Séptimo bloque de código del script avayatunnel.php

El octavo bloque de código se encarga de manejar solicitudes POST, almacenando el contenido en el búfer de escritura de la sesión si el bucle de ejecución está en marcha, además envía respuesta HTTP especificas según el estado del bucle de ejecución y el contenido de la solicitud POST.

Figura 26. Octavo bloque de código del script avayatunnel.php

El ultimo bloque de código se ejecuta cuando no se encuentra ninguna coincidencia en los casos anteriores, se cierra la sesión y se muestra un mensaje antes de finalizar la ejecución del script.

Figura 27. Ultimo bloque de código del script avayatunnel.php

XMRig y ShellBot

Como mencionamos anteriormente, por medio del script start.sh se realiza la descarga de un archivo comprimido que contiene el software XMRig, y otro dropper es el encargado de descargar el malware ShellBot; a continuación, se explica de forma general el objetivo de estos artefactos.

XMRig

El archivo comprimido xmrig-6.19.2-linux-static-x64.tar.gz contiene el software de código abierto XMRig, el cual está diseñado para minar criptomonedas. Sin embargo, suele ser utilizado por cibercriminales en sus ataques para utilizar los recursos de la maquina infectada, y así poder minar criptomonedas.

Con la potencia de cálculo proporcionada por los ordenadores infectados, un atacante que utilice XMRig para minar criptomonedas puede obtener recompensas sin tener que pagar el equipo o la electricidad necesarios para realizar las operaciones de minería (que son muy costosas desde el punto de vista informático). Un ejemplo muy conocido es el caso del grupo 8220 Gang, el cual utiliza una versión personalizada de este software (PwnRig), este grupo de amenaza fue documentado por SCILabs en el reporte con ID TP2304-086.

ShellBot

La versión descargada del malware ShellBot AKA PerlBot, se trata de LiGhT’s Modded perlbot v2, esta amenaza afecta principalmente a servidores Linux con credenciales SSH débiles. ShellBot, es un malware desarrollado en Perl y se caracteriza por utilizar el protocolo Internet Relay Chat (IRC) para comunicarse con un servidor remoto a través de IRP sobre TCP, esta variante ofrece una variedad de comandos para realizar ataques DDoS utilizando protocolos HTTP, TCP y UDP, además de comandos que permiten controlar los sistemas infectados para poder utilizarlos en otros ataques.

A continuación, se enumeran los comandos utilizados por esta amenaza:

Comando Descripción
help Menú de ayuda para la explicación de cada comando.
flooding Comandos específicamente diseñados para realizar IRC Flooding.
irc Comandos relacionados con el control de IRC.
ddos Comandos para ataques DDoS, incluyen TCP, UDP, HTTP y SQL Flooding.
news Consultar páginas web de seguridad (packetstorm y wilw0rm).
hacking Diferentes comandos para realizar escaneos o ataques (multiscan, socks5, logcleaner, nmap)
extras Instalar scripts adicionales (install-syn Syn.c yinstall-50x 50x.c )

Tabla 2 Descripción de comandos

Figura 28. Parte del código de ShellBot

 

Segunda campaña identificada por SCILabs

El segundo ataque registrado por SCILabs durante el mes de septiembre, del mismo modo, afectó a una organización del sector gobierno, y también se identificaron diferentes droppers para la descarga del Shell script start.sh, el cual ya había sido observado en la primera campaña, así como también, archivos encargados de la descarga de una reverse Shell y el malware Mirai.

Droppers

Dropper de start.sh

Es importante mencionar que se identificaron diferentes scripts PHP con el objetivo de descargar el artefacto start.sh con ligeras variaciones en su código, por lo que SCILabs tiene la hipótesis de que los atacantes probaron diferentes scripts para la descarga de este archivo.

Primera variante:

  • Este script está diseñado para descargar un archivo con wget desde la URL hxxp[:]//45[.]81[.]243[.]128/start[.]sh, al finalizar la descarga, ejecuta el contenido descargado con el intérprete de comandos bash.

Figura 29. Código de la primera variante

Segunda variante:

  • El script está diseñado para descargar un archivo con curl o wget desde las URLs hxxp[:]//178[.]62[.]44[.]152/start[.]sh o hxxp[:]//45[.]81[.]243[.]128/start[.]sh, el cual es almacenado en la carpeta /tmp. Al finalizar la descarga, ejecuta el archivo utilizando.

Figura 30. Código de la segunda

Tercera variante:

  • Al igual que la segunda variante, este artefacto realiza las mismas acciones, pero en este caso, también le otorga permisos de ejecución al archivo descargado con el comando chmod +x.

 

Figura 31. código del script 2PeF5b7j96MgewoFOWEXzEpo1fz.php para la descarga y ejecución de un artefacto

 

Dropper del archivo QkflHwJE0s de tipo ELF

El artefacto tiene como objetivo descargar un archivo desde la URL hxxp[:]//84[.]54[.]50[.]110[:]8080/QkflHwJE0s, el cual es de tipo ELF y se trata de una reverse shell, después le otorga permisos de ejecución y lo ejecuta en segundo plano.

Figura 32. Código del script para la descarga y ejecución del archivo ELF

Script para la descarga de Mirai

Este script tiene como objetivo descargar el malware Mirai. El archivo tiene por nombre x86 y es descargado desde la URL hxxp[:]//45[.]90[.]161[.]122/bins/x86. Le otorga permisos de lectura, escritura y ejecución a todos los archivos del directorio actual con el comando chmod 777 *, ejecuta el archivo x86 con el argumento test.

Figura 33. Código del script para la descarga y ejecución de Mirai

La siguiente imagen ilustra los droppers identificados en este ataque y su respectivo payload.

Figura 34. Droppers identificados en esta campaña

Enumeración

Durante esta investigación, también se identificaron scripts PHP para obtener información acerca del usuario y el sistema, por lo que SCILabs puede asegurar con un nivel de confianza alto, que estos scripts fueron utilizados durante la fase de reconocimiento.

Permisos de usuario

Se identificaron varios scripts PHP que utilizan la funcion system() para ejecutar el comando id, el cual muestra información sobre el usuario actual y el grupo al que pertenece. Este código pudo utilizarse para validar los permisos del usuario.

Figura 35. Código de los scripts para validar los permisos del usuario

Información del sistema

Este script utiliza la función system() para ejecutar el comando uname -a, para mostrar información sobre el kernel del sistema y arquitectura del hardware. Este comando pudo utilizarse para determinar que tipos de scripts y ejecutables utilizar durante el ataque.

Figura 36. Código del script para obtener información del sistema

Webshells

Al igual que en el primer ataque registrado por SCILab, en este se recuperaron scripts de tipo PHP que servían de webshell s/backdoor a los atacantes.

730.php

Este script permite que un atacante envié código arbitrario en una solicitud HTTP a través del parámetro “123” y lo ejecute utilizando la función eval().

Figura 37. Código de la webshell 730.php

jquery.php

Al igual que el script anterior, este permite que un atacante envié código arbitrario en una solicitud HTTP a través del parámetro “cmd” y lo ejecute utilizando la función eval().

Figura 38. Código de la webshell  jquery.php

2U2NOwQKCiHp5k0zwjTcIXwECOg.php

Este artefacto está diseñado para recibir datos ofuscados a través de una solicitud POST, estos datos son descifrados dependiendo si la extensión OpenSSL está cargada, si es así, se utiliza el algoritmo AES-128 y la llave definida en la variable $key, si no está cargada, son descifrados utilizando la función base64_decode(). Finalmente, el contenido descifrado es ejecutado utilizando la función eval().

Figura 39. Código de la webshell 2U2NOwQKCiHp5k0zwjTcIXwECOg.php

7e9e344d962070a5a4b7d7926c919ced.php

 

Este artefacto corresponde a una webshell generada con la herramienta Weevely, y tiene como objetivo descifrar y ejecutar código arbitrario recibido a través de una petición POST.

 

Figura 40. Código ofuscado de la webshell 7e9e344d962070a5a4b7d7926c919ced.php

Figura 41. Código desofuscado de la webshell 7e9e344d962070a5a4b7d7926c919ced.php

Reverse Shell

Adicionalmente, en esta investigación también se observó el uso de un script PHP y un ejecutable de tipo ELF los cuales tienen como objetivo establecer una reverse Shell hacia la dirección IP 84[.]54[.]50[.]110.

Scripts PHP

Durante la investigación se identificaron diferentes scripts que tienen como objetivo iniciar una reverse Shell hacia la dirección IP 84[.]54[.]50[.]110 en el puerto 9000.

Figura 42. Código de los scripts para establecer una reverse Shell

Archivo ELF

El artefacto descargado por uno de los scripts se trata de un archivo tipo ELF que tiene como objetivo establecer una reverse Shell de Metasploit hacia la dirección IP 84[.]54[.]50[.]110 por el puerto 4444.

Figura 43. Dirección IP hacia donde se busca establecer una reverse Shell por parte del archivo ELF

XMRIG y Mirai

En este segundo ataque registrado por SCILabs, también se identificó el intento de descarga del software XMRig, y la descarga del malware Mirai, el cual tiene la capacidad de agregar el equipo infectado a una botnet.

XMRig

Durante la investigación SCILabs identifico varios registros de solicitudes HTTP que contienen código ofuscado en Base64, una vez decodificada esta cadena se puede observar el intento de descarga del software XMRig.

Uno de los registros tiene como objetivo detener cualquier proceso cuyo nombre contenga .foxm utilizando el comando pkill -9, después descarga un artefacto desde la URL hxxp[:]//download[.]asyncfox[.]xyz/download/xmrig[.]x86_64, lo renombra como .foxm, le otorga permisos de ejecución con el comando chmod +x, y finalmente lo ejecuta.

Adicionalmente, esta solicitud esta intenta explotar una vulnerabilidad conocida de ThinkPHP, la cual permite a un atacante remoto ejecutar código PHP arbitrario mediante la manipulación del parámetro “filter”.

Figura 44. Registro de la solicitud con el código ofuscado

 

Figura 45. Registro de la solicitud con el código desofuscado

Al desofuscar el código de otro registro, se puede observar que realiza las mismas acciones que el código explicado anteriormente, solo cambia la URL de descarga que en este caso es hxxp[:]//185[.]225[.]75[.]242/download/xmrig[.]x86_64.

Además, esta solicitud esta intenta explotar la vulnerabilidad conocida como Spring4Shell, la cual permite a un atacante la ejecución remota de código (RCE).

Figura 46. Registro de la solicitud con el código ofuscado

Figura 47. Registro de la solicitud con el código desofuscado

Mirai

El artefacto descargado con nombre x86 pertenece a la familia de malware Mirai, esta amenaza tiene como objetivo agregar el dispositivo comprometido a su botnet. Esta red de Bots comúnmente es utilizada para lanzar ataques DDoS.

Adicionalmente, también se identificó un script llamado proxy_xml.php el cual se encuentra publicado en Github por el usuario Zounar, y permite reenviar todas las peticiones HTTP/HTTPS a otro servidor.

Campaña documentada en un sitio publico identificada por SCILabs

SCILabs identificó una investigación publica en la que se documentó la explotación de una vulnerabilidad de ejecución remota de código (RCE) en un dispositivo de Avaya Aura Device Services durante el mes de febrero, para cargar varias webshells de tipo PHP, las cuales fueron almacenadas en el directorio PhoneBackup. Además de estos scripts se observaron solicitudes con curl o wget hacia la dirección IP 178[.]62[.]44[.]152 para la descarga de scripts de tipo Shell, esta dirección IP y el nombre de algunos de los artefactos también fueron observados en los ataques documentados por SCILabs.

Figura 48. Descarga de script start.sh

En esta investigación también se observó que algunos artefactos intentaron descargar el software para criptominería XMRig y el dispositivo también presentaba una infección del malware Mirai, características observadas en los ataques documentados por SCILabs.

Figura 49. Descarga de XMRig

Artefactos recuperados de una investigación pública

Durante el monitoreo y cazas de amenazas en búsqueda de campañas o artefactos que estuvieran relacionados con la infraestructura observada en los ataques documentados por SCILabs, se lograron recuperar artefactos almacenados en la dirección IP 45[.]81[.]243[.]128. Es importante mencionar que este repositorio de malware estuvo expuesto durante el mes de julio, mes en el que ocurrió el primer ataque registrado por SCILabs.

Figura 50. Artefactos almacenados en 45[.]81[.]243[.]128

Del mismo modo que los artefactos observados en los dos ataques documentados por SCILabs, algunos se encargan de la descarga de scripts o malware adicional, otros de gestionar los procesos, buscar llaves SSH y hosts para infectar a más equipos dentro de la red, e incluso scripts que tienen el objetivo de establecer una reverse Shell. A continuación, se explica de forma general el funcionamiento de los artefactos:

Droppers

Dropper del archivo logrotate_bsd

El artefacto bsd.sh tiene como objetivo descargar el archivo logrotate_bsd, el cual se trata del software XMRig, a continuación, se explica de forma general su funcionamiento.

  • Realiza varias comprobaciones de procesos, validando su nombre o el consumo de CPU de ese proceso, para después terminarlos utilizando el comando kill -9.
  • Con el comando curl realiza la descarga de un archivo desde la URL hxxp[:]//45[.]81[.]243[.]128/logrotate_bsd.
  • Otorga permisos de lectura, escritura y ejecución al archivo descargado con el comando chmod 777, y lo ejecuta en segundo plano.

Figura 51. Código del script bsd.sh

start_arm.sh: Dropper del archivo xmirgARM

Este script al igual que el anterior tiene como objetivo descargar el software XMRig, otorgarle permisos de lectura, escritura y ejecución, para finalmente , ejecutarlo en segundo plano.

Figura 52. Código del script start_arm.sh

start.sh: Dropper de los scripts kill.sh, ssh.sh y XMRig

El script start.sh es el mismo observado en las campañas documentadas por SCILabs, y su objetivo es descargar el crypto-miner XMRig y los scripts adicionales, kill.sh y ssh.sh, los cuales son los encargados de gestionar los procesos y realizar el movimiento lateral dentro de la red interna.

start1.sh: Dropper del script kill.sh y XMRig

El script start1.sh es muy similar al artefacto start.sh, siendo su principal objetivo descargar el crypto-miner XMRig y el script adicional kill.sh, para la gestión de procesos en el equipo infectado.

Figura 53. Código del script start1.sh

La siguiente imagen ilustra los droppers recuperados del repositorio de malware expuesto y sus respectivos payloads.

Figura 54. Droppers recuperados del repositorio de malware expuesto

Scripts para la Gestión de Procesos y Movimiento Lateral

Como en los ataques documentados por SCILabs, los scripts kill.sh y ssh.sh, son los encargados de terminar procesos específicos, buscar claves SSH y hosts en varios directorios y archivos de configuración para infectar más equipos de la red interna.

Reverse Shell

El script rev.sh ejecuta una expresión del lenguaje Perl para establecer una conexión hacia la dirección IP 84[.]54.[]50[.]110 en el puerto 9000, si la conexión tiene éxito ejecuta una shell interactiva.

Figura 55. Código del script rev.sh

Durante esta investigación, SCILabs identificó 2 artefactos adicionales, de los cuales, hasta el momento se desconoce si fueron utilizados en la cadena de ataque, aunque con base en el estudio del modus operandi de Red BerryMiner, es muy probable que estos artefactos, también sean parte del arsenal de este grupo de amenazas. A continuación, presentamos una breve descripción de dichos artefactos:

Ligolo-ng

El archivo comprimido ligolo-ng_agent_0.3.3_Linux_64bit.tar.gz contiene la herramienta Ligolo-ng, la cual es usada por pentesters para establecer túneles a través de una conexión TCP/TLS inversa utilizando una interfaz TUN.

Webserver.py

Este archivo de Python implementa un servidor web básico que responde de manera diferente si la solicitud proviene de curl o wget, si no es el caso, se devuelve un mensaje de acceso denegado.

Figura 56. Parte del código del archivo webserver.py

Overlaps entre Campañas identificadas por SCILabs y la campaña documentada en un sitio público (indicadores clave)

A continuación, presentamos un comparativo entre las campañas identificadas por SCILabs y la que se documentó en una investigación pública. Este ejercicio se realizó para confirmar que el adversario detrás de estos ataques era el mismo.

Tabla 3. Overlaps entre las diferentes campañas de Red BerryMiner

Flujo de Ataque

A continuación, presentamos el flujo de ataque general, en campañas de Red BerryMiner, observadas por SCILabs.

Figura 57. Flujo de ataque de Red BerryMiner

Resumen Técnico

  • Red BerryMiner explota vulnerabilidades de servidores expuestos en Internet para iniciar su proceso de infección, principalmente la vulnerabilidad CVE-2023-3722 que afecta a la aplicación web de Avaya Aura Device Services.
  • Con base en la evidencia encontrada, Red BerryMiner puede explotar las vulnerabilidades CVE-2018-20062 (ThinkPHP) y CVE-2022-22965 (Spring Shell) para descargar artefactos en el dispositivo comprometido.
  • Entre los artefactos que utiliza este grupo de amenazas destacan los scripts PHP y bash que tienen como objetivo descargar artefactos adicionales, obtener información del usuario y sistema, establecer una reverse Shell, capacidades de Webshell/Backdoor, gestionar los procesos del sistema infectado, y recopilar llaves SSH y hosts para infectar más equipos en la red interna.
  • El objetivo final de Red BerryMiner es instalar el software XMRig para realizar actividades de criptomineria, e infectar el equipo comprometido con malware como Mirai o ShellBot, lo que les permite integrar estos dispositivos a una Bonet.

Modelo diamante

Figura 58. Modelo de diamante

TTPs PRE-ATT&CK

La siguiente matriz de TTPs basada en el Framework MITRE PRE-ATT&CK fue obtenida a partir del análisis de las diferentes campañas de Red BerryMiner.

Tabla 4. Matriz de TTPs PRE-ATT&CK

TTPs del Framework MITRE ATT&CK

La siguiente matriz de TTPs basada en el Framework MITRE fue obtenida a partir del análisis de las diferentes campañas de Red BerryMiner.

Tabla 5. Matriz de TTPs basados en el Framework MITRE ATT&CK

Conclusiones

 

Red BerryMiner, se caracteriza por la instalación del crypto-miner XMRig y malware adicional como la Botnet Mirai y ShellBot además del uso de lenguajes como PHP y Bash, aprovechando técnicas de “living-off-the land” para descargar artefactos maliciosos adicionales e instalar backdoors y reverse Shells. Esto, representa un desafío, particularmente en América Latina (LATAM), donde la madurez en ciberseguridad varía significativamente entre las organizaciones. Un ataque de Red BerryMiner no sólo puede generar costos operativos adicionales, sino que también expone a las organizaciones a violaciones de seguridad de datos, lo que puede desembocar en consecuencias legales y de cumplimiento normativo, así como en daños a la reputación corporativa.

El panorama de amenazas en Latinoamérica está en constante evolución. Los atacantes continuamente afinan sus métodos para aprovechar las vulnerabilidades emergentes y emplear técnicas más sofisticadas de evasión y persistencia, por lo que es importante que las organizaciones estén al tanto del modus operandi de este tipo de grupo de amenazas. Con base en la telemetría de SCILabs, consideramos que lo que resta del año continuaremos observando campañas de Red BerryMiner explotando las vulnerabilidades mencionadas en este documento y agregando otras a su arsenal, con la finalidad de fortalecer su red de Bots y abusar de la infraestructura de las organizaciones para realizar actividades de criptominería.

Con base en nuestra investigación realizamos las siguientes recomendaciones:

  • Realizar periódicamente respaldos fuera de línea de la información considerada como crítica o indispensable para la operación y continuidad del negocio.
  • Mantener todos los equipos de cómputo de la organización actualizados a la última versión del sistema operativo.
  • Mantener todas las aplicaciones actualidades de acuerdo con las versiones más estables con base a las recomendaciones de los fabricantes.
  • Realizar la aplicación de parches críticos en los sistemas o, en su defecto, implementar un sistema de blindaje a nivel de hipervisor que permita la implementación de parches virtuales que, de forma inmediata, logren mitigar la vulnerabilidad sin incurrir en el riesgo de alterar o dañar directamente el sistema operativo y que ello produzca un impacto en la operación.
  • Implementar un agente de integridad de archivos que tenga la capacidad de alertar y bloquear cualquier intento de manipulación de archivos seleccionados dentro de las políticas de seguridad definidas para la protección de los procesos críticos del negocio.
  • Evaluar la configuración del firewall perimetral para generar listas blancas que incluyan únicamente puertos y servicios legítimos utilizados por las aplicaciones relacionadas a la operación y gestión de los administradores.
  • Monitorear de manera permanente todas las comunicaciones de red de sus servidores críticos de su operación, alertando sobre cualquier desviación con relación a las reglas definidas y autorizadas por el área correspondiente a la seguridad de la información.
  • Verificar las tareas de las aplicaciones configuradas en el servicio Cron de Linux en busca de alguna tarea sospechosa, que pudiera estar programada para la ejecución relacionada a los TTPs o IoCs proporcionados en este informe.
  • Implementar un firewall de aplicaciones (WAF) o, si cuentan con él, realizar una evaluación de su configuración de acuerdo con las mejores prácticas del fabricante, y aplicarlas en el corto plazo.
  • Integrar políticas de seguridad en todos los niveles de la organización que consideren el uso de sistemas EDR con altas capacidades de investigación, manteniéndolos siempre actualizados y correctamente configurados bajo las mejores prácticas emitidas por los fabricantes.
  • Crear políticas de contraseñas seguras y aplique el principio de privilegios mínimos para todos los usuarios dentro de la organización, considere deshabilitar los usuarios “admin” o “root”, y cree roles personalizados y limitados para los diferentes tipos de administradores de los sistemas de acuerdo con sus funciones específicas.
  • Considerar los indicadores de compromiso contenidos en este documento para alimentar sus soluciones de seguridad.

IoCs

Hash SHA256

B8350B82A06D8F627045961E6FFFEA1C8D61C78A427379BEC6BA0795FB5FB233

3D16B6639BA3995B14D4D54214DE7F03A99913AD27A30F48AE8F18E9401F1B5C

F5FC4D5AA45B19AEE0E03B845883EB5085ECE684F2A2B9819AD4FB12B398B6E6

43DE9C19040AC8B6B26773CD84C24CBB8DC1B6E15FC9A6F75CAEA8EC9077852A

FCED6082FC11FA16CA230D662183B77CF968DEBD836156A4BF9A393174C7C067

6432B6037BFC85CD57F65CAB446D8D68D17AFCB1DEB7F9ACF658096CFB86D6E0

5BB68239EED2989B9FF88E62277392BF6D918F0A190ECD1242F22D6AE1E050FB

8602DF7D01BE4F3DB26F29F3ACBC538E480FDAE5CAE498A473F142CB2CA7A07F

9D544236DD7543F53BD01BF3F75384642730969F0DB8ACE19D43CAA05243073F

924DFD425C1AF78D21B77A1001471EBCA9DBB9AB488DA961B96B972403F397F8

4D482E131DD8D0C8847CBA60DB394D774C377C7D86D9970AAC5C7B05AF19B284

D5E9D9CF5779A805EF0FBA844E79334A1D8D98DAD6F691D9F40BDFEFFD1EA493

6209FF7C794862CBFE550739A440A9C7E2B4A7F078F8667F5DAC9112072B9519

367A32551FC99C42ADE9E3CAEA382AA3DC4C5E868EA1A61AE6353F515B94DE2F

EF306A0DE129D0FCB919EF3F25BFB170A1E359047C4F3EC48E073C098658E9D0

B453A7400DC66318601DC923662B7C9F7D151BC1D159968914F3FEC81F7B4D58

F0F9D18CD9631A8CCFDC8DF13448C22AD35E5DFDDA58B1008687AB0E838F3206

56D0739A75AAE5D3D63A408F0DEA43B3B6D4A22F4E53130CD04A8E1B77CEC6D4

D00781A5D823DD2D3CC200609F3D67981D01FCCEC260BF37D41AC993F4E6C627

429BEBD585E8632786A9C2A85A7CF61ABE6D55B670FAC1194A0EE5659D11413E

AC2194E15DD3F4DF26E74F1A9B886461D5AACE50A32C1C53CF0DB23DB87FB19D

AFCA79570FDD9543776150A6F88EE0D3CF6084C710473211E2FB360D16C982AB

57236B2EC7F44A077945FDA56CE151953FF0A62E65B5611F56042E9EAD9A9FA6

067896678A537669DFA2F1A9B5EDB36BDE4960C1DF2CAD986F02BAA570195BE4

C3EAE12D34DDBD00E59D524B5B4B06D4C17D3ABC9144920899F5F0EB24E1F6F0

DC080CAEE6126106D8276A0B587AE9B37624A225C34F792B1C5D91FEAB134D8B

D6BBF6CE4D3B1AD5E109505C3C4BE65E0B063295500D88130BBED34298AA6D39

F1566A37A125474DC8C0F60AF00162CC526E614147612C5CFCCE707AFCCF038D

49D4592A26F5FEC7E5381F6DEDFFF33A8D2C9D72EA5BF4CA9352000E78EBC069

2E33F3718D259179F669C879A830BC8818BAB09AB6ECD6285DA39F9A2422BDB9

C7DE9799873B353F2FEC6A490ED1D4062340EDDDA623AFA0BA8798ACA7CED31D

1E70FE3CDBF8EB1AF6C1FC2380A8FF89A51791632EEA6425585F984D74254ED1

3498FBC888F9EF8C6146AB869B4D38340C209F2817DC4BBBF932E37D772D7B5B

1586100B165AC791ED60FF7B662E2FC2D502D4ABB6418CC1F7BF591C39C84130

Direcciones IP

178[.]62[.]44[.]152

45[.]81[.]243[.]128

84[.]54[.]50[.]110

85[.]239[.]33[.]32

45[.]90[.]161[.]122

185[.]225[.]75[.]242

 

URLS

HXXP[:]//85[.]239[.]33[.]32/RUBY

HXXP[:]//178[.]62[.]44[.]152/START[.]SH

HXXP[:]//45[.]81[.]243[.]128/START[.]SH

HXXP[:]//84[.]54[.]50[.]110[:]8080/TGEHFBIBXO4ZTE

HXXP[:]//84[.]54[.]50[.]110:8080/QKFLHWJE0S

HXXP[:]//84[.]54[.]50[.]110[:]8080/HHWXWQTWAYYDQO

HXXP[:]//84[.]54[.]50[.]110[:]8080/FGHD73W

HXXP[:]//84[.]54[.]50[.]110[:]8080/CFDGIZXBGG

HXXP[:]//84[.]54[.]50[.]110[:]8080/5VXEZPFOF5QG

HXXP[:]//45[.]90[.]161[.]122/BINS/X86

HXXP[:]//45[.]81[.]243[.]128/XMRIG-6[.]19[.]2-LINUX-STATIC-X64[.]TAR[.]GZ

HXXP[:]//185[.]225[.]75[.]242/DOWNLOAD/XMRIG[.]X86_64

HXXP[:]//45[.]81[.]243[.]128/KILL[.]SH

HXXP[:]//45[.]81[.]243[.]128/SSH[.]SH

HXXP[:]//DOWNLOAD[.]ASYNCFOX[.]XYZ/DOWNLOAD/XMRIG[.]X86_64