Hemos identificado una campaña de phishing en curso que utiliza Trickbot

Hemos identificado una estafa que utiliza Trickbot y estas son nuestras recomendaciones

El equipo de Inteligencia de Amenazas de ISH detectó una campaña de phishing en curso que utiliza Trickbot, un sofisticado troyano identificado por primera vez en 2016 y actualizado constantemente. Trickbot se utiliza para robar información de particulares y empresas, y para descargar cargas útiles de otras familias de malware, como Emotet (troyano bancario), Ryuk y Conti (ransomware).

La infección por Trickbot implica varios pasos. Este análisis partió de un Excel con macros maliciosas, que pueden emplearse en campañas de spam, phishing y spear phishing.

En este post, entenderás cómo mitigar los riesgos relacionados con esta estafa que ya ha robado los datos de unas 500.000 personas.

Documento malicioso

El acceso inicial analizado por ISH es a través de una hoja de cálculo con macros XLM. Se trata de macros de Excel 4.0, que siguen funcionando en las versiones modernas de Office. Grupos de ciberdelincuentes han empleado este tipo de rutinas maliciosas con gran efectividad, ya que este tipo de código ofrece mayor dificultad de análisis que las rutinas maliciosas escritas en VBA (lenguaje utilizado por las macros en las versiones modernas de la suite ofimática). La siguiente imagen muestra la macro XLM desenmascarada:

La rutina en cuestión descarga un PE desde la URL http://shatteredglass.io/uo/date.php (ya desconectada por los autores del malware) y lo guarda como una DLL llamada Hole.fisk. A continuación, se utiliza el ejecutable nativo de Windows rundll32.exe para ejecutar la carga útil, desde su función StartW.

DLL malicioso

Dado que la URL utilizada por el documento malicioso ya ha sido desconectada, recurrimos a los repositorios de malware para obtener una copia de la DLL descargada por las macros mencionadas.

Como se muestra arriba, el ejecutable en cuestión tiene la capacidad de hacer capturas de pantalla de la máquina objetivo, registrar entradas de teclado(keylogger), enganchar otros procesos y realizar operaciones con archivos. Esta muestra tiene empaquetado; para eludirlo, se realizó un análisis dinámico a partir de un volcado de memoria.

Comando:

%s\ShellNew

%s\DefaultIcon

%s\shellprintto%s

%s\shellprint%%s

%%%%%%%%%%%%%%%%%%%%%%%%open%%%%s

Los comandos anteriores, extraídos tras desempaquetar, demuestran la funcionalidad del shell inverso. Se deduce que los comandos print y printto se utilizan para obtener capturas de pantalla de la estación de destino, mientras que el comando open demuestra una de las operaciones disponibles del sistema de archivos. Se puede suponer con bastante seguridad que la shell inversa es uno de los medios utilizados para descargar cargas útiles adicionales, como las mencionadas Emotet, Ryuk y Conti. Es importante señalar que las cadenas anteriores sólo existen en memoria, por lo que emplearlas como indicadores de compromiso relacionados con dll maliciosos en disco es inútil.

TrickBot ejecutable

Por último, obtuvimos una muestra del propio ejecutable de Trickbot. Un análisis superficial del archivo en disco revela la misma funcionalidad que la dll detallada anteriormente:

Al igual que la dll maliciosa, este PE se ejecutó en una máquina virtual para permitir el análisis dinámico mediante volcado de memoria. Tras la ejecución, el malware crea una instancia del proceso legítimo Windows Error Manager, wermgr.exe, donde inyecta su código. A continuación, el proceso de destino se pone en contacto con las IP del servidor de mando y control (C2) de Trickbot.

108.170.20.72:443 ESTABLISHED 2912 wermgr.exe

El análisis dinámico proporcionó las siguientes direcciones de destino:

187.19.200.154

108.170.20.72

186.195.199.238

102.164.211.138

182.48.66.106

190.152.71.230

167.179.194.205

221.176.88.201

103.119.117.42

179.60.243.52

177.47.88.62

103.84.164.87

111.235.66.83

182.48.66.106

37.235.230.123

117.212.193.62

178.54.230.164

103.146.2.152

177.47.88.62

179.208.174.246

ipecho.net

173.81.4.147

También se observa que la información se envía desde la máquina infectada a través de HTTP GET a los centros de comando, como se muestra a continuación:

