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."
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.
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.
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.
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.
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 |