Kingsing evoluciona | blog Akamai

Introducción
Un botnet de fondo grande y persistente y criptominable es un sistema de infección a escala en todo Internet.
La campaña fue vista por primera vez por Akamai SIRT el 16 de febrero de 2021 y parece estar dirigida a sistemas Windows y Linux. La botnet capturó su interés y el del equipo Akamai SIRT porque ha demostrado ser muy activa en un conjunto diverso de regiones geográficas, incluidas América, Europa y Asia. La botnet ha estado operando con la misma dirección IP de distribución (194.38.20.199) sin necesidad de rotar durante más de seis meses. Anteriormente, la campaña solo tenía como objetivo máquinas Linux, pero se expandió recientemente a sistemas Windows también.
Infección de sistemas Windows
Para infectar equipos Windows, botnet aprovecha CVE-2020-14883, Una vulnerabilidad que afecta a las versiones 10.3.6.0.0, 12.1.3.0.0, 12.2.1.3.0, 12.2.1.4.0 y 14.1.1.0.0 de Oracle WebLogic Server. Cuando se aprovecha, permite que un atacante realice una ejecución remota de código (RCE), lo que puede dar como resultado una conclusión del servidor Oracle WebLogic.
La infección comienza haciendo que el equipo víctima descargue y ejecute un archivo XML llamado wbw.xml. En los equipos Windows, el archivo XML se ejecuta a través de la clase ClassPathXmlApplicationContext

El archivo wbw.xml obtenido contiene un comando PowerShell integrado, que se ejecuta en la máquina de la víctima. El comando es:

Intenta descargar una secuencia de comandos de PowerShell llamada " 1.ps1meterse en la máquina de las víctimas usando el System.Net.WebClient.DownloadString Método: También aprovecha el indicador Set-ExecutionPolicy Bypass para garantizar que no se bloquee nada y que no se generarán avisos ni advertencias durante la ejecución.

Balance 1.ps1 luego, script descarga un archivo ejecutable crypto miner llamado xmrig.exe, así como también un config.json archivo, que contiene información de configuración para que el minero la consuma, como direcciones de crypto wallet, extremos de crypto pool y configuraciones adicionales. Además de eso, el 1.ps1 también contiene un $miner_name variable que almacena el nuevo nombre al que se le cambiará el nombre al archivo ejecutable del crypto miner, xmrig.exe , en este caso se le cambiará el nombre a xmrig.exe a "fecha de finalización del sistemase ejecutó y luego se ejecutó.


Balance 1.ps1 el guion establece la persistencia en la máquina de la víctima para actualizar el config.json archivo y el minero. Lo hace aprovechando SchTasks.exe, que permite la creación, eliminación y ejecución de tareas programadas en una máquina local o remota de PowerShell. Más información sobre SchTasks.exe se puede encontrar aquí. La tarea programada se denomina "Actualice el servicio para Windows Servicese puede aprovechar nuevamente la -Alerta de omisión ExecutionPolicy para evitar que se generen advertencias o avisos mientras se ejecuta, así como la bandera oculta de estilo de ventana para permanecer oculta.

Infección de sistemas Linux
La campaña está aprovechando varios CVE para lograr RCE con el fin de infectar sistemas Linux. Junto con el malware de Kintsing, que contiene un crypto miner, las cargas útiles de Linux también tienen un troyano de acceso remoto (RATA). Los servicios dirigidos incluyen Oracle WebLogic Server, Redis, Apache Solr, PHPUnit y Supervisor XML-RPC.
Esta campaña también aprovecha el servidor Oracle WebLogic CVE-2020-14883 en sistemas Linux. Sin embargo, a diferencia de la versión de Windows de esta vulnerabilidad, donde la RCE ocurre a través de ClassPathXmlApplicationContext Clase, en Linux, se produce a través de FileSystemXmlApplicationContext clase. El archivo XML malicioso se denomina wb.xml, que descarga un script bash en lugar del anterior wbw.xml Para Windows, que descarga una secuencia de comandos de PowerShell.


En los sistemas Linux, la infección comienza alcanzando la RCE utilizando cualquiera de los CVE que se indican en la tabla a continuación para descargar un archivo de script bash en la máquina de la víctima.