La dirección IP que comienza por 179 es la IP pública del activo infectado, JOHN es el nombre de usuario y Windows 8.1×64 es la versión del sistema operativo presente en la máquina.

Descargo de responsabilidad

Este análisis se realizó individualmente en los artefactos que componen la cadena de infección de Trickbot. Por ese motivo, no se recuperaron pruebas de interacción entre los componentes de la infección. Además, es importante recordar que Trickbot es un malware que ofrece varias funcionalidades a sus controladores. Dado que el volcado de memoria de la máquina virtual se realizó justo después de la ejecución del virus, no hubo interacción de los controladores y, por tanto, no se recogieron pruebas de exfiltración de archivos ni de contaminación por otras familias de malware.

Sugerencias

El modelo de infección analizado aquí fue mediante un documento malicioso que emplea macros de Excel 4.0. Además de las recomendaciones de este documento, recomendamos deshabilitar estas macros heredadas en Office 365. Esto se puede hacer a través de GPO. Más información sobre cómo hacer un GPO se puede encontrar en este enlace aquí.

Pida a su especialista de Microsoft que revise y adapte la información de referencia presentada en este enlace en función de su entorno.

Dado que Trickbot emplea wermgr.exe para interactuar con sus direcciones C2, se recomienda inspeccionar el comportamiento de esta aplicación mediante las IPs proporcionadas en la lista IoC de abajo. Por último, recuerda de nuevo que las cadenas con los comandos del shell inverso sólo existen en memoria. Por lo tanto, sólo tiene sentido emplearlas como punteros en casos de análisis forense de memoria.

Indicadores de compromiso (COI)

EXCEL MALICIOSO

##SHA1 fcf07b3697603dfb5a42a74c998e0f192d6476e0

##SHA256 abc84402e839a361039e545f5d11714d546610facd0a2ff1bd02e4e90dcc75c3

http://shatteredglass.io/uo/date.php

DLL TRICKBOT

##SHA1 b92b8d32e7045d5fab7a328ef2bf5d994266b672

##SHA256 9097b0addfbac3065c0500e637ad4828600ece935a114066a948a373d9509c8a

##STRINGS (SÓLO MEMORIA)

SoftwareMicrosoft\Windows\CurrentVersion\Policies\Comdlg32

SoftwareMicrosoft\Windows\Versiónactual\Políticas\Red

SoftwareMicrosoftWindowsCurrentVersion\Policies\Explorer

comando

%s\ShellNew

%s\IconoPredeterminado

%shellprintto%s

%shellprint%s

%s\\shellopen%s

EJECUTAR TRICKBOT (.exe)

##SHA1 6d0f56c5dd2a3ee7b2ca81f0f04974b8062a0aca

##SHA256 a85830e2ae2702929bd6135e48517be59fb72396af8a19c16311f5fe0c27a509

##DIRECCIONES ALCANZADAS:

187.19.200.154

108.170.20.72

186.195.199.238

102.164.211.138

182.48.66.106

190.152.71.230

167.179.194.205

221.176.88.201

103.119.117.42

179.60.243.52

177.47.88.62

103.84.164.87

111.235.66.83

182.48.66.106

37.235.230.123

117.212.193.62

178.54.230.164

103.146.2.152

177.47.88.62

179.208.174.246

ipecho.net

173.81.4.147

Detección

Firmas IDS/IPS

Basándonos en el desarrollo de CISA, a continuación se muestran las firmas SNORT recomendadas por dicha institución para su uso en la detección de eventos de red asociados a la actividad de TrickBot. Recomendamos que su experto en IDS/IPS analice y adapte según los aspectos técnicos y de seguridad de su entorno.

