Luego de negarme tanto a escribir post técnicos sobre seguridad informática (que es uno de los temas que me apasiona), creo que llego el momento de empezar a compartir con la comunidad, puesto que muchos se podrían ver beneficiados o aprender pildoritas sobre el asunto y complementar su conocimiento+experiencia.
Este post, resume los pasos realizados para la detección de un malware escrito y codificado en visual Basic Script y su respectivo análisis utilizando la técnica debugging, finalmente, se dan algunas recomendaciones de contención y erradicación para evitar su propagación.
Cabe aclarar que no se utilizaron servicios de sanbox de análisis comportamentales automáticos (muchos solo aceptan binarios) o desensambladores porque el malware usa una técnica de evasión sencilla (Conversión a ASCII) y no justifica realizar ingeniería inversa usando uno de estos, además por qué es más divertido entender manualmente lo que el malware están intentando hacer en nuestro host o la red.
Detección del malware:
El primer indicio fue que se detectó una conexión de red sospechosa desde un host interno, pasando por el proxy y hacia la IP publica con reputación alta maliciosa detectada en el Security information and event management (SIEM).
Por lo anterior, se procede a revisar remotamente las conexiones de red (ej. con el comando netstat -abo) del host interno y efectivamente se evidencia que el proceso WScript.exe tiene establecida una conexión hacia el proxy con el Process ID 5744.
Posteriormente se puede validar los procesos que tiene en ejecución la maquina y verificar que usuario este ejecutando este proceso en especifico, para este caso en concreto, se valido que se estaba realizando con la cuenta de red del usuario afectado.
Consultando en Internet se evidencia que el proceso «wscript.exe» es un intérprete para scripts escritos en Microsoft Visual Basic Scripting Edition (VBScript) o JavaScript. Véase el articulo sobre WHS para más información.
Por lo que por “sentido común” y malicia indígena, procedemos a realizar búsqueda de archivos con esta extensión, encontrándonos con una en la siguiente ruta del perfil del usuario:
Se toma la muestra de este script sospechoso y se evidencia que varias soluciones de antivirus lo detectan como malware, por tanto, para el caso en que no lo esté detectando el antivirus personal o corporativo, puedes enviar la muestra comprimida con la contraseña estándar para que los laboratorios generen la firma y se despliegue la “vacuna” en todos los equipos a nivel mundial.
Hasta aquí se tiene la detección de un malware que posiblemente esta relacionado con la conexión inicial sospechosa, sin embargo, en el siguiente análisis de su código es donde se evidencia la relación y que estaba tratando de hacer exactamente.
Se evidencia que el código esta codificado en ASCII (acrónimo inglés de American Standard Code for Information Interchange — Código Estándar Estadounidense para el Intercambio de Información y separado con un “SALT” de tres caracteres «§?§», los cuales se almacenan en una variable acumuladora de tipo String.
Por lo que el siguiente paso es decodificar este código para extraer las variables, los valores y las funciones que usa.
Usando la misma lógica del “atacante” y agregando una línea de código para imprimir la variable que almacena el texto decodificado, puedes obtener el código fuente en texto claro.
Variables y valores asignados:
Esta pequeña función tiene una URL de Google Site codificada, llamando un archivo XML
Ahora vemos el comportamiento del script según las funciones que tiene:
Esta función obtiene información del disco duro en el equipo local, exactamente el número serial de cada volumen.
¿Que contiene la variable “win” la cual recibe como parámetro?
Contiene esta instrucción:
Este código sirve para establecer el nivel de autenticación y crear un objeto WMI el cual podría utilizar por ejemplo el método “ExecQuery” para hacer consultas al sistema operativo y obtener información del mismo, ejemplo, obtener los discos físicos del equipo:
La siguiente función obtiene información del disco duro, equipo, usuario, sistema operativo y la concatena con la constante VICnAME que tiene asignado el valor «SKY ESP PC «
La siguiente función se encarga de enviar la petición POST con la dirección IP (para este caso la 41.249.107.143) que toma del sitio de google Site, por el puerto TCP 2223 y con el string “is-ready”, como se evidencia en el SIEM.
La siguiente función se encarga de escribir en las siguientes rutas del registro:
Crea el acceso directo y crea el archivo malicioso “SysDrivers.vbs”
Ejemplo de argumentos que envía «/c start » «SysDrivers.vbs» » » «&start explorer » «&exit»
Esta función es para salir del script
Las siguientes líneas inician el script y crean objetos para conectarse por XML a la dirección que toma desde Internet.
Finamlemente, este código se encarga de manejar el timeout de la conexión y los parámetros que se envían luego a la función post.
Conclusión:
Se evidencia que el script tiene el siguiente comportamiento:
Busca obtener la siguiente información confidencial utilizando la técnica de evasión tipo ASCII; El script se crea al inicio del perfil del usuario y del Sistema, con el fin de obtener el serial del disco duro, el nombre del equipo, el nombre del usuario de red y el sistema operativo, y lo concatena con el texto “SKY ESP PC”; esta información se envía por medio de un método POST a una dirección IP publica (con reputación alta y que es donde normalmente esta el Command and Control), que toma desde un archivo XML publicado en Google Site.
Crear la configuración por la herramienta de inventario que tengan, para inventariar archivos con extensión *.VBS, , con el fin de detectar proactivamente posibles scripts de Visual Basic Script maliciosos como el analizado en este informe.
Validar si es posible bloquear el puerto TCP 2223 desde el Firewall Perimetral, es decir, que no lo este usando antes otro servicio de red o aplicación valida.
Acciones de contención(antes del análisis):
Bloqueo de las direcciones IPs a la cual se está conectando por medio del script.
Bloqueo de URLs de la IP con Puerto TCP en el proxy.
Detección y toma de la muestra del script malicioso para la generación de la firma en el Antivirus.
Crear o Activar filtros en los IPS/IDS que puedan detectar este tipo de comportamiento sospechoso.
Acciones de erradicación:
Despliegue del extraDAT o Vacuna en todos los endpoints y servidores de la red.
Retos:
Identificar los vectores de ataque del malware.
Comprobar para que se usa el comando «SKY ESP PC». ¿Es de una Botnet?
Utilizar técnicas OSINT para identificar la ubicación e información relevante de los autores del malware.
Se puede descargar la muestra del malware analizado, desde la siguiente URL:
Debe estar conectado para enviar un comentario.