Hace poco, investigamos un malware interesante que estaba dirigido a un sitio web perteneciente al Consulado Polaco. Para comprender el motivo, primero necesitamos detenernos brevemente en el proceso de solicitud de las visas.

Los bielorrusos que deseen obtener una visa deben llenar un formulario para programar un turno en el Consulado. El formulario debe llenarse en días específicos (por ejemplo, las solicitudes de turnos correspondientes a enero de 2015 se programaron para llenarse los días 20 y 21 de diciembre) y la cantidad de turnos disponibles es muy limitada.

Según varios hilos de discusión en los foros, es muy difícil conseguir uno de esos turnos, en consecuencia, algunas personas recurrieron a escribir scripts para automatizar el proceso, lo que reduce mucho más las posibilidades de obtener un turno para quienes llenan el formulario manualmente. Para combatir esos bots, el Consulado agregó a su sitio web códigos de verificación CAPTCHA y limitó las conexiones al servidor únicamente para direcciones IP ubicadas en Polonia y Bielorrusia.

El texto en rojo de la siguiente imagen se puede traducir como "La registración electrónica de solicitudes para obtener la visa para misiones consulares en Minsk, Grodno y Brest está disponible en: https://by.e-konsulat.gov.pl. Le comunicamos que solo es posible acceder al portal https://by.e-konsulat.gov.pl desde computadoras cuya dirección IP esté radicada en Polonia o Bielorrusia."

e-konsulat

Aparentemente, alguien decidió ir aún más allá y crear una botnet con el propósito específico de llenar los formularios. Aquí es donde el código malicioso MSIL/Agent.PYO entra en nuestra historia. Está compuesto por múltiples componentes: un downloader o descargador de programas maliciosos (encontramos que se estaban usando dos versiones diferentes, una escrita en C# y otra, en C++), un updater o actualizador y el componente principal cuyo nombre original es es "Konsulat.RemoteClient".

El ejecutable principal se encuentra ofuscado con .NET Reactor, pero también contiene módulos integrados que no están ofuscados.

modulos_no_ofuscados

Lo bueno acerca de los programas .NET es que, si están desprotegidos, se pueden descompilar fácilmente con herramientas como JustDecompile, dotpeek o ILSpy, lo que genera un archivo de código fuente bastante similar al original, que incluye las funciones y los nombres de las variables.

codigo_fuente

El programa estaba separado en forma ordenada en distintos módulos, lo que también ayudó en el análisis. Por ejemplo, el código para cada paso del proceso de registración se encuentra en una clase aparte.

codigo_clase_modulo

El código responsable de la comunicación con el servidor de comando y control se creó con WCF (Windows Communication Foundation), que es un marco utilizado para crear servicios Web. El archivo ejecutable principal contenía las siguientes endpoints:

net.tcp://37.28.153.162:26900/control
net.tcp://37.28.153.162:26900/log
http://37.28.153.162:7425/

Cuatro días antes de la apertura de las registraciones, el componente descargador de MSIL/Agent.PYO ya se estaba distribuyendo mediante el Nuclear Exploit Kit y solo a computadoras en Bielorrusia. Las estadísticas del vínculo a bit.ly utilizado en la cadena de redirección demuestra que se redirigieron más de 200.000 equipos al exploit kit en alrededor de 6 días.

redireccion_exploit_kit

Como era de esperar, el 20 y el 21 de diciembre, los bots comenzaron a recibir comandos para llenar los formularios de registro. Aparentemente, el desarrollador del malware también estaba ocupado actualizando el código de la botnet en esos momentos, ya que el número de versión cambió tres veces en los días subsiguientes.

Fecha Versión
20/12/2014 1.5.24.0
20/12/2014 1.5.25.0
22/12/2014 1.5.29.0
29/12/2014 1.5.31.0

El monitoreo de la botnet reveló que contenía alrededor de 300 equipos, casi todos ubicados en Bielorrusia. En el transcurso de 5 semanas, 925 computadoras diferentes se conectaron, una cifra sorprendentemente grande para una botnet con un objetivo tan específico.

Transmitimos la información recopilada a CERT-PL y CERT-BY, los equipos de respuesta ante emergencias informáticas de Bielorrusia y Polonia.

Muestras analizadas

SHA1 Componente Nombre de detección
01baf70db10c506a5ff7629a4a8a30416835769f Downloader Win32/TrojanDownloader.Agent.AZM
3a63b784b900688e55b8925cbead856f62535ada Downloader MSIL/Agent.PYO
80e49d21e314e17c8d99230444f77820c67318cb Updater MSIL/Agent.PYO
254e1ceaa44ce19570a6d4b0812d3b6081a48782 RemoteClient MSIL/Agent.PYO