alert tcp any [443,447] -> any any (msg: "TRICKBOT:Servidor SSL/TLS X.509 Cert Field contains 'example.com' (Hex)"; sid:1; rev:1; flow:established,from_server; ssl_state:server_hello; content:"|0b|example.com"; fast_pattern:only; content: "Seguridad global"; content: "Departamento de TI"; pcre:"/(?:\x09\x00\xc0\xb9\x3b\x93\x72\xxa3\xf6\xd2|\x00\xe2\x08\xff\xfb\x7b\x53\
x76\x3d)/"; classtype:bad-unknown; metadata:service ssl,service and-ports;)
alert tcp any any -> any $HTTP_PORTS (msg:"TRICKBOT_ANCHOR:HTTP URI GET contains '/anchor'"; sid:1; rev:1; flow:established,to_server; content:"/anchor"; http_uri; fast_pattern:only; content:"GET"; nocase; http_method; pcre:"/^\/anchor_?.{3}\/[\w_-]+\.[A-F0-9]+\/?$/U"; classtype:bad-unknown; priority:1; metadata:service http;)
alert tcp any $SSL_PORTS -> any any (msg: "TRICKBOT:Servidor SSL/TLS X.509 Cert Field contains 'C=XX, L=Default City, O=Default Company Ltd'"; sid:1; rev:1; flow:established,from_server; ssl_state:server_hello; content:¡"|31 0b 30 09 06 03 55 04 06 13 02|XX"; nocase; content:"|31 15 30 13 06 03 55 04 07 13 0c|Ciudad por defecto"; nocase; content:"|31 1c 30 1a 06 03 55 04 0a 13 13|Compañía por defecto Ltd"; nocase; content:!"|31 0c 30 0a 06 03 55 04 03|"; classtype:bad-unknown; reference:url,www.virustotal.com/gui/file/e9600404ecc42cf86d38deedef94068db39b
7a0fd06b3b8fb2d8a3c7002b650e/detection; metadata:service ssl;)
¡alert tcp any any -> any $HTTP_PORTS (msg: "TRICKBOT:HTTP Client Header contains 'boundary=Arasfjasu7'"; sid:1; rev:1; flow:established,to_server; content: "boundary=Arasfjasu7|0d 0a|"; http_header; content: "name=|22|proclist|22|"; http_header; content:!"Referer"; content:!"Accept"; content: "POST"; http_method; classtype:bad-unknown; metadata:service http;)
alert tcp any any -> any $HTTP_PORTS (msg:"TRICKBOT:HTTP Client Header contains 'User-Agent|3a 20|WinHTTP loader/1.'"; sid:1; rev:1; flow:established,to_server; content:"User-Agent|3a 20|WinHTTP loader/1."; http_header; fast_pattern:only; content:".png|20|HTTP/1."; pcre:"/^Host\x3a\x20(?:\d{1,3}\.){3}\d{1,3}(?:\x3a\d{2,5})?$/mH"; content:!"Accept"; http_header; content:!"Referer|3a 20|"; http_header; classtype:bad-unknown; metadata:service http;)
alert tcp any $HTTP_PORTS -> any any (msg: "TRICKBOT:HTTP Server Header contains 'Server|3a 20|Cowboy'"; sid:1; rev:1; flow:established,from_server; content:¡"200"; http_stat_code; content: "Server|3a 20|Cowboy|0d 0a|"; http_header; fast_pattern; content: "content-length|3a 20|3|0d 0a|"; http_header; file_data; content:"/1/"; depth:3; isdataat:!1,relative; classtype:bad-unknown; metadata:service http;)
alert tcp any any -> any $HTTP_PORTS (msg:"TRICKBOT:HTTP URI POST contains C2 Exfil"; sid:1; rev:1; flow:established,to_server; content:"Content-Type|3a 20|multipart/form-data|3b 20|boundary=------Boundary"; http_header; fast_pattern; content:"User-Agent|3a 20|"; http_header; distance:0; content:"Content-Length|3a 20|"; http_header; distance:0; content:"POST"; http_method; pcre:"/^\/[a-z]{3}\d{3}\/.+?\.[A-F0-9]{32}\/\d{1,3}\//U"; pcre:"/^Host\x3a\x20(?:\d{1,3}\.){3}\d{1,3}$/mH"; content:!"Referer|3a|"; http_header; classtype:bad-unknown; metadata:service http;)
alert tcp any any -> any $HTTP_PORTS (msg: "HTTP URI GET/POST contains '/56evcxv' (Trickbot)"; sid:1; rev:1; flow:established,to_server; content:"/56evcxv"; http_uri; fast_pattern:only; classtype:bad-unknown; metadata:service http;)
alert icmp any any -> any any (msg: "TRICKBOT_ICMP_ANCHOR:ICMP traffic conatins 'hanc'"; sid:1; rev:1; itype:8; content: "hanc"; offset:4; fast_pattern; classtype:bad-unknown;)
alert tcp any any -> any $HTTP_PORTS (msg: "HTTP Client Header contains POST with 'host|3a 20|*.onion.link' and 'data=' (Trickbot/Princess Ransomeware)"; sid:1; rev:1; flow:established,to_server; content: "POST"; nocase; http_method; content: "host|3a 20|"; http_header; content:".onion.link"; nocase; http_header; distance:0; within:47; fast_pattern; file_data; content: "data="; distance:0; within:5; classtype:bad-unknown; metadata:service http;)
alert tcp any any -> any $HTTP_PORTS (msg: "HTTP Client Header contains 'host|3a 20|tpsci.com' (trickbot)"; sid:1; rev:1; flow:established,to_server; content: "host|3a 20|tpsci.com"; http_header; fast_pattern:only; classtype:bad-unknown; metadata:service http;)

Recomendaciones prácticas para la mitigación

Mayor madurez y seguridad

Tal y como recomienda CISA, para reforzar la seguridad de los sistemas de su organización puede poner en práctica las siguientes recomendaciones:

Nota: Los propietarios y administradores del sistema deben revisar todos los cambios de configuración antes de su implementación para evitar impactos negativos.

  • Impartir formación sobre ingeniería social y phishing a los empleados;
  • Considera la posibilidad de redactar o actualizar una política sobre correos electrónicos sospechosos que especifique que los usuarios deben informar de todos los correos sospechosos a los departamentos de seguridad y/o TI;
  • Marque los correos electrónicos externos con un banner que indique que el correo electrónico procede de una fuente externa para ayudar a los usuarios a detectar los correos falsos. Esto puede hacerse, por ejemplo, en su solución antispam;
  • Implantar un programa antivirus formalizado y un proceso de gestión de parches;
  • Implemente filtros en la pasarela de correo electrónico y bloquee las direcciones IP sospechosas en el cortafuegos;
  • Siga el principio del menor privilegio: no se recomienda que los usuarios sean administradores de sus dispositivos corporativos;
  • Implantar un sistema de autenticación de mensajes, elaboración de informes y validación del cumplimiento basado en dominios;
  • Segmentación y segregación de redes y funciones: gestión de accesos:
  • Limite las comunicaciones laterales innecesarias entre estaciones de trabajo, hilos y otros dispositivos de red;
  • Considere el uso de tecnología de listas blancas de aplicaciones en todos los activos para garantizar que sólo se ejecuta el software autorizado y que todo el software no autorizado se bloquea para que no se ejecute en los activos. Asegúrese de que esta tecnología solo permite ejecutar en un sistema secuencias de comandos autorizadas y firmadas digitalmente;
  • Implantar una tecnología de autenticación multifactor;
  • Active un cortafuegos en las estaciones de trabajo configurado para denegar solicitudes de conexión no solicitadas;
  • Desactive los servicios innecesarios en estaciones de trabajo y servidores;
  • Implantar un sistema de detección de intrusos, si aún no se utiliza, para detectar actividades maliciosas conocidas y otras actividades de red potencialmente maliciosas;
  • Supervisar el tráfico web. Restrinja el acceso de los usuarios a sitios web sospechosos o de riesgo;
  • Mantener el conocimiento de la situación de las amenazas más recientes y aplicar las listas de control de acceso adecuadas;
  • Deshabilite el uso de SMBv1 en la red y exija al menos SMBv2 (se recomienda encarecidamente SMBv3) para proteger los sistemas contra los módulos de propagación de red utilizados por TrickBot.

Recomendaciones finales

Por último, vigile los dominios y direcciones IP sospechosos en los registros de herramientas como Firewall y Web Filter, ya que este ataque utiliza procesos legítimos para llegar al servidor de comandos(command & control), no basta con inspeccionar únicamente el tráfico de las aplicaciones que considere sospechosas.

Las políticas de uso consciente de los activos corporativos así como la monitorización del uso de los recursos corporativos y el uso de referencias a estas acciones en la Política de Seguridad de la Información son vías con amplia eficacia en casos similares a éste.

La implantación de solucionesde análisis del comportamiento deusuarios y entidades (UEBA) puede aportar a sus soluciones de seguridad importantes resultados mediante el análisis de comportamientos anómalos en su entorno.

Por Paulo Trindade y Alexandre Siviero