fbpx
Capital Software

Los nuevos trucos de un viejo bot: explorar los últimos métodos de ataque de Qbot

The Return of Qbot | BAE Systems

Introducción

El famoso troyano bancario Qbot ha estado en el negocio por más de una década. El malware, que también ha sido apodado Qakbot y Pinkslipbot, fue descubierto en 2008 y es conocido por recopilar datos de navegación y robar credenciales bancarias y otra información financiera de las víctimas. Es altamente estructurado, de varias capas, y se está desarrollando continuamente con nuevas características para ampliar sus capacidades. . Estos nuevos «trucos» significan que a pesar de su edad, Qbot sigue siendo una amenaza peligrosa y persistente para las organizaciones. Se ha convertido en el equivalente de malware de un cuchillo del ejército suizo, capaz de:

  • Robar información de máquinas infectadas, incluyendo contraseñas, correos electrónicos, detalles de tarjetas de crédito y más.
  • Instalación de otro malware en máquinas infectadas, incluyendo ransomware
  • Permitir que el controlador Bot se conecte al ordenador de la víctima (incluso cuando la víctima ha iniciado sesión) para realizar transacciones bancarias desde la dirección IP de la víctima
  • Secuestrar los hilos de correo electrónico legítimos de los usuarios de su cliente de Outlook y usar esos hilos para tratar de infectar los equipos de otros usuarios

Una campaña destacada con QBot se desarrolló desde marzo hasta finales de junio de este año. Asumimos que la campaña se detuvo para permitir que los que estaban detrás de QBot llevaran a cabo más desarrollo de malware, pero no imaginamos que volvería tan rápidamente.

Hacia finales de julio, una de las amenazas cibernéticas más graves de la actualidad, el troyano Emotet, volvió a la actividad completa y lanzó múltiples campañas malspam, impactando el 5% de las organizaciones en todo el mundo. Algunas de estas campañas incluyeron la instalación de una versión actualizada de Qbot en los pc de las víctimas. Unos días más tarde, identificamos una nueva muestra de Qbot descartada por la última campaña de Emotet, lo que nos llevó a descubrir una infraestructura de comando y control renovada y nuevas técnicas de malware distribuidos a través del proceso de infección de Emotet.

Por si eso no fuera suficiente para nosotros, la campaña de malspam de Qbot se reanudó a principios de agosto, extendiéndose globalmente e infectando nuevos objetivos. Uno de los nuevos trucos de Qbot es particularmente desagradable, ya que una vez que una máquina está infectada, activa un ‘módulo de recopilador de correo electrónico’ especial que extrae todos los hilos de correo electrónico del cliente de Outlook de la víctima, y lo carga a un servidor remoto codificado. Estos correos electrónicos robados se utilizan para futuras campañas malspam, lo que facilita a los usuarios ser engañados para hacer clic en archivos adjuntos infectados porque el correo electrónico de spam parece continuar una conversación de correo electrónico legítimo existente. Los investigadores de Check Point han visto ejemplos de hilos de correo electrónico dirigidos y secuestrados con temas relacionados con Covid-19, recordatorios de pago de impuestos y contrataciones de empleo.

Sobre la base de nuestra visibilidad, la mayoría de los ataques se hicieron contra organizaciones con sede en Estados Unidos y Europa como podemos ver en la Figura 1.

Figura 1 – Organizaciones atacadas por país

Entre ellos, las industrias más específicas estaban en los sectores gubernamental, militar y manufacturero.

Figura 2 – Organizaciones atacadas por la industria

Después de un análisis exhaustivo de estas nuevas muestras de QBot, compartiremos nuestros conocimientos e ideas sobre los siguientes temas:

  • Proceso de infección de Qbot – hilos de correo electrónico secuestrados y descargadores de VBS.
  • Su funcionalidad de carga útil y su versión se descomponen.
  • Protocolo de comunicación C&C y obtención de módulos.
  • Cómo una víctima se convierte en un potencial bot-proxy y varios métodos que expone el módulo Proxy.

Cadena de infección

La cadena de infección de QBot se describe en el siguiente diagrama de flujo y se discutirá en las siguientes secciones:

Figura 3 – Diagrama de la cadena de infección

Correo electrónico malintencionado

La cadena de infección inicial comienza enviando correos electrónicos especialmente diseñados a las organizaciones objetivo. El método es menos sofisticado que las técnicas de spear-phishing, pero tiene atributos adicionales que añaden a su credibilidad. Uno de ellos se llama «Hilos de correo electrónico secuestrados» – captura de conversaciones de correo electrónico archivadas y responder al remitente con el contenido malicioso. Esas conversaciones podrían ser capturadas usando el módulo de recopilador de correo electrónico de Qbot que describiremos más adelante.

