10 de septiembre de 2019

GLUPTEBA. Malware que hace uso de transacciones de Bitcoin para actualizar servidores C2

Una nueva variedad del malware Glupteba recientemente descubierta contiene dos componentes adicionales a las funcionalidades originales del troyano: uno de ellos es un payload que permite hacerse con el control del navegador, y el otro se trata de un exploit para el router, según el artículo escrito por los investigadores Jaromir Horejsi y Joseph Chen para Trend Micro.
El payload que se hace con el control del navegador de la víctima tiene la capacidad de robar el historial de navegación, cookies, y nombres de cuentas de usuarios junto a sus contraseñas; los navegadores afectados son Chrome, Opera y Yandex. Por su parte, el exploit para el router aprovecha una antigua vulnerabilidad que ya fue resuelta, MikroTik RouterOS, la cual permite a atacantes autentificados de manera remota escribir archivos diversos. La ejecución del exploit permitiría a los atacantes configurar el router como un proxy SOCKS a través del cual encaminar tráfico malicioso con el objetivo de ocultar su IP real.
«Parece que los atacantes siguen mejorando el malware y puede que estén intentando expandir su red proxy al Internet de las Cosas (IoT)», informaban los investigadores.
No obstante, lo que resulta digno de mencionar es la nueva funcionalidad de Glupteba para actualizar los C&C. Según Trend Micro, el malware usa la función discoverDomain la cual «enumera servidores de cartera Electrum Bitcoin usando una lista pública, y luego intenta hacer una petición al historial del hash del blockchain del script con un hash incrustado. Posteriormente, este comando revela todas las transacciones relacionadas».
«Luego cada transacción es analizada, buscando la instrucción OP_RETURN«, continúan los investigadores en el artículo. «La información seguida por esta instrucción es usada como parámetro para una rutina de descifrado AES… Esta técnica hace más cómodo al atacante reemplazar los servidores C&C. Si pierden el control de un servidor C&C por algún motivo, tan solo necesitan añadir un nuevo script de Bitcoin y las máquinas infectadas obtendrán un nuevo servidor C&C al descifrar la información del script y retomar la conexión».
Esta versión de Glupteba fue distribuida mediante una campaña publicitaria de malware (malvertising) que tenía como objetivo sitios web que compartían archivos, de acuerdo a la información proporcionada por Trend Micro.
Análisis de Glupteba
En primer lugar es necesario que se descargue el dropper. El binario contiene un archivo autoextraíble personalizado escrito en Go y compilado para que sea ejecutable. El dropper inicia la función ‘config information‘ tras obtener información relativa al hardware y a las operaciones, así como información incrustada en el binario. Se crea entonces una llave de registro para almacenar todo la información obtenida (HKEY_USERS\\Software\Microsoft\TestApp).
El siguiente paso es adquirir machine_guid junto a otros datos del registro mediante la función sendParentProcesses. Esta información luego se incrusta en una petición POST, se cifra en AES y se sube al servidor C&C: hxxps:///api/parent-processes.
Después de esto el dropper revisa si el proceso se está ejecutando como usuario SYSTEM. Si no es así, intentará explotar el método «fodhelper» para elevar privilegios. Si esto se consigue pero aún no se es usuario SYSTEM, el dropper ejecutará el instalador en modo confianza (método «Run as Trusted Installer«).
El binario principal habrá incrustado algunos rootkits que son usados para ocultar archivos y procesos y algunas herramientas de GitHub para instalar los drivers necesarios.
Los investigadores destacaban cuatro funciones en su post:
  • Función executeTask, que procesa los siguientes comandos: hide (para esconder el PID de la tarea usando WinMon incrustado), update (para cancelar y borrar la versión actual y reemplazarla con una nueva) y cleanup (para desinstalar).
  • Función mainInstall: comprueba si hay algún antivirus instalado, añade reglas de firewall y excepciones de seguridad.
  • Función mainPoll: de manera regular obtiene nuevos comandos del servidor C&C. Envía una petición POST a hxxps:///api/poll.
  • Función handleCommand: implementa una puerta trasera (backdoor).
La puerta trasera tiene funcionalidades estándar, pero destaca una en particular: el malware puede actualizar su dirección del servidor C&C a través del blockchain mediante la función discoverDomain. Esta función se puede ejecutar mediante comandos o automáticamente con el dropper.
Control del navegador y exploit del router
Como se ha mencionado anteriormente, al hacerse con el control del navegador lo que el atacante pretende es conseguir el robo de cookies, contraseñas y perfiles del usuario. Estos archivos se comprimen y se suben al servidor con ruta /api/log. Este componente también está escrito en Go, al igual que el dropper principal, y compilado para ser ejecutable. Existe, además, otra versión de esta funcionalidad llamada «vc.exe» cuyo objetivo es extraer las contraseñas y cookies del navegador para publicar la información extraída en la ruta /bots/post-en-data?uuid= del servidor.
En cuanto al exploit para el router, también se desarrolló en lenguaje Go. El exploit investiga cuál es la puerta de enlace por defecto de la red de la víctima mediante una lista de direcciones IP que obtiene llamando al comando WMI «SELECT DefaultIPGateway FROM Win32_NetworkAdapterConfiguration WHERE IPEnabled = true«. Además, otras tres direcciones IP adicionales son añadidas: 192.168.88.11, 192.168.0.1, 192.168.1.1. Es una vez obtenida la conexión con el dispositivo puesto a la escucha en el puerto 8291 cuando se intenta explotar la vulnerabilidad CVE-2018-14847. El exploit permite al atacante obtener las credenciales de administrador de routers que no han sido actualizados frente a esta vulnerabilidad.
Una vez se obtienen estas credenciales, se añade la tarea programada «U6» al router. Esta tarea comprobará cada 10 minutos una URL del C&C y ejecutará el contenido que se descargue de ella. Esta URL devolverá un mensaje de error 404, pero cuando se le envía el comando adecuado devuelve un archivo RSC que contiene el formato de la configuración del RouterOS y que sirve para controlar el router.
Aunque es innegable que quienes fabrican el dispositivo juegan un papel crucial en cuanto a las medidas de seguridad adoptadas, no debemos olvidar que los usuarios también tienen parte de la responsabilidad en cuanto a la protección de su privacidad, por lo que se recomienda mantener siempre los equipos y dispositivos actualizados y estar al día de las posibles vulnerabilidades que puedan comprometer la integridad de nuestros datos personales.
Más información
Fuente: Hispasec