Botnet de backdoor SSH con técnica de infección de ‘investigación’

En un tweet reciente, el investigador de malware @0xrb compartió una lista que contiene URL de muestras de botnet de IoT capturadas. Entre los enlaces, había un ejemplo poco común, una URL detrás de un CDN de Discord.

El autor del malware afirma estar realizando estas infecciones con »fines de investigación» o, en sus palabras, para probar qué servidores permanecerían activos con la infección desapercibida durante el período más largo (por infección nos referimos a agregar usuarios para acceso ssh remoto). La afirmación de que «no hay fines de investigación de daños» está respaldada por hacer de la etapa final de la infección un script de shell en lugar de un binario compilado que requeriría más tiempo para realizar ingeniería inversa. Además, la carga útil binaria de la etapa 1 no está ofuscada/empaquetada. 

Este malware de botnet hace puertas traseras a los dispositivos Linux con acceso SSH al agregar usuarios.

Bits interesantes:
evasión de IDS de red / lista negra  -> Discord CDN para distribución binaria a través de HTTPS en lugar de cajas de VPS (la forma típica)
Evasión anti-sandbox y EDR / Antivirus  -> Uso de tiempos de espera, elimina registros e historial de bash, cadenas hexadecimales repetidas como carga útil intermedia

Etapa 1

La infección comienza con la obtención de un script de shell de la siguiente URL y su ejecución:
hxxps://cdn.discordapp.com/attachments/779820448182960152/780735645169352765/ugyuftyufydurdiytyabins.sh

Cuando se trata de redes de bots de IoT / Linux, los scripts de shell se utilizan normalmente para descargar y ejecutar binarios de compilación cruzada de la botnet. En este análisis, veremos la muestra binaria compilada para la CPU Intel x86.

URL: htxxps: //cdn.discordapp.com/attachments/780731895721492502/780732439554687006/x86
binario nombre: x86
SHA256:3a09d7ff4e492c9df2ddd9f547d0307d8e57dabebfb0bb8673c0c078deda6232
VirusTotal:  https://www.virustotal.com/gui/file/3a09d7ff4e492c9df2ddd9f547d0307d8e57dabebfb0bb8673c0c078deda6232/detection
se detecta la muestra x 86 por 42/62 motores AV. Esto no es extraño, ya que la muestra no se confunde con empaquetadores o codificación de cadenas. 

Etapa 2

La muestra x86 (etapa 1) realiza una solicitud HTTP GET a una URL:  hxxp: //45.11.181.37/…/vivid

La secuencia de bytes se canaliza a bash directamente y no se escribe en un archivo en la máquina, como se hace típicamente con la técnica de transferencia de carga útil de cadenas hexadecimales repetidas, originalmente introducida por Hajime. La cadena hexadecimal se resuelve en la siguiente secuencia de comandos de shell:

La secuencia de comandos obtenidos del servidor web indica al dispositivo víctima que realice lo siguiente:

  1. Espere un tiempo -> posible comportamiento evasivo contra EDR / Antivirus y análisis de sandbox
  2. Descarga la carga útil de la etapa 3  hxxp: //gay.energy/…/os
  3. Borra el historial de bash 

Etapa 3

La carga útil de la etapa 3, os , también es un script de shell, realiza las siguientes acciones:

  1. Agrega usuarios
  2. Realiza una solicitud a un servidor PHP que registra los dispositivos recientemente infectados / con puerta trasera. La solicitud de registro contiene el puerto del servidor SSH en el dispositivo víctima, el nombre del sistema operativo, el número de CPU y la memoria RAM + SWAP disponible en el dispositivo.