Búsqueda de Ciberamenazas

Un atacante combina trampas telefónicas y de correo electrónico en una cadena de ataque creíble y compleja

Una llamada telefónica de ingeniería social confiere autenticidad al correo electrónico malicioso del atacante

Al realizar una investigación post mortem de un ordenador infectado, Sophos X-Ops descubrió que el ataque comenzó con una llamada telefónica que parecía inocente. La persona que llamó incitó a un empleado de una organización con sede en Suiza a iniciar una compleja cadena de ataques que comprometió el ordenador del empleado.

Los analistas de Respuesta a Incidentes de Sophos descubrieron que los atacantes podían haberse dirigido personalmente al destinatario de la llamada, y elaboraron una compleja cadena de ataques de ingeniería social que hizo que los atacantes tomaran el control del ordenador del objetivo, brevemente, antes de que el objetivo desconectara literalmente (ethernet) el ordenador comprometido. El empleado alertado sintió que algo iba mal y desconectó el ordenador infectado de la red, pero no antes de que la carga maliciosa ya estuviera trabajando.

El autor de la llamada, cuya voz parecía la de un hombre de mediana edad, dijo al empleado que era un conductor de reparto con un paquete urgente destinado a una de las sedes de la empresa, pero que no había nadie para recibirlo, y pidió una nueva dirección de entrega en la oficina del empleado. Para volver a entregar el paquete, continuó, el empleado tendría que leer en voz alta un código que la empresa de transportes le enviaría por correo electrónico.

Mientras el comunicante seguía hablando por teléfono con el empleado, este recibió un mensaje de correo electrónico, supuestamente de la empresa de transporte del comunicante. El mensaje de correo electrónico que se muestra a continuación (escrito en francés) decía que un archivo PDF adjunto al mensaje contenía el código que el conductor de reparto estaba esperando oír para poder llevar el paquete al lugar donde se encontraba el empleado.

Desde el teléfono hasta la carga útil, este ataque se basa en múltiples capas de ingeniería social

El mensaje de phishing incorpora elementos gráficos

El cuerpo del mensaje dice que “tus documentos han sido enviados por un servicio de entrega que no ha tenido contacto con” el destino. Continúa diciendo que, por razones de seguridad, la entrega no es posible a menos que el objetivo proporcione el código correcto al remitente, y que el objetivo solo puede obtener el código del PDF adjunto.

El mensaje recibido, en francés

El correo electrónico también indica que el “envío” es algo que pesa más o menos lo que pesaría una carta, y que tiene prioridad “elevada (agencia gubernamental)”.

A pesar de que el mensaje de correo electrónico estaba escrito en francés, las pistas técnicas que se dejaron indican que los atacantes sabían que el objetivo suizo podría hablar alemán. Ambas se consideran lenguas suizas “oficiales”. Hay comentarios en alemán incrustados en el HTML (“Inhalt mit Bild links”, que se traduce como “contenido con enlaces de imágenes” o “contenido con imagen a la izquierda”) que componía el cuerpo del mensaje de correo electrónico, que se envió a alguien que utilizaba Outlook como cliente de correo.

El código fuente del correo electrónico hace referencia a “contenido con enlaces de imagen”

El curioso mensaje de correo electrónico desencadenó la cadena de ataques que siguió, pero no de la forma que cabría suponer. No había ningún PDF adjunto al mensaje, aunque parecía que sí lo había. A continuación se muestra lo que el objetivo vio en Outlook.

El correo electrónico con su “PDF adjunto”

El empleado vio lo que parecía un mensaje de Outlook con un PDF adjunto, pero en realidad era un gráfico incrustado en el cuerpo del mensaje, diseñado para parecer un mensaje de Outlook con un archivo adjunto: Tanto el “archivo adjunto” como el mensaje de correo electrónico que lo acompañaba no eran más que imágenes estáticas incrustadas en el cuerpo del mensaje.

En cambio, cuando el empleado hacía clic donde creía que aparecía un archivo adjunto en el correo electrónico (o si hacía clic en cualquier otro lugar), activaba Outlook para visitar un sitio web.