Podemos ver en la Figura 4Figura 5Figura 6, ejemplos de estos métodos a partir de muestras enviadas por @malware_traffic en su blog:

Figura 4 – Ejemplo de hilo de correo electrónico relacionado CON COVID-19

Figura 5 – Ejemplo de hilo de correo electrónico para recordatorio de pago de impuestos

Figura 6 – Ejemplo de hilo de correo electrónico para el reclutamiento de trabajos

Cada uno de estos correos electrónicos contiene una dirección URL a un archivo ZIP con un archivo de script VBS – Visual Basic malintencionado.

Durante nuestro seguimiento de la campaña malspam, hemos visto cientos de URL diferentes para ZIP malicioso cayendo cuando la mayoría de ellos estaban comprometidos sitios de WordPress.

Infección de VBS

El método de infección basado en VBS es bastante nuevo para el malware, y se está utilizando desde abril 2020. En campañas anteriores, la cadena de infección comenzó con un documento de Word que contiene macros maliciosas.

Mientras que las macros anteriores tenían simple ofuscación y decodificación de cadenas, el archivo VBS contiene varios métodos más avanzados:

Tamaño de archivo – El tamaño del archivo es mayor que 35 MB, rellenado con bytes. Los archivos grandes suelen ser descartados por varios entornos sandbox debido a limitaciones de rendimiento.NULL

Temporizador de suspensión: el script retrasa su ejecución llamando a la API sleep. Este es otro método para evitar espacios aislados.

Ofuscación: el script contiene varios métodos de ofuscación, como los descritos en la figura 7.

Figura 7 – Métodos de ofuscación VBS

Cifrado – El archivo VBS descarga la carga útil Qbot de una de las 6 posibles URL cifradas codificadas. Estas direcciones URL se cifran mediante un cifrado XOR personalizado 3 veces con diferentes claves que se crean dinámicamente. Hemos creado un script de extracción al que se puede acceder en el Apéndice B.

Con el fin de apoyar la detección y la caza de archivos VBS maliciosos adicionales, Escribimos una regla YARA que se puede observar en el Apéndice A.

Similar al antiguo método de infección, el archivo VBS descarga y ejecuta la carga útil Qbot.

Qbot Payload

Análisis de versiones

En el transcurso de nuestro análisis, los operadores de Qbot actualizaron con frecuencia sus versiones y nos animaron a realizar un seguimiento y analizar los cambios en todas y cada una de las versiones. El hecho de que los desarrolladores dejaron una etiqueta de versión marcada en las muestras, nos permitió realizar este análisis más fácil.

Por ejemplo, echemos un vistazo a la etiqueta de versión como se muestra en el ejemplo desempaquetado a continuación:

Figura 8 – Versión principal y secundaria de la muestra

De eso, podemos deducir que la versión inicial de carga útil es, mientras que la versión principal de carga útil es . (La versión principal se lee como un valor hexadecimal)325/5325/7

Durante los últimos meses, realizamos un seguimiento de las diferentes versiones de Qbot e identificamos algunas de las diferencias en cada versión, como se puede ver en la siguiente tabla.

destacadoMenorPayload MinorMarca de tiempo de la versiónNotas
32444822 de enero de 2020Primera versión vista para la versión principal 324.
324353533 de marzo de 2020 
3243756513 de marzo de 2020 
3243797020 de marzo de 2020Se ha añadido el comando 35 compatible con el módulo hVNC.
324383741 de abril de 2020 
324385751 de abril de 2020 
324388798 de abril de 2020Añadido comando 10 – terminar proceso por nombre.
32439012710 de abril de 2020 
32439313629 de abril de 2020El recurso JS Updater ya no está incluido. Los comandos JS Update se han ajustado respectivamente.
3243991417 de mayo de 2020Se ha añadido una larga lista de programas de análisis en la lista negra que forman parte del método anti-VM.
32440114228 de mayo de 2020 
3255729 de julio de 2020Introdujo nuevas técnicas análisis.

Se han añadido comprobaciones anti-VM en el lado del servidor.
32571331 de julio de 2020 
3258143 de agosto de 2020 
32535427 de agosto de 2020 
3253743August 11, 2020La última versión conocida hasta la escritura de este artículo.

La fecha mencionada para cada ejemplo se basa en el atributo de tiempo de compilación ejecutable. Ese campo se puede cambiar a través de la desaplicación de tiempo, pero sospechamos que no se falsificó en estos casos.

También rastreamos las marcas de tiempo de la carga útil principal, y vimos que el tiempo de compilación era consistentemente minutos aparte de la carga útil inicial:

Figura 9 – Comparación del tiempo de compilación de ejemplo a carga útil