Aunque el nombre del archivo de script bash varía entre s.sh , p.sh, sup.sh, d.sh, ex.sh, r.sh, spr.sh, tf.sh o wb.sh todos hacen casi lo mismo.
El script bash elimina a cualquier minero de la competencia que pueda ya existir en el sistema y desactiva las funciones de seguridad y registro. Luego, descarga el malware de Kinsing (escrito en Golang), establece la persistencia mediante el uso de crontab y, a continuación, inicia la minería de cifrado.

Una vez ejecutado en la máquina de la víctima, el malware Kinsing crea un segundo proceso llamado kdevtmpfsi en el directorio /tmp, que es el crypto miner xmrig, y lo ejecuta. El malware Kinsing monitorea constantemente kdevtmpfsi proceso para garantizar que se esté ejecutando.
& Dirección IP de control de comandos de decodificación
La forma en que el malware se comunica con el servidor C2 es mediante la decodificación de la dirección IP C2 en el tiempo de ejecución mediante una función llamada GetActiveC2CUrl. Balance GetActiveC2CUrl La función utiliza un cifrado de flujo RC4 para los datos hexadecimales de texto sin formato XOR con una clave de texto sin formato que se almacenan dentro del binario.
Debido a la naturaleza de cómo las cadenas se almacenan dentro de un binario Golang , donde todas las cadenas estáticas básicamente se concatenan entre sí, lo que da como resultado una gran hinchazón de cadenas, la clave de texto sin formato y los datos hexadecimales se pueden ocultar fácilmente dentro de la cadena masiva. Después de invertir un poco el GetActiveC2CUrl función, se puede encontrar la ubicación en la memoria y la longitud de la llave y de los datos hexagonales.


Balance GetActiveC2CUrl La función hexadecimal decodifica los datos hexagonales C2 y luego, junto con la tecla, ambos pasan a una segunda función llamada RC4. La personalización RC4 utiliza la función Flujo de trabajo de FUNC (c *Cipher) (dst, src []byte) Internamente desde el paquete de golang rc4 para generar la dirección IP C2.
Ahora que se obtienen los datos hexadecimales C2 y la tecla, se obtiene el GetActiveC2CUrl La función se puede volver a diseñar y reescribir en Golang para calcular la dirección IP C2 activa.