No es un archivo adjunto como muestra la información sobre herramientas

Este mecanismo de ataque pareció a nuestros analistas inusualmente complejo (la llamada telefónica instando al objetivo a hacer clic en el correo electrónico, el correo electrónico especialmente diseñado sin texto en el cuerpo, el sitio web registrado por el atacante con un nombre de dominio temático de “entrega” personalizado utilizado para alojar un archivo para descargar), pero la complejidad parecía tener un propósito.

Por un lado, el hecho de que no hubiera ningún archivo PDF adjunto supone una ventaja para el atacante, ya que muchos sistemas de correo electrónico tratan con precaución (adecuada) los mensajes que llevan este tipo de archivos adjuntos cuando proceden de fuentes inusuales, y retrasarían la entrega o filtrarían automáticamente los correos electrónicos con archivos PDF u otros archivos adjuntos de formato ofimático.

Por otra parte, los atacantes tampoco enlazaron directamente con el sitio web que controlaban que alojaba el código malicioso. En su lugar, encontraron un script de redirección de páginas web, alojado en un sitio web benigno (que no levantara sospechas) y enlazaron con él, utilizando el script de redirección para dirigir el navegador del empleado al sitio web malicioso.

La siguiente captura de pantalla muestra el código fuente HTML del mensaje de correo electrónico, incluido el enlace al sitio web benigno (resaltado en verde) y cómo su redirección enviaba a los usuarios al sitio web malicioso (resaltado en rojo).

La fuente del correo electrónico, con el sitio web benigno (parcialmente ofuscado, en verde) y su redirección al sitio web malicioso (en rojo)

Esta técnica de redireccionamiento parece estar diseñada como método para eludir las funciones de comprobación de URL. Algunos filtros de spam o firewalls que bloquean sitios web maliciosos podrían consultar la reputación de la URL del sitio benigno que aloja el script de redireccionamiento, en lugar del dominio de destino, safedelivery-company.com, registrado y operado por los atacantes y utilizado para alojar malware. Este mismo atacante también parece haber utilizado el dominio aircourier-company.com en algún momento del pasado.

La falta de información deja pistas intrigantes sobre el ataque

Como nuestra investigación se realiza después de que se hubiera producido el ataque, y los atacantes de este incidente limpiaron rápidamente su rastro, solo teníamos información limitada sobre lo que ocurrió después.

Sabemos, por ejemplo, que los atacantes consiguieron convencer al empleado para que hiciera clic en el “archivo adjunto” que abría un enlace en su navegador. El enlace parece haber entregado malware que se ejecutó en el ordenador, porque al minuto de que el empleado mirara el correo electrónico, los atacantes habían empezado a ejecutar comandos en el ordenador del empleado.

Los registros recuperados de la máquina comprometida indican, por ejemplo, que un empleado hizo clic en el enlace malicioso del correo electrónico a las 11:16 de la mañana, hora local. Descargaron un archivo ejecutable llamado sendung_N03012_16092022.com y, al parecer, hicieron doble clic en él. Como resultado de esa acción, se ejecutó en el ordenador otro programa llamado SECURE DELIVERY SERVICE.EXE.

En el momento en que realizamos el análisis, ninguno de los dos archivos permanecía en el ordenador infectado, y los sitios web donde se alojaban los archivos ya no los producían cuando se les solicitaba. De hecho, los sitios web alojaban una página con un mensaje de “próximamente” y un temporizador de cuenta atrás que ocupaba la mayor parte del espacio de la página.

Cuando nuestro equipo de IR lo visitó, el sitio problemático tenía el aspecto de esta inocua plantilla ReactJS

De hecho, este es un comportamiento observado en otros incidentes de malware. El temporizador de cuenta atrás se reinicia con un valor aleatorio de días/horas/minutos cada vez que recargas la página. El código que ejecuta esta página es una plantilla ReactJS llamada Deadline. La gente que lo utiliza ni siquiera se ha molestado en modificar el bloque de texto lorem ipsum de la plantilla.

Scripts maliciosos recuperados ocultos en un archivo de licencia de software