Esquemas de descifrado

El malware implementa varios esquemas de cifrado para ocultar su funcionalidad y datos de las víctimas, y proveedores de antivirus. Con el fin de analizar con éxito el malware y sus componentes, tuvimos que automatizar el proceso de descifrado para todas las variantes.

En la tabla siguiente se muestran los diferentes métodos de descifrado y decodificación:

Datos cifradosAlgoritmoFuente clave
Datos de redBase64 + RC4KEY = SHA1(ENCRYPTED[0:16] + "jHxastDcds)oMc=jvh7wdUhxcsdt2")
Carga útil (recurso «307»)RC4 + Compresión personalizadaKEY = ENCRYPTED[0:20]
Archivo Javascript UpdaterRC4 + Compresión personalizadaKEY = ENCRYPTED[0:20]
Lista de bots (recurso «311») y configuración inicial (recurso «308»)RC4KEY = ENCRYPTED[0:20]
Archivo de configuración «.dat», archivo Web-Inject, módulo de enlaceRC4KEY = SHA1(EXE_NAME)
Información robada «.dll» ArchivoRC4srand(CRC32(BOT_ID))
KEY = RANDOM_STRING_32

Carga útil inicial

Carga útil inicial de Qbot ha sido cubierto extensamente por otros investigadores de malware. Las últimas versiones han implementado varios componentes de malware típicos para reducir su visibilidad y endurecer su análisis:

Packer: el ejecutable se ha reconstruido con un empaquetador.

Random Directory Name ( Random Directory Name): permite crear un directorio de trabajo con nombres de directorio y archivo aleatorios para evitar las firmas de archivos. La ubicación del directorio es . El ejemplo del directorio de trabajo se puede observar en la Figura 11.%APPDATA%\Microsoft

Cifrado de cadenas: contiene cadenas cifradas mediante el cifrado XOR (también se aplica a otros módulos).

Tabla de importación dinámica – Importar tabla creada dinámicamente en función de cadenas cifradas (se aplica también a otros módulos).

Técnicas anti-VM y Anti-Debug:

  • Las últimas versiones buscan artefactos relacionados con máquinas virtuales en el lado del servidor. configuración del ordenador de la víctima se está enumerando y enviado al C2. Basándose en esa información, el servidor decide si es seguro «empujar» módulos a la víctima.
  • Buscando la existencia del puerto «VMWare»
  • Búsqueda de VM y procesos relacionados con el análisis. Las últimas versiones también añade una larga lista de programas de análisis en la lista negra:

Fiddler.exe;samp1e.exe;sample.exe;runsample.exe;lordpe.exe;regshot.exe;Autoruns.exe;dsniff.exe;VBoxTray.exe;HashMyFiles.exe;ProcessHacker.exe;Procmon.exe;Procmon64.exe;netmon.exe;vmtoolsd.exe;vm3dservice.exe;VGAuthService.exe;pr0c3xp.exe;ProcessHacker.exe;CFF Explorer.exe;dumpcap.exe;Wireshark.exe;idaq.exe;idaq64.exe;TPAutoConnect.exe;ResourceHacker.exe;vmacthlp.exe;OLLYDBG.EXE;windbg.exe;bds-vision-agent-nai.exe;bds-vision-apis.exe;bds-vision-agent-app.exe;MultiAnalysis_v1.0.294.exe;x32dbg.exe;VBoxTray.exe;VBoxService.exe;Tcpview.exe

  • Buscando controladores de dispositivos relacionados con la máquina virtual. Ejemplos:

Figura 10 – Técnica anti-VM del controlador de dispositivo

  • Buscando una máquina virtual a través de la instrucciónCPUID
  • Forzar excepciones para comprobar si el depurador está presente
  • Comprobación de firmas de sandbox

Persistencia: lograr la persistencia a través de los valores del Registro y el programador de tareas.

Cada vez que el malware decide que es seguro para ejecutarse en el sistema de destino, descifra su recurso «307» como se explicó anteriormente, lo inyecta en el proceso recién creado, llama a un procedimiento de cargador que carga el archivo DLL y llama a la carga útil principal.explorer.exeDllEntryPoint

Carga útil principal

La carga útil principal tiene varios roles:

  • Crear y mantener la configuración del malware.
  • Creación y mantenimiento de los mecanismos de mensajería: canalizaciones con nombre, eventos y mensajes personalizados de Windows.
  • Instalación y gestión de nuevos módulos: nueva función.
  • Crear y mantener un canal de comunicación adecuado con el servidor de C&C.
  • Ejecutar comandos a través de un mecanismo de cola de subprocesos personalizado.

