A finales del mes de Septiembre de 2017 se publicó una noticia en la cual se indicaba la presencia de un Spybanker malware bancario denominado XPCTRA (Expectra). Sus objetivos, los de siempre: Robar credenciales bancarias y Conseguir información para continuar expandiéndose
buguroo Labs realizó un profundo análisis y llegó a la conclusión de que simplemente se trata de una pequeña modificación de un malware ya existente, así que en este post solo analizamos las funcionalidades nuevas que presenta.
Nuestro protagonista es el binario con sha256: 98337ca50d0cac2fab4566a39c6149328889bb06a6dd56a4c2a66cbea326138c.
En el análisis inicial observamos que su estructura es bastante similar a la familia QuasarRAT y comparamos el funcionamiento de los troyanos bancarios. Se evidencia al comparar la estructura del binario analizado en este post con la estructura típica de un malware QuasarRAT compilado con las opciones por defecto del código publicado en github. Hay algunas pequeñas diferencias debido a que el código publicado en github es una versión más reciente.
|
Ilustración 2. Estructura QuasarRAT |
Durante toda su ejecución y uso, hace referencia a una serie de parámetros a los que denomina “settings” y que nos permiten hacer un seguimiento más detallado de todas las acciones que tiene previstas:
Ilustración 3. Settings del binario
Instalación
Lo primero que hace es instalarse en el ordenador de la víctima, y para hacerlo, utiliza un certificado digital para interceptar el tráfico https.
Puede suceder que el certificado ya estuviera instalado en el ordenador del usuario. Si esto es así, el código malicioso saltará directamente a la fase de robo de credenciales bancarias.
Si no está instalado, genera uno y lo instala mediante la herramienta del sistema certutil:
“certutil –addstore \Root\$Variable_Path\fiddlerRoot.cet”
Si la instalación da fallos, busca crear un certificado a través de la resolución de pantalla del ordenador de la víctima. Para identificar la resolución de la pantalla real, cierra los navegadores que pudieran estar abiertos: firefox.exe, chrome.exe o iexplore.exe y termina su ejecución mediante el comando:
“taskkill /f /im $Nombre_proceso.exe”
Una vez que dispone de la resolución de la pantalla, genera el certificado utilizando las posiciones del ratón originadas, tal y como se muestra a continuación.
Ilustración 4. Coordenadas certificado
Una vez instalado, comienza la recopilación de datos de la máquina que está infectada. Para ello recupera la siguiente información:
- Nombre de la máquina infectada
- Nombre del usuario
- Arquitectura de la máquina
- Directorio donde se encuentra el ejecutable
- Ruta al Path de la carpeta Temp
- Resolución de la pantalla
- Mac Address del equipo
- Si contiene alguno de los plugins para Banco do Brasil o Caixa Económica Federal instalados.
- Si existe algún antivirus en el equipo.
Ilustración 5. Información recolectada del equipo
Cuando ya dispone de la información que buscaba, gana persistencia en el sistema elevando los privilegios. Para conseguirlo, añade una clave en el registro de Windows que comprueba su existencia en cada inicio de ejecución del binario:
“HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft \Windows\CurrentVersion\Run”
Y para tratar de elevar privilegios en el mismo, en primer lugar se crea un usuario con nombre de usuario “user” y contraseña “!@c4rnic3ir0!@”. Dicho usuario, trata de darle privilegios de administrador, así como añadirle al grupo de aquellos usuarios que tienen la capacidad de conectarse a la máquina de manera remota.
Conseguida la persistencia y con los permisos que considera necesarios, informa al panel de control de que hay un nuevo usuario infectado.
Para ello envía la información del equipo infectado mediante una petición al panel de control (C&C):
Ilustración 6. Información en el panel de control
Tras notificar al panel de control que hay un nuevo infectado, el malware trata de geolocalizar al usuario. Y para conseguirlo, realiza peticiones a las siguientes web donde puede obtener la dirección IP Pública, junto con la geolocalización de la misma:
- http://ip-api.com/json
- http://api.ipify.org
Finaliza así la instalación y ejecución, de manera que pasa a la explotación.
Robo de credenciales bancarias
Para robar las credenciales bancarias, el malware comprueba la URL a la que accede el usuario infectado desde el navegador.
Para protegerse en su rastreo, si detecta que el usuario navega por alguna página de antivirus o hay activados procesos de antivirus ejecutándose en el sistema o, incluso, si el ordenador estuviera conectando a alguna otra web que puede llevar a que el malware sea detectado, el malware muestra un error 404 con un mensaje indicando que el sitio no se encuentra disponible en ese momento.
Ilustración 7. Urls que el malware intenta evitar
El listado completo de URL’s que detecta y bloquea con el mensaje de error 404 son las siguientes:
- Virus Total
- Avast
- Malwarebytes
- Kaspersky
- Mcafee
- AVG
- Avira
- Norton
- Evirus
- Virus Scan
- Trendmicro
- Eset
- Symantec
- Avast Free
- Avira Free
Si descarta el listado anterior, pasa a comprobar si el usuario está accediendo a alguna URL objetivo para robar las credenciales bancarias. Las URL objetivo son las siguientes.
- Banco Brasil
- Banco do Brasil
- https://www2.bancobrasil.com.br
- Interbanking
- Caixa
- Mercado Bitcoin
- *blockchain*
- https://member.neteller.com
- Perfec Money
En relación con las URL objetivo, en el caso de que el usuario acceda a una de las páginas bancarias de Banco do Brasil o Caixa Económica Federal, el malware se comporta de una manera distinta.
Para estos casos, el malware, comprueba si existen en el sistema los ficheros:
- LockBB.txt para Banco do Brasil
- LockCef.txt para Caixa Económica Federal
Este fichero, lo genera el malware cuando el ciberdelincuente bloquea el acceso al usuario de la banca online. En este fichero, el código malicioso escribe la fecha concreta (día, mes y hora). Estos datos, se utilizan para bloquear el acceso al banco online durante 24 horas. Si el usuario intenta acceder durante ese tiempo el mensaje que aparece es "Esta página está bajo m antenimiento". Pasadas las 24 horas, el usuario puede acceder de nuevo, pero el ciberdelincuente ya la ha robado el dinero.
En el fichero, se escribe la expresión regular con el día, mes y hora en el que se va a producir el bloqueo para el robo.
“Dia:(?<Dia>\\d+)\\r\\\nMes:(?<Mes>\\d+)\\r\\nHora:(?<Hora>\\d+)”
Cuando un usuario intenta acceder a una de las páginas objetivo, el malware envía la siguiente información:
- Dirección IP
- Nombre de la máquina
- Tipo
- Dirección MAC
- Nombre del objetivo
Tras la notificación, el ciberdelincuente, puede realizar alguna de las siguientes acciones:
- Cerrar la conexión con la URL objetivo.
- Mandar las cookies del sitio al que se ha intentado conectar, generando un fichero con extensión sqlite.
- Hacer que se le muestre al usuario una pantalla para que introduzca la contraseña de acceso.
- Bloquear el acceso al banco durante 24 horas, creando el fichero LockBB.txt o LockCef.txt.
El malware ejecuta las tareas para empezar a comportarse como el RAT Quasar, para que el cibercriminal pueda tomar el control de la máquina infectada. Esto confirma nuestras sospechas iniciales de que se trata de una modificación de dicho malware.
Para el segundo caso, en el que las URL objetivo no son Banco do Brasil o Caixa Económica Federal, el malware muestra una pantalla con un login falso para intentar robar las credenciales bancarias al usuario infectado y enviarlas al cibercriminal. En caso de que la URL no coincida con ninguna de las que se encuentra entre los objetivos, revisa si corresponde con alguna de las siguientes:
Si coincide, roba el email y la contraseña que ha introducido el usuario, así como el servicio al que ha accedido y las guarda en un fichero con nombre “E-Vit.txt” que utilizará más tarde.
Robo de información para su expansión
Tras materializar el robo, comienzan las tareas para expandirse e infectar a otros usuarios.
Buscar varios ficheros con extensiones específicas, en busca de direcciones de email a los que enviar un correo spam para infectar también a otros usuarios relacionados con la víctima.
El proceso se lleva a cabo de la manera que analizamos a continuación:
En la misma carpeta donde se ha copiado el malware existen 3 ficheros de los que hará uso en esta fase:
- Enviado.txt: fichero que contiene una lista de emails a los cuales ya se ha enviado el spam.
- E-Enviar.txt: fichero que contiene una lista de emails a los cuales se va a enviar el spam.
- E-Vit.txt: fichero que contiene las credenciales de acceso a distintos servicios de correo que se le han substraído al usuario infectado y que se utilizarán para realizar el envío del spam.
Para ello recupera la información de la ruta para los siguientes directorios:
- Carpeta Escritorio
- Carpeta personal del usuario
- C:\\
En cada uno de los directorios anteriores, el malware lista todos los ficheros que hay y comprueba si alguno de ellos contiene la siguiente extensión:
- Txt
- Doc
- Dat
- Wab
- Xlxs
El malware añadirá todas las direcciones de emails al fichero “E-Enviar.txt”, que se puede encontrar donde está ejecutándose el binario. Terminada la búsqueda de emails en el ordenador de la víctima, se comprueba si los fichero E-enviar.txt y E-Vit.txt existen. En caso de existir ambos, el malware comprueba que los emails que se encuentra en E-Enviar.txt no estén ya presentes en el fichero Enviado.txt.
El malware conecta con la plantilla del email de Spam e irá rellenando con los emails que ha ido consiguiendo:
http://lucifer.icejuice.xyz/master/conf/Html.txt
Una vez enviado se ha enviado el email a la víctima potencial, la dirección de correo es añadida al fichero Enviado.txt para tener un mayor control de la campaña. Por último, el malware notifica al panel de control (C&C) todas las direcciones de email a las cuales se ha enviado el correo de spam.
IOCs
IOCS obtenidos de esta campaña. Se puede comprobar como de las diferentes muestras se han identificado 3 Command and controls (C&C) diferentes.
http://lucifer.icejuice.xyz/master/conf/Html.txt
First Submission on VT | SHA256 |
2017-08-22 18:38:34 | ab0e78800174f62725411de5425e8322f76f678f2706da595e7e2fe17a6daa91 |
2017-08-11 04:43:21 | 98337ca50d0cac2fab4566a39c6149328889bb06a6dd56a4c2a66cbea326138c |
2017-08-31 04:34:17 | 4e5080b3abf246077c87c88ef0030eba23f9b54c78774ff5afb987bcd6797c6a |
2017-10-26 04:39:51 | 1c955b144dba3b47cc87f57ce256fe31a596ae358ad039a9a8761e359d837579 |
2017-09-21 04:47:23 | 1d861adba18935ca4fed4af0d0b1afe31000238afca0d300e0e68583039acb23 |
2017-09-22 16:58:00 | 2e9d2f0ce97c91e598f6b84f937136c7ca151bdb8dfce56d2f67571637d53134 |
2017-09-28 04:52:33 | e8d965991bcb7f6a48273ba8c133c9b9c0f14247dcce75aaab0c763bd03e0dd4 |
http://fritas.cheddarmcmelt.top/master/conf/Html.txt
First Submission on VT | SHA256 |
2017-09-21 22:09:12 | 8332c91467f480e47eb1b02a5a2a06b97af309579dbfce35b9578ff259cfcd8d |
2017-09-22 22:22:55 | d8309bc9317c96f1cf9d9cce9562c8c639556a13b28085bd3d3e0e487190f670 |
2017-09-25 15:11:32 | 92ff4d1348acb90876351db4e9ee329a2882bb8478cadd812e5d93351518aae1 |
2017-09-23 08:35:08 | 886c6466214496f944abd4de83a01773647184efcc4f385a6c26f1b2dda81636 |
2017-09-25 15:11:39 | a2a6dc9ddfd5f1bbf7134b8ea9a9ec268cefdada109b52272f3fd2d0c3e3a19c |
2017-09-25 15:11:40 | fb608cf015648a9bdcc34fa6a2cf6fa22c74ed6bdaf3d852c6d401cee83f6413 |
http://linux99.giduid.xyz/master/Controle.php
(Versión más actual del QuasarRAT que coincide
con la estructura mostrada al principio del documento)
First Submission on VT | SHA256 |
2017-08-04 20:55:03 | e8847241f72b910a266341e060354e762c88143e5e370bf4e1e6c87445a7bd7d |
2017-08-18 11:17:59 | b4562318d4a76c0f33ae7def723a438f55c66b9c94e5629694e62eb45b3d87fc |
2017-07-20 01:17:16 | c704eff77103feaa95ade3fa6b840f081f7333adc9f0c32748400bc9612fb2be |
2017-07-15 02:08:00 | c7567c3034eb48ca51fcd5a55414fbe8015cdc8824367a669d2cb45404e4bf97 |
2017-09-03 10:43:06 | a6dc1bc8cf227dc7340329c37dc8fb683901a6534b9e8bd6371e2c93842409b5 |