Capacidades PARA RATAS
El malware Kinsing tiene capacidades de acceso remoto de troyanos (RATAS) que se pueden encontrar en una función llamada DoTask() dentro del binario. Balance DoTask (tarea de dosis la función contiene algunas llamadas de funciones interesantes que se ejecutan según una determinada entrada
RunTaskWithScan()
UpdateTask()
StartCmd()
EjecutaskOut()
masscan()
medias ()
conexión posterior ()
RunTaskWithHttp()
DownloadAndExecute()
Una de estas funciones interesantes es StartCmd() esto permite que se ejecute un comando arbitrario en la máquina de la víctima.

Comunicación de control de comandos &
El malware se comunica con el C2,185.154.53.140, a través de HTTP. Envía las solicitudes HTTP C2 con regularidad, recibe instrucciones para ser ejecutadas y proporciona comprobaciones de estado simples.
La máquina infectada envía la información C2 con cada solicitud HTTP sobre su estado actual y los recursos del sistema, como el número de núcleos, la memoria, el sistema operativo, si se obtuvieron o no privilegios de raíz y más. Todos estos parámetros se proporcionan al servidor C2 mediante encabezados HTTP personalizados.

Un punto final que la máquina infectada solicita constantemente para recibir instrucciones es GET. Cuando una máquina infectada hace una solicitud DE GET a los C2 GET endpoint, el malware intenta inmediatamente descargar nuevos scripts de shell maliciosos adicionales de la IP de distribución original 194.38.20.199.

Las secuencias de comandos de bash que luego se descargan de la IP 194.38.20.199 de distribución original como resultado de la reprueba GET se denomina punto final del C2 ph.sh y spre.sh. Estos dos archivos son diferentes del script de bash inicial de infección que vimos antes, cada uno tiene un propósito diferente y contienen vectores de infección adicionales.
Primero examinaremos el ph.sh script, descarga un rootkit llamado libsystem.so desde el 194.38.20.199/libsystem.so terminal además del malware Kinsing existente en la máquina de la víctima. Luego, el script ph.sh precarga este rootkit en /etc/ld.so.precarga

Balance ph.sh el script también establece un segundo mecanismo de persistencia, además de los trabajos de cron ya existentes que se inyectaron previamente con el script inicial. Para hacerlo, se registra un servicio de sistema que volverá a infectar periódicamente el host.

Si desea obtener más información sobre el libsSystem. De esta manera, el rootkit que instala el script ph.sh y su funcionamiento interno, Trend Micro escribió un fantástico blog sobre este rootkit específico que se puede encontrar aquí
El segundo archivo de script bash interesante que se obtiene debido a un GET La respuesta del criterio de valoración C2 es spre.sh. Su objetivo es propagar la infección a hosts adicionales mediante la búsqueda de credenciales ssh para cualquier host al que la víctima tenga acceso mediante un examen ~/.ssh/config , ~/.bash_historyy .ssh/known_hosts. Balance spre.sh luego, el script intentará ingresar a los hosts descubiertos mediante los cres obtenidos que se encontraron e infectarlos también.

Otro punto de destino C2 interesante que la máquina infectada solicita para obtener instrucciones es el /mg criterio de valoración. Cuando la máquina infectada hace una solicitud DE GET al /mg terminal, el C2 responde con algunos caracteres, luego inmediatamente la máquina infectada comenzará a comunicarse con una tercera dirección IP, 95.181.179.88, que parece ser responsable de dar comandos de minería a la máquina infectada en forma de una carga útil JSON-RPC sobre HTTP.

Qué hacer
Para mitigar estas amenazas, el SIRT de Akamai recomienda monitorear los procesos en sus sistemas para detectar un consumo de recursos anormalmente alto y una actividad sospechosa en la red. El alto uso anormal de CPU para un proceso determinado puede ser un indicador de actividad de criptomación.
El SIRT de Akamai también recomienda que revise con frecuencia los trabajos Cron que están registrados en las pestañas frontales de sus sistemas para asegurarse de que los trabajos Cron no se comunican con ninguna dirección IP desconocida, que es una técnica común para que el malware de Linux establezca la persistencia, y la campaña analizada no es una excepción.
En los sistemas Windows, se debe hacer lo mismo con PowerShell mediante el uso de SchTasks.exe /Query para mostrar cualquier tarea programada que se haya creado con esta campaña. También verifique los procesos en ejecución en sus sistemas Linux y asegúrese de que los procesos con el nombre kinsing o kdevtmpfsi no se estén ejecutando y que un proceso denominado supdate no se esté ejecutando en sus sistemas Windows.
Agregue una autenticación sólida a sus sistemas cuando sea posible, las contraseñas débiles se pueden forzar fácilmente. También asegúrese de que los servicios que están dirigidos por la campaña analizada, que incluyen Oracle WebLogic Server, Redis, Apache Solr, PHPUnit y Supervisor XML-RPC, no se enfrentan a Internet si no necesitan ser, lo que reduce en gran medida el riesgo de que estos servicios se infecten. Por ejemplo, si una instancia de Redis solo es utilizada por sistemas internos, no es necesario estar orientada a Internet.
El SIRT de Akamai también recomienda comprobar sus sistemas contra las indicaciones de compromiso (IOC) que se proporcionan en la sección de IoC a continuación para asegurarse de que sus sistemas no estén infectados. Además de eso, emparche sus sistemas con regularidad y siga las mejores prácticas.
Indicaciones de compromiso (IOC)
IP
IP |
Descripción |
185.154.53,140 |
Mando y control |
194.38.20,199 |
Distribución de malware |
95181179.88 |
Administra operaciones de criptografía |
195.3.146,118 |
Copia de seguridad de la distribución de malware |
Archivos
SHA-256 |
Nombre |
Descripción |
8ca0229fb64e3f1819375cf1daf32104c37c0d0923bdc35cb6bea655ecd1a6a4 |
s.sh |
194.38.20.199/s.sh, bash script que descarga el malware de Kinsing |
ede8fdb68d777efcc0538b465d640cbb2c061bd49461f76d65f68c135ff8bbb6 |
p.sh |
194.38.20.199/p.sh, bash script que descarga el malware de Kinsing |
0e79ec7b00c14a4c576803a1fd2e8dd3ea077e4e98dafa77d26c0f9d6f27f0c9 |
d.sh |
194.38.20.199/d.sh, script bash que descarga malware de Kinsing |
6e35b5670953b6ab15e3eb062b8a594d58936dd93ca382bbb3ebdbf076a1f83b |
spr.sh |
194.38.20.199/spr.sh, script bash que descarga el malware de Kinsing |
818179ac928027a5c26c9b13d3d830b731c3e4c46ba1e305867e3d4acaf3ef |
r.sh |
194.38.20.199/r.sh, bash script que descarga el malware de Kinsing |
56ac2321e481708ea72e2bf7710e66c3455afa729b24f6a9065ae0cca8fb3 |
ex.sh |
194.38.20.199/ex.sh, script bash que descarga el malware de Kinsing |
05e5ad89443b58805ae2eb2628d3eef1d6cbcc338bced23f422abe5ce60ff82d |
tf.sh |
194.38.20.199/tf.sh, script bash que descarga el malware de Kinsing |
274b11542fcb30065c4cc0976ce33252ba2812756f7e22f6d80fa1acadf5c4c |
wb.sh |
194.38.20.199/wb.sh, script bash que descarga el malware de Kinsing |
6e25ad03103a1a972b78c642bac09060fa79c460011dc5748cbb433cc459938b |
Kinsing |
194.38.20.199/kinsing, the Kinsing malware binario |
7d31843ce5231c95ce07a609cb4473fe53b95a8d0685df9d666de348d17c69ff |
config.json |
194.38.20.199/config.json, json config para XMRIG miner |
c38c21120d8c17688f9aeb2af5bdafb6b75e1d2673b025b720e50232f8808a |
libsystem.so |
194.38.20.199/libssystem.so, un binario rootkit |
5e5b5171a95955ecb0fa8f9f1ba66f313165044cc1978a447673c0ac17859170 |
xmrig.exe |
194.38.20.199/xmrig.exe, XMRIG miner para Windows |
49ff0329b9ad42c7fb17e6a2d80b316ed6b759ab5dfd04a5aba42b97225494cf |
wbw.xml |
Archivo xml 194.38.20.199/wbw.xml que descarga un script powershell para infectar sistemas Windows |
25b545dc3423d5c3c0181f559486643a7097b5fd87b32f0347ed667cbf3fb38e |
wb.xml |
Archivo xml 194.38.20.199/wb.xml que descarga un script bash para infectar sistemas Linux |
6b9e23cb675be370a18a0c4482dc566be28920d4f1cd8ba6b4527f80acf978d3 |
curl-amd64 |
194.38.20.199/curl-amd64 , curl binario |
fecd30cd7802f8ac4137a2d0659b3052411a99d809a5aefb48f8b821905100f3 |
al.sh |
194.38.20.199/al.sh, script bash que detiene el servicio aegis |
cb2ca16246a687b34fa1ba76015cb4a3b50b4ecca4550478eb580c4725ab48f |
cron.sh |
194.38.20.199/cron.sh, bash script que actualiza la crontab |
d7cda9e427d0848352a1158c68a2577c1600965fb9dbb32bc1e10af1a442d284 |
ph.sh |
194.38.20.199/ph.sh, script bash que descarga el malware Kinsing y el libsSystem.SO rootkit |
f4c319e43296ab323615ac4bd4b7601991218ecb6d6043b1c040a96f1a33f14f |
spre.sh |
194.38.20.199/spsh, bash script que propaga la infección a otros hosts a través de ssh |
dd603db3e2c0800d5ea262b6b8553c68dea486b545d4965df5dc43217cc839 |
kdevtmpfsi |
El proceso de Kinsing crypto miner |