La carga útil tiene varios módulos internos más que no vamos a profundizar en este artículo, tales como – capacidades de movimiento lateral, recolección de certificados, bot de spam, y más.

El malware construye su configuración a partir de varios recursos incrustados que se desempaquetan y descifran en tiempo de ejecución. Los recursos son:

  • «308»: datos de configuración iniciales.
  • «311»: lista de 150 bots direcciones IP y puertos para construir un túnel de comunicación.

El directorio de trabajo, como podemos ver en la Figura 11,es una parte importante de la funcionalidad del Qbot, y también se utiliza como método de sincronización entre los módulos.

Figura 11 – Ejemplo para el directorio de trabajo de Qbot

Los archivos de configuración de Qbot (terminar con ) y los archivos de información robados (terminar con ) son los más cruciales. Estos archivos son accedidos y cargados por todos sus módulos..dat.dll

Figura 12 – Archivo de configuración

Figura 13 – Archivo de información robado

Una de las preguntas que nos preguntábamos en este punto de la investigación era dónde podemos encontrar la verdadera lógica «bancaria». Las versiones anteriores de Qbot contenían varios módulos maliciosos como recursos incrustados, pero las versiones recientes eran bastante «limpias».

Para entender eso, tuvimos que profundizar en el protocolo de comunicación y encontrar métodos para obtener los módulos maliciosos.

Módulo de comunicación

El recurso «311», como dijimos anteriormente, contiene una lista de 150 direcciones IP de otros bots con los que la víctima debe comunicarse. Cada uno de estos bots reenviará el tráfico al servidor real de C&C o a un proxy de segundo nivel como mostraremos más adelante. Este método es una manera eficiente de ocultar la dirección IP de C&C.

Todos los mensajes siguientes se envían a través del método a la siguiente dirección URL: y se cifran con un valor de inicialización aleatorio. Para que sea más fácil entender la lógica, mostraremos solo los datos de red descifrados.POSThttps://<BOT_IP>:<BOT_PORT>/t3

Los datos de comunicación de C&C se envían en formato JSON, donde cada propiedad se identifica mediante un identificador numérico único. Como podemos ver más adelante en los mensajes de ejemplo, la propiedad JSON más importante es su código de mensaje que contiene la clave . Pudimos mapear los siguientes códigos de mensaje únicos:8

Víctima: C&C:

1 – Solicite el siguiente comando de C&C.

2 – Ack para un comando dado por C&C.

4 – Configuración del equipo y enumeración de procesos.

7 – Informe de información robada.

8 – Mensaje de puertos abiertos.

9 – Mensaje Keep-alive.

C&C – Víctima:

5 – Servidor Ack.

6 – Comando para ejecutar.

El programa contiene dos bucles de red paralelos: Keep-alive y sesión de informe, y Command Execution Session.

Keep-alive y Report Session

Esta sesión es bastante simple. El programa alterna entre el mensaje keep-alive al mensaje de informe de información robada. Para cada uno de estos mensajes, recibirá un servidor ack. Estos mensajes tendrán el siguiente aspecto:

Mensaje Keep-aliveVíctima -> C&C{ «8»: 9, // Código MSG «1»: 17, // Versión del protocolo de red «2»: «powqdc619830» // ID DE BOT de víctima}

Mensaje de información de denuncia robado

Toma el archivo cifrado de la información robada y lo envía..dllVíctima -> C&C{ «8»: 7, // Código MSG «1»: 17, // Versión del protocolo de red «2»: «powqdc619830», // ID DE BOT de víctima «3»: «spx145», // Grupo de bots «6»: 223, «7»: 4763, «36»: «617c… IcR67» // Base64 información codificada y cifrada}

Keep-alive y Report ResponseC&C -> Víctima{ «8»: 5, // Código MSG «16»: 270544960, // Dirección IP de la víctima «39»: «mzJzbJU», // Datos aleatorios «38»: 1}

Sesión de ejecución de comandos

El malware solicitará nuevos comandos periódicamente y ejecutarlos de acuerdo con la siguiente tabla de comandos. La tabla contiene el identificador de comando adecuado y su controlador.

Figura 14 – Tabla de comandos de Qbot

El mensaje de solicitud de comando tendrá la siguiente estructura:{ «8»: 1, // Código MSG «1»: 17, // Versión del protocolo de red «2»: «powqdc619830», // ID DE BOT de víctima «3»: «b», // Grupo de bots «4»: 804, // Versión principal de carga útil «5»: 141, // Carga menor vesión «10»: «1582872269», // Marca de tiempo «6»: 6210, «7»: 6278, «14»: «U3HphEKFiQcKFFe0LUVZNDO9vsJ9zdEf09»}

Una respuesta típica tendría el siguiente aspecto:{ «8»: 6, // Código MSG «15»: «…», «16»: 270544960, // Dirección IP de la víctima «18»: 252, «19»: 31, // ID de comando para ejecutar «20»: [«TVqQAAM…»»], // carga útil del comando «39»: «<RANDOM_STRING>» // Datos aleatorios}

Módulo Fetching

Durante la investigación pudimos mapear varios módulos descargados, algunos de los cuales fueron añadidos recientemente como pudimos ver en la versión se descomponen.

Hemos notado que cada vez que un nuevo Bot ID está siendo «registrado» por el servidor de C&C, en la siguiente solicitud de comando recibirá los siguientes módulos para descargar e instalar:

Actualización ejecutable: actualiza el ejecutable actual con una versión más reciente o una lista de bots más reciente. El C&C periódicamente envía actualizaciones a todas sus víctimas.

Módulo de recopilador de correo electrónico: extrae todos los subprocesos de correo electrónico del cliente de Outlook de la víctima mediante la API y lo carga en un servidor remoto codificado de forma rígida. Estos correos electrónicos robados serán utilizados para el malspam que vendrá más tarde.MAPI32.dll

Figura 15 – Módulo de recopilador de correo electrónico

Módulo de enganche: el módulo se inyecta a todos los procesos en ejecución y enlaza las funciones de API relevantes. Tabla de enganche de muestra:

Figura 16 – Módulo de enganche

Archivo de inyección web – El archivo proporciona el módulo inyector con una lista de sitios web y código JavaScript que se inyectará si la víctima visita cualquiera de estos sitios web.

Podemos ver los resultados de visitar uno de los objetivos del actor: Chase Bank.

Figura 17 – Ejemplo de código fuente HTML para un destino inyectado

Password Grabber Module – un módulo grande que descarga Mimikatz e intenta cosechar contraseñas.

Figura 18 – Módulo de captura de contraseñas

hVNC Plugin – Permite controlar la máquina víctima a través de una conexión VNC remota. Es decir, un operador externo puede realizar transacciones bancarias sin el conocimiento del usuario, incluso mientras está conectado a su ordenador. El módulo comparte un alto porcentaje de código con módulos similares como hVNC de TrickBot.

Figura 19 – Complemento VNC oculto

JS Updater Loader: descifra y escribe un script de actualizador Javascript. Hasta hace poco, el script se trataba de un recurso cifrado dentro de la carga. Dado que el script contiene direcciones URL codificadas de forma rígida cifrada, el nuevo método facilita al operador insertar dominios actualizados a las víctimas.

Escribimos una secuencia de comandos de Python para facilitar la extracción de URL de un script dado que se puede observar en el Apéndice C.

Figura 20 – Ejemplo de script del actualizador de JS

Módulo de agarre de cookies – se dirige a los navegadores populares: IE, Edge, Chrome y Firefox.

Figura 21 – Módulo de agarre de cookies

Podemos identificar estos módulos a través de un programa de captura de tráfico:

Figure 22 – Downloaded modules in Fiddler

Once the victim has been infected, their computer is compromised, and they are also a potential threat to other computers in the local network because of Qbot’s lateral movement capabilities. The malware then checks whether the victim can also be a potential bot as part of Qbot’s infrastructure.

From a Victim to a Bot

McAfee has published a great article 3 years ago in which they covered important details regarding the bot proxy module. To understand the complete infection chain process we felt there is more to discover regarding that module, and ways of fetching it.

To reach that goal, we started analyzing Qbot’s efforts of converting an innocent victim machine into an active bot, and being part of the C&C infrastructure. To do so, the malware does the following:

  • Ejecute comandos de shell para permitir conexiones entrantes en el firewall del host.
  • Envío de comandos UPnP creados para permitir el reenvío de puertos.
  • Cada vez que crea la lista de puertos abiertos, el programa comprueba si la conexión entrante está realmente permitida enviando el siguiente mensaje a un bot remoto y esperando una conexión.
    • URL – https://<BOT_IP>:<BOT_PORT>/bot_serv
    • Carga útil de muestra:
      • cmd=1&msg=J3zeJrBLh2sGU4ql0EIr9MncSBCnK&ports=443,995,993,465,990,22,2222,2078,2083,2087,1194,8443,20,21,53,80,3389,6881,6882,6883,32100,32101,32102,32103,50000,50001,50002,50003,50010,61200,61201,61202
  • El bot remoto intenta conectarse utilizando los puertos especificados a la víctima. Si la víctima recibe los datos que esperaba (variable), entonces es una señal de una conexión entrante correcta.msg
  • Retire la escucha del puerto.

Cuando el programa termina de verificar sus puertos potenciales, forma código de mensaje y lo envía al servidor de C&C:8{ «8»: 8, // Código MSG «1»: 17, // Versión del protocolo de red «2»: «jnugfv895664», // ID BOT de víctima «4»: 3, «5»: 111, «55»: 270544960, // IP externa del bot potencial «56»: [443, 995, 993, 465, 990, 22, 2222, 2078, 2083, 2087, 1194, 8443, 20, 21 , 53 , 80 , 3389 , 6881 , 6881 , 6881 , 6881 , 6881 , 6881 , 6881 , 6881 , 6881 , 6881 , 6881 , 6881 , 6881 , 6881 , 6881 , 6881 , 6881 , 6881 , 6881, 20 , 20, 21, 53, 80, 3389 , 6881, 6881 , 6881 , 6881 , 6881 , 6881 , 6881 , 6881 , 6881 , 6881 , 6881, 68816882, 6883, 32100, 32101, 32102, 32103, 50000, 50001, 50002, 50003, 50010, 61200, 61201, 61202] // Puertos potenciales}

Cuando el programa realiza este proceso específico, podríamos observar que en la siguiente solicitud de ejecución de comandos, recibiremos una instalación de módulo proxy con el puerto relevante para escuchar:{ «8»: 6, // Código MSG … «19»: 25, // ID de comando «20»: [«TVqQAAM…», «prt-443», «n-jnugfv895664»], // carga útil del comando …}

Podemos visualizar el proceso con el siguiente diagrama, y observarlo a través de un programa de captura de tráfico:

Figura 23 – Flujo de red para la descarga del módulo proxy

Figura 24 – Módulo proxy descargado en Fiddler

Análisis del módulo proxy

El módulo proxy es cargado por , y copiado en su carpeta de trabajo – . Si se le dan privilegios, crea un nuevo servicio denominado , de lo contrario actualiza el valor del Registro.rundll32.exeC:\ProgramData\FilesystemMonitor\SYSTEMfsmonCurrentVersion\Run

La mayor parte del código base del módulo se toma de las siguientes bibliotecas de código abierto:

  • libcurl 7.47.1 para solicitudes HTTP.
  • OpenSSL 1.0.2r 26 Feb 2019 – Se utiliza para la creación de certificados y la validación de firmas.
  • miniupnp – Para la apertura del puerto.

También contiene 3 direcciones IP codificadas de forma rígida del servidor proxy de segundo nivel.

El módulo no ha cambiado mucho desde la publicación de McAfee hace 3 años. Los cambios que pudimos encontrar fueron:

  • Se ha cambiado el nombre del servicio, la descripción, la carpeta de trabajo, el nombre de la ventana y el nombre ejecutable. Por ejemplo, el nombre del servicio se ha cambiado de a .hwmonfsmon
  • La versión de OpenSSL se ha actualizado desde a .1.0.2f1.0.2r
  • Servidores proxy de nivel 2 actualizados.

Una característica bastante interesante del módulo proxy es su API de control. El grupo de amenazas detrás de Qbot ha desarrollado una API de control para el proxy que es independiente del mecanismo de actualización de carga maliciosa. Esa API también es única, principalmente porque recibe mensajes de control empujando y no tirando, lo que podría exponer los bots al control de actores externos.

El protocolo es bastante simple y se puede observar en el siguiente diagrama:

Figura 25 – Flujo de red para la API de control de módulo proxy

La firma se está verificando con la clave pública codificada de forma rígida del actor. Por lo tanto, a menos que poseamos la clave privada, el protocolo es extremadamente difícil de romper.

Conclusión

Este artículo analiza dos aspectos de la amenaza – la campaña que conduce a la infección de la víctima, y el complejo malware de varias capas que está en constante evolución. El artículo también cubre varios temas varios con respecto a su historial de versiones en el año pasado, métodos de descifrado, ejemplos de comunicación, API de control de servidor proxy y más.

Hoy en día Qbot es mucho más peligroso de lo que era anteriormente – tiene activa campaña malspam que infecta a las organizaciones, y se las arregla para utilizar una infraestructura de infección «3rd party» como Emotet para difundir la amenaza aún más. Parece que el grupo de amenazas detrás de Qbot está evolucionando sus técnicas a través de los años, y Check Point Research espera que la información de este artículo ayude a los investigadores de todo el mundo a mitigar y potencialmente detener la actividad de Qbot.

El agente SandBlast de Check Point protege contra este tipo de ataques y es capaz de prevenirlos desde el primer paso.

Ioc

Muchas muestras de Qbot y VBS fueron analizadas durante la investigación. Estamos adjuntando las muestras y módulos recientes del 22/06/2020.

Hashes

9001DF2C853B4BA118433DD83C17617E7AA368B1 – Gotero

VBS – Qbot Sample

SPX145 – Cargador de módulos de colector de correo [Desencriptado]

– Cargador de actualización javascript [Desenfado]

– Actualizador de

módulos

de enlace [ Cargador de módulos de gancho [Descifrado]



– Módulo de agarre de cookies [Descifrado]

– Módulo de recuperación de contraseñas [Decrpyted]

449F2B10320115E98B182204A4376DDC669E1369F85A63CB462B8FD60DA35807C63CD13226907901B4BC69FF502AECB4BBC2FB9A3DFC0CA8CF99BA9E1AAA14A50C3C3F65269265C30D8AA05AD8695B1B577522512506487C63A372BBDA77BE966C23CBD175107AEE398EED78532652B462B77AE6FB576198674685F3EC24C72458EDC11CF4F135E445B4185BBECD8F2D6289B51981F07D5FF52916104D764DD518E8971B2DE8EA3F8BB7E1462E414DA936425D4E4C96D2BCE0E12F8591999D4E00498BCDB8A116DE

Dominios e IP

URL del archivo ZIP

hxxps://factory-hot[.]com/bafmxby/CcdEhoQGHq.zip

URL de gotero de VBS

hxxp://kiesow-auto[.]de/foojapfsyds/5555555.png
hxxp://test[.]africanamericangolfersdigest[.]com/kkmthjsvf/5555555.png
hxxp://frankiptv[.]com/liehyidqtu/5555555.png
hxxp://klubnika-malina[.]by/utgritefmjq/5555555.png
hxxp://centr-toshiba[.]by/wogvynkombk/5555555.png
hxxp://marokeconstruction[.]com[.]au/hhmzmlqct/5555555.png

URL de inyección web

hxxps://fortinet-cloud[.]com/wbj/br/content/chase/tom/ajax.js
hxxps://fortinet-cloud[.]com/wbj/br/content/key/tom/ajax.js
hxxps://fortinet-cloud[.]com/wbj/br/content/schwab/tom/schw.js
hxxps://fortinet-cloud[.]com/wbj/br/content/bbt/tom/bbt.js
hxxps://fortinet-cloud[.]com/wbj/att/js/AMAZON.js
hxxps://fortinet-cloud[.]com/wbj/crt/uadmin/inj_src/usa/amex2019/script.js
hxxps://fortinet-cloud[.]com/wbj/crt/uadmin/inj_src/usa/costco/costco.min.js
hxxps://fortinet-cloud[.]com/wbj/crt/uadmin/inj_src/usa/verizon/script.js
hxxps://fortinet-cloud[.]com/wbj/crt/uadmin/gate.php
hxxps://callunaconycatcher[.]com/bre/content/bmo/ins/bmo.js
hxxps://callunaconycatcher[.]com/bre/content/desjardins/ins/desjardins.js
hxxps://callunaconycatcher[.]com/bre/content/rbc/ins/rbc.js
hxxps://requirejscdn[.]com/*
hxxps://cersomab[.]com/lob.php

Servidor remoto del recopilador de correo

hxxps://82.118.22[.]125/bgate

Mimikatz URL Descargar

hxxps://onedrive.live[.]com/download.aspx?cid=CE32720D26AED2D5&authKey=%21AHHhrhk9od5OCBU&resid=CE32720D26AED2D5%21111&ithint=%2Eps1

Servidores proxy de nivel 2

46.228.199.235:443
93.88.75.176:443
207.244.112.112:443

URL de Javascript Updater

hxxp://backup.justthebooks[.]com/datacollectionservice.php3
hxxp://asn.crs.com[.]pa/datacollectionservice.php3
hxxp://chs.zarifbarbari[.]com/datacollectionservice.php3

Lista de bots

79.115.207.120:443
156.213.80.140:443
189.160.203.110:443
71.114.39.220:443
189.236.166.167:443
193.248.44.2:2222
206.51.202.106:50003
24.152.219.253:995
2.50.47.97:2222
108.49.221.180:443
207.246.75.201:443
80.240.26.178:443
199.247.16.80:443
207.255.161.8:2222
69.92.54.95:995
199.247.22.145:443
2.50.171.142:443
24.110.14.40:3389
79.101.130.104:995
94.52.160.116:443
172.243.155.62:443
188.192.75.8:443
175.111.128.234:443
74.129.18.56:443
36.77.151.211:443
203.45.104.33:443
118.160.162.77:443
86.126.97.183:2222
185.246.9.69:995
140.82.21.191:443
66.208.105.6:443
206.183.190.53:993
5.12.111.213:443
72.177.157.217:995
98.210.41.34:443
98.242.36.86:443
199.116.241.147:443
49.144.81.46:8443
75.110.250.89:995
219.76.148.142:443
70.174.3.241:443
71.205.158.156:443
78.96.192.26:443
108.190.151.108:2222
81.133.234.36:2222
12.5.37.3:995
210.61.141.92:443
173.70.165.101:995
5.13.84.186:995
68.46.142.48:443
188.27.6.170:443
188.173.70.18:443
86.124.13.101:443
5.13.74.26:443
68.190.152.98:443
96.56.237.174:990
175.143.12.8:443
79.113.224.85:443
2.51.240.61:995
95.76.27.89:443
5.12.243.211:443
24.183.39.93:443
86.124.228.254:443
5.193.178.241:2078
2.88.186.229:443
108.227.161.27:995
188.192.75.8:995
98.32.60.217:443
176.223.35.19:2222
24.42.14.241:443
70.95.118.217:443
68.225.56.31:443
191.84.11.112:443
72.204.242.138:50001
173.22.120.11:2222
64.121.114.87:443
68.60.221.169:465
92.17.167.87:2222
47.138.200.85:443
71.187.7.239:443
151.205.102.42:443
72.179.13.59:443
172.113.74.96:443
5.193.61.212:2222
47.28.135.155:443
188.26.243.186:443
41.228.206.99:443
117.218.208.239:443
203.122.7.82:443
39.36.61.58:995
49.207.105.25:443
59.124.10.133:443
89.44.196.211:443
79.117.129.171:21
24.110.96.149:443
184.90.139.176:2222
82.79.67.68:443
86.153.98.35:2222
101.108.4.251:443
209.182.122.217:443
89.32.220.79:443
104.50.141.139:995
85.204.189.105:443
94.10.81.239:443
211.24.72.253:443
110.142.205.182:443
86.124.105.88:443
72.90.243.117:0
41.225.231.43:443
87.65.204.240:995
62.121.123.57:443
47.153.115.154:990
66.30.92.147:443
49.191.4.245:443
47.180.66.10:443
97.93.211.17:443
65.100.247.6:2083
65.131.43.76:995
45.45.51.182:2222
98.219.77.197:443
166.62.180.194:2078
72.16.212.108:995
73.217.4.42:443
76.187.8.160:443
67.182.188.217:443
37.182.238.170:2222
117.216.227.70:443
74.222.204.82:443
89.137.77.237:443
82.77.169.118:2222
188.27.36.190:443
108.39.93.45:443
72.181.9.163:443
58.233.220.182:443
73.137.187.150:443
97.127.144.203:2222
103.76.160.110:443
37.156.243.67:995
67.246.16.250:995
182.185.7.220:995
82.81.172.21:443
117.199.6.105:443
216.163.4.132:443
199.102.55.87:53
96.244.45.155:443
122.147.204.4:443
89.45.107.209:443
35.142.12.163:2222
73.94.229.115:443
165.0.3.95:995

Otro COI

Nombre del servicio proxy

fsmon

Nombre para mostrar del servicio proxy

Filesystem Monitor

Rutas de archivos proxy

C:\ProgramData\FilesystemMonitor\fsmonitor.dll
C:\ProgramData\FilesystemMonitor\fsmonitor.ini

Línea de comandos ejecutables de proxy

C:\Windows\SysWOW64\rundll32.exe "C:\ProgramData\FilesystemMonitor\fsmonitor.dll",FsMonServerMainNT
C:\Windows\SysWOW64\rundll32.exe "C:\ProgramData\FilesystemMonitor\fsmonitor.dll",#1

Clave pública de Proxy RSA

-----BEGIN RSA PUBLIC KEY-----
MIIBCgKCAQEA4zJC+AO8v7U9WGOdqeqMn9CPrdgoz//B+f/xxb4UnSNM1NJ1RwTG
N2jf6JRRD2gZz9735DU4I9FlIDEiRDdNn4OxX76L5eKe2GF4/etZ23DfuomMNXVw
qwYcO8A7zjzG0+ybQH35eNoYJMJDwPOBWb/nHBlPNWXoyv7u8EzScENMBpfKWuMW
UgmV08dulHPPyi9fjSsY3DLo5zNE6A8UEk2e2R2UkmiDbENOARgsfwHosyqEcBGc
Pk/+EismU1rsabaQV/sHw1zQQ9vAH+27d/T13hCuIgq1B3vRYFIrPkJYAdaxOwto
AHn0rjeAN4tEIdDQ10RCriEmnNEBfxA9BwIDAQAB
-----END RSA PUBLIC KEY-----

Fuente: Check Point Research Blog

Abrir chat
1
Escanea el código
Hola, bienvenido a Capital Software, somos una empresa de soluciones informáticas. ¿En qué podemos ayudarte hoy?