Durante los siguientes 15 minutos del ataque, el atacante descargó y ejecutó múltiples scripts PowerShell, pero los había borrado para cuando nuestros analistas pudieron examinar las máquinas afectadas días después.

Al buscar datos que los atacantes pudieran haber modificado o tocado, encontramos rastros de los scripts, pero también descubrimos que habían empleado un método inusual para ocultarlos a plena vista.

Entre los archivos que los atacantes no borraron había una carpeta que contiene el editor de texto Notepad++. El proyecto de código abierto Notepad++ ofrece a los usuarios la posibilidad de descargar un ejecutable instalador o una versión “portátil” en un archivo zip que contiene todos los archivos necesarios para ejecutar el programa. Encontramos lo que parece ser una instalación “portátil” modificada en el ordenador afectado. El empleado y el equipo informático de la organización confirmaron que ni utilizaban ni instalaban este software. Su aparición coincidió con el ataque.

La carpeta contiene todo lo que normalmente se incluye con la descarga “portable” oficial, pero con algunos cambios notables: El ejecutable de Notepad++ y otros componentes ejecutables (en particular, la utilidad de autoactualización del programa) habían sido firmados criptográficamente utilizando un certificado de firma ahora revocado, emitido originalmente a una organización llamada Cloud Accountants Limited, en lugar del certificado aún válido emitido a la organización Notepad++.

El Notepad++ legítimo (a la izquierda) y la versión de la que abusaron los atacantes (a la derecha)

También descubrimos que la carpeta que contenía el auto-actualizador en la carpeta maliciosa “portable Notepad++” contenía 15 archivos adicionales no incluidos en el zip de instalación portable legítimo.

Estos archivos adicionales incluían una copia renombrada de la DLL legítima que Windows utiliza para crear Tareas Programadas, una copia no firmada de la biblioteca cURL llamada libpurl.dll, una versión ejecutable para Windows de la (al menos, en este caso) aplicación potencialmente no deseada para Linux Socat cuyos desarrolladores la describen como “un relé para transferencias de datos bidireccionales entre dos canales de datos independientes” y los archivos mínimamente necesarios para abrir una conexión a la red Tor, también conocida como la “web oscura”.

La versión comprometida de Notepad++ tiene una variedad de extras no deseados

Como muchos proyectos de código abierto, Notepad++ se publica bajo el modelo de licencias de software público GNU, que exige que los desarrolladores incluyan un archivo de texto sin formato con los términos del acuerdo de licencia. Notepad++ suele incluir un archivo de texto sin formato llamado LICENSE. También encontramos un archivo LICENSE en esta instalación, pero alguien había añadido al documento un bloque de datos codificados en base64. La copia normal de LICENSE solo tiene 8 kb de tamaño, este LICENSE era 59 kb mayor que el original.

Un blob de basura en base64 que queda en LICENSE

Cuando se descodifica, este blob de datos base64 genera un script PowerShell que consta de tres comandos. Cada comando descodifica otro blob de datos codificados en base64 y utiliza el comando Invoke-Expression para ejecutarlo.

Otros “regalos” del blob base64

Una vez descodificados, los tres blobs base64 eran otros tres scripts PowerShell. El primero y el segundo script están diseñados para instalar un certificado raíz de autoridad de certificación no fiable en el almacén de certificados de Windows y en Firefox (si está instalado), respectivamente. Firefox no utiliza el almacén de certificados de Windows, sino que tiene el suyo propio.

Primero inserta un certificado en el almacén de certificados de Windows, luego en Firefox

El certificado parece estar diseñado para imitar uno emitido por la autoridad de certificación legítima Comodo, pero no ha sido emitido por ella.

No es un certificado de autoridad de certificación (CA) emitido por Comodo

El tercer script establece una tarea programada que aprovecha dos programas de la carpeta de actualización de Notepad++ (GUP.exe y GUPP.exe) para llamar a casa, una vez al día a medianoche (hora local), a una de las cinco direcciones .onion, elegidas al azar de una lista codificada también incluida en el script.

Llamar a casa (a una de las cinco direcciones)

Al examinar los registros en busca de pruebas, encontramos un cuarto script de PowerShell (llamado ms.ps1) que los atacantes no eliminaron. Este script es una herramienta de recopilación de datos muy generalizada, diseñada para rastrear las ubicaciones de los datos confidenciales y, opcionalmente, almacenarlos en C:\ProgramFiles\matches.txt.

Un vistazo a ms.ps1

El script busca información sobre la configuración del sistema, datos de software de contabilidad (como archivos de QuickBooks), contraseñas y carteras de criptomonedas y las cookies, el historial de navegación y la lista de complementos de navegador instalados de las principales plataformas de navegador web: Firefox, Opera, Edge, Brave, Chrome, Chromium, Vivaldi y el navegador QQ de Tencent (utilizado sobre todo en China).

El script también contiene una lista incrustada de 53 sitios web. Utiliza esta lista para rastrear el historial del navegador y los datos de las cookies y añadir información sobre cuáles de esos sitios web ha visitado el navegador en el pasado al archivo matches.txt. El objetivo tiene su sede en Suiza, lo que podría explicar por qué la lista de sitios web incluía al minorista online Tutti, con sede en Suiza, y 24 sitios web asociados a empresas de criptomonedas.

Bancos, criptomonedas y compras: los atacantes quieren conocer las costumbres del objetivo

El robo de cookies es una tendencia creciente del malware de robo de información, ya que algunas cookies del navegador pueden ser tan útiles para iniciar sesión en un sitio web seguro como una contraseña.

Lo que no está tan claro es por qué este script incluye 25 dominios utilizados por bancos de la región de Australia y Nueva Zelanda. Pero mientras investigaba este incidente, los analistas del equipo de Detección y Respuesta Gestionadas me señalaron unas notas sobre un ataque contra un cliente australiano que investigaron en junio de 2022.

En el incidente anterior, el objetivo del ataque también registró que un ordenador había visitado URL de dos de los mismos dominios maliciosos utilizados en este incidente (aircourier-company.com y carpoollk.com) y los respondedores encontraron varios scripts PowerShell similares, incluido uno que extraía información del ordenador, y otro que configuraba una tarea programada para invocar la misma versión con certificado revocado de la utilidad de actualización Notepad++ descubierta en este incidente.

Instaladores encontrados en repositorios públicos

Mientras buscábamos herramientas de inteligencia de código abierto archivos relacionados con la colección de archivos maliciosos del directorio Notepad++, encontramos varios archivos (archivos zip o aplicaciones de instalación) que contenían un directorio de programas Notepad++ prácticamente idéntico con el mismo actualizador malicioso modificado y el mismo archivo LICENSE.

Uno de los archivos que se habían subido a VirusTotal era una aplicación Electron, básicamente, un conjunto de instrucciones JavaScript diseñadas para ejecutarse dentro de una versión reducida del navegador Chromium. No solo el nombre de archivo de esta aplicación (delivery_N03041_07042022.exe) era muy similar al registrado en los registros de este incidente (sendung_N03012_16092022.com) y al que descubrimos por casualidad en un tercer incidente (envoi_N01670_24022022.exe), sino que el directorio temporal que crea para almacenar sus archivos en ejecución incluye el directorio completo e idéntico del programa Notepad++ que descubrimos en el ordenador del objetivo.

Esto nos resulta familiar

Temáticamente, los nombres son lo suficientemente parecidos como para empezar a ver un patrón. El objetivo australiano recibió uno con un nombre que empieza por la palabra “entrega”, el objetivo de una parte del mundo de habla alemana recibió uno llamado “sendung” (“envío”) y un objetivo de habla francesa recibió uno llamado “envoi” (“envío”). Los nombres de los archivos también incluyen una fecha que sigue el mismo paradigma de DDMMAAAA.

La engañosamente astuta app Electron

Cuando se ejecuta, la app Electron desempaqueta los archivos del navegador Chromium en un directorio temporal e inicia un programa llamado Universe Parcel Service.exe, que no es más que un ejecutable renombrado de Chromium. La app muestra una ventana a pantalla completa centrada alrededor de un botón llamado “Mostrar información” con el texto “Haz clic en el botón para ver los detalles del seguimiento” en la parte inferior de la página.

Cuando se ejecuta por primera vez, la aplicación se conecta (en segundo plano) a un servicio web que informa de la dirección IP pública del ordenador que ejecuta la aplicación y, a continuación, intenta conectarse a la URL de un archivo alojado en Google Drive. Aunque capturamos la conexión que tiene lugar, el código alojado en la nube de Google aparentemente se ha desactivado y no es funcional.

La aplicación Electron realizando una comunicación saliente a dos direcciones IP

Al hacer clic en el botón “Mostrar información” de la aplicación, esta se detiene unos segundos y, a continuación, muestra en la pantalla algo que se supone que parece un número de seguimiento de un paquete. El número se genera aleatoriamente cada vez que pulsas el botón.

Oopsie

Mientras tanto, en segundo plano, los scripts incrustados en el archivo LICENSE del Bloc de Notas++ empiezan a ejecutarse, y el script invoca a la utilidad Socat para abrir múltiples conexiones a Tor, escuchando en una variedad de números de puerto altos para el tráfico entrante.

Socat haciendo metódicamente lo suyo, abriendo conexiones Tor

Los ejecutables Notepad++ del archivo de VirusTotal estaban firmados con el mismo certificado revocado utilizado para firmar los ejecutables que recuperamos durante la investigación postmortem. Tras un examen más detallado, el contenido de los scripts descodificados originados por el archivo LICENSE modificado encontrado en la muestra de VirusTotal se parecía mucho a los que recuperamos del ordenador infectado. Solo cambiaron los nombres de las variables y las direcciones .onion de la web oscura; por lo demás, los scripts contenían instrucciones idénticas.

Sufriendo succotash: scripts sospechosamente similares

En particular, estos scripts de fuentes externas contenían el mismo certificado falso de Comodo CA que se encontró incrustado en los scripts de la máquina que examinamos.

La vigilancia puede ser una de las razones por las que un atacante querría instalar un certificado de CA en el almacén de certificados del sistema: hacerlo hace posible que un atacante realice un ataque de máquina en el medio y capture el contenido descifrado de una sesión de navegación HTTPS.

Consejos para quien aún conteste al teléfono

El empleado, observando lo que ocurría en su ordenador en tiempo real, tomó la iniciativa y desconectó físicamente la máquina afectada de la red tirando del cable de red. De este modo, la máquina quedó infectada, pero los atacantes no pudieron contactar con ella ni ponerse en contacto con ella, lo que resultó ser una medida potencialmente salvadora para la empresa, ya que detuvo el avance del ataque a mitad de camino. El empleado que hizo esto merece un elogio por su rapidez mental, porque el ataque podría haber sido mucho peor.

Los elementos de este ataque estaban bien planificados y coordinados de antemano, e implicaban a un humano que hizo una llamada telefónica de voz y posiblemente a una o más personas que habían creado una variedad de scripts maliciosos de Windows Scripting Host y PowerShell, además de la aplicación Electron que los entregaba y ejecutaba. Cabe señalar que las llamadas telefónicas de voz reales pueden formar parte del aspecto de ingeniería social de un ataque y, en este caso, los actores de la amenaza las utilizaron con buenos resultados.

A menudo aconsejamos no abrir enlaces o archivos adjuntos enviados por correo electrónico por personas desconocidas, no solemos advertir a la gente que desconfíe de esos mismos correos cuando alguien te llama por teléfono para decirte que esperes la llegada del correo. Pero si no conoces a la persona que te llama, es justo decir que tratar esas llamadas con sospecha es una buena medida defensiva.

Detecciones y agradecimientos

Sophos X-Ops desea dar las gracias a los analistas de Respuesta a Incidentes Aaron Short, Bill Kearney y Ollie Jones por su trabajo en el incidente. Los scripts PowerShell como los encontrados en este incidente activarán una detección de Troj/PSDL-OM o Troj/PS-KH en los productos para endpoints de Sophos. Los indicadores de compromiso de los archivos de esta investigación se enumeran en el GitHub de SophosLabs.