Detección y análisis de un codigo malicioso (malware en visual basic script)


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

 

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.

conexion

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.

procesos

 

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:

DeteccionScript

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.

verificacion malware
Fuente> https://www.virustotal.com/en/file/1390a053996a54af3b4f36450ac2928deb97eb7ed57eb2c7de5af5f09b87cfaf/analysis/

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.

Análisis del malware

Nombre Archivo Analizado: “SysDrivers.vbs”

HASH SHA256: 1390a053996a54af3b4f36450ac2928deb97eb7ed57eb2c7de5af5f09b87cfaf

Preview del script:

ScriptCodificado

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.

FuncionDecodificar

Variables y valores asignados:

Variables-Valores

Esta pequeña función tiene una URL de Google Site codificada, llamando un archivo XML

FuncionAliveData

Valor Codificado>

(«104|116|116|112|115|58|47|47|115|105|116|101|115|46|103|111|111|103|108|101|46|99|111|109|47|115|105|116|101|47|98|97|114|103|99|109|47|99|111|110|102|105|103|47|112|97|103|101|116|101|109|112|108|97|116|101|115|47|116|100|105|45|49|47|85|115|101|114|83|101|116|116|105|110|103|46|120|109|108»)

Valor decodificado>

https://sites.google.com/site/bargcm/config/pagetemplates/tdi-1/UserSetting.xml

Este es el contenido del archivo “UserSetting.xml”

XML

Convirtiendo estos códigos ASCII, corresponde a una dirección IP

DecodeXML

Esta dirección IP tiene reputación alta de correo y es de Marruecos.

ReputacionIP
Fuente> http://www.mcafee.com/threat-intelligence/ip/default.aspx?ip=41.249.107.143
UbicacionIP
Esta IP es la que se detectó como maliciosa al inicio de este post.
ReputationSonicwall
Fuente> http://ipreputation.global.sonicwall.com/view

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.

fHDD

¿Que contiene la variable “win” la cual recibe como parámetro?

vWin

Contiene esta instrucción:

decodeWIN

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 «

fInfo

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.

fPost

La siguiente función se encarga de escribir en las siguientes rutas del registro:

  • «HKCU\Software\Microsoft\Windows\CurrentVersion\Run\»,
  • ‘»HKLM\Software\Microsoft\Windows\CurrentVersion\Run\»
  • «HKEY_LOCAL_MACHINE\software\classes\folder\defaulticon\»,
  • Crea el acceso directo y crea el archivo malicioso “SysDrivers.vbs”

SubParseFile

Ejemplo de argumentos que envía «/c start » «SysDrivers.vbs» » » «&start explorer » «&exit»

cicloParseFile

Esta función es para salir del script

fUnParseFile

Las siguientes líneas inician el script y crean objetos para conectarse por XML a la dirección que toma desde Internet.

start

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.

timeout

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.

CONTRAMEDIDAS

Acciones recomendadas (después del análisis):

  • Bloquear en el proxy la siguiente URL, que es desde donde esta tomando la IP a la cual se conecta luego: https://sites.google.com/site/bargcm/config/pagetemplates/tdi-1/UserSetting.xml
  • 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:

http://bit.ly/1GySUe2

Password: «infected»

«Lo interesante de la seguridad informática o de la información, es que como dicen por ahí, no todo es siguiente>siguiente>finalizar…»

By @JOGAcrack…