Consejos Practicos

Consejos practicos sobre AutoitScript

Cómo entender códigos maliciosos escritos en AutoIt

Dentro de los lenguajes utilizados para programar códigos maliciosos encontramos AutoIt, veamos como podemos llegar a analizar este tipo de amenazas ya que en los últimos meses hemos detectado varias muestras de malware desarrolladas en este lenguaje alojadas en servidores vulnerados de Latinoamérica.

La muestra sobre la cual vamos a realizar el análisis corresponde a una campaña de propagación que buscaba afectar usuarios brasileños, a través de un correo electrónico que simulaba ser un comprobante de depósito en formato PDF.

correo brasileño malicioso

 

Lo que realmente descarga este correo electrónico es un archivo ejecutable que si un usuario desprevenido lo descarga y ejecutra en su computadora, a pesar que durante unos segundos no ocurrirá nada sobre la máquina, después empezamos a ver que se genera tráfico de red.

captura-trafico-red-3

Vemos que la muestra establece una comunicación con un servidor, intercambiando paquetes TCP. Además al principio de la comunicación luego de la ejecución la muestra envía cierta información del sistema.

Además del análisis dinámico podemos tratar de entender como fue construido este código malicioso. Para ello podemos analizar las propiedades del archivo ejecutable descargado que dice ser un complemento de Java.

version-ejecutable

 

Cuando tratamos de hacer análisis estático sobre muestras de malware se suele recurrir a herramientas de debugging. Para el caso de las muestras que han sido compilados desde AutoIt podemos utilizar un desensamblador para llegar hasta el script y lograr que el análisis sea más sencillo. Para lograrlo utilizamos Exe2Aut una herramienta que nos sirve como decompilador.

codigo-desensamblado

 

Después de hacer la decompilación nos encontramos con un código ofuscado. Lo único entendible a simple vista son las 7 pausas pausas de 3000 milisegundos al principio del código, lo cual explica la demora en la ejecución de esta muestra. El resto del código se convierte en un dolor de cabeza al momento de analizarlo.

Sin embargo, si miramos por un momento el código podemos darnos cuenta que hay una función que se repite en todo el script y que como argumento tiene cadenas de caracteres ilegibles.

script-ofuscado

Si vamos a buscar esta función dentro del script, nos encontramos con una función que realiza una serie de operaciones sobre su argumento.

func-desofus-sucia

Lo que se puede entender de esta función es que va recorriendo la cadena de caracteres que se ingresa y hace unas transformaciones de forma iterativa para obtener la cadena de caracteres con la información que podemos entender.

func-desofus-clara

Si vamos siguiendo la ejecución del script, nos podemos dar cuenta de los valores reales que toman las variables definidas dentro del código una vez que han sido desofuscadas.

cadena-desofuscada2

Podríamos separar solamente esta función para desofuscar las diferentes cadenas de caracteres y lograr entender lo que está modificando este código malicioso en nuestro sistema.

script-desofuscado

Una vez que logramos desofuscar muchas de las cadenas podemos a llegar entender cuales son los archivos que modifica e incluso las variables con la información del sistema que envía.

cadena-desofuscada

Una de las cuestiones importantes para analizar las muestras desarrolladas en AutoIt es que desde el Laboratorio de ESET Latinoamérica hemos encontrado variantes de la familia Win32/Injector.Autoit en servidores de sitios latinoaméricanos, haciéndose pasar por actualizaciones de Adobe Flash, herramientas para pagar impuestos entre otras técnicas de ingeniería social. La recomendación es para que nuestros usuarios tengan instalada una solución de seguridad en sus dispositivos y eviten ser infectados con códigos maliciosos que roben información del sistema.

Imagen de OpenClips en pixabay. Licencia CC0 1.0

Autor Camilo Gutiérrez Amaya, ESET

Fuente: http://www.welivesecurity.com/la-es/2014/02/06/como-entender-codigos-maliciosos-escritos-autoit/

Evitar Falso Positivo en Autoit Script

falso-positivo

Hola! a todos nos ha pasado que al terminar de hacer nuestro script en Autoit ( no importa de que tipo sea ) siempre nos topamos con los Antivirus, gracias a esas personas que utilizaron el lenguaje de una mala manera para fines no muy aprobados por la comunidad en la red ( o al menos para los que tienen archivos importantes en su ordenador ) es por eso que traigo a ustedes una forma de evitarnos esos problemas con Autoit Script.

Los falsos positivos son un problema y un saca canas de muchos programadores en toda la esfera que conocemos como planeta tierra xD en cualquier lenguaje existen y son muy comunes, una lastima, ya que nos trae problemas a nosotros en peculiar, con tantos y tantos malwares creados en Autoit Script y muchos buenos softwares creados en Autoit, por usar una variable con el mismo nombre, se crea el hash y con que sea un poco parecido al hash de un malware, nace el falso positivo, ahora veamos como cambiamos eso.

falso-positivo2Al inicio creamos un script sencillo, una casilla con un mensaje y el boton aceptar, aqui lo muestro, como se dan cuenta es un script de 1 sola linea, indefenso y solo con su texto. despues de hacerlo ejecutable lo subi a VirusTotal y esto es lo que me marca.

falso-positivo3

https://www.virustotal.com/es/file/2e38e48393648c0deed750a131423113294bc7d7e1499b05268fcdd2c4c064a3/analysis/1361500395/

Usando el ResHack ( Resource Hacker)
Nuestro ejecutable con el mensaje de texto lo abriremos con el ResHack o Resource Hacker, como gusten llamarle, hay muchos programas en la red para ver los recursos de un software y editarlos, sin embargo me gusta este.
Iniciamos borrando los siguientes recursos.

falso-positivo4Lista de elementos eliminados y modificados
1.- iconos
Al crear ejecutables nuestros scripts Autoit, se agregan 2 iconos, los cuales son para el Tray, pero como usamos el #NoTrayIcon, estos no nos sirve, asi que se eliminan.

2.- Version Info
Al tener nuestro ejecutable hay que modificar estos datos, como la version y que tipo de lenguaje se utiliso, es Autoit lo se, pero esto apoya a que nuestros scripts marquen falso positivo, este no se elimina, solo se modifica.

3.- String Table
Aqui vienen todos los textos que aparecen en autoit, mensajes de error y notificaciones, como no nos sirve, estos los modificamos dejando solo un espacio en blanco en cada uno de ellos.

4.- Dialog
El dialog muestra una pequeña ventana que dice Autoit como titulo, de nuevo se modifica y la ventanilla es modificada de sus dimenciones hasta dejarla en 1×1, eliminando elementos como el boton y el input que se muestra y los textos.

¿Falso Positivo?  ¿Donde?
Despues de unos 15 minutos de estar modificando todas las cosas que ya mencione usando el ResHacker o Resource Hacker volvi a subir el script a VirusTotal y aqui estan los resultados.

falso-positivo5Aqui el Link
https://www.virustotal.com/es/file/d9f7cc8d3ec3bed8369795f346c85ba51f54127ce76ca0981ffe913693c17b65/analysis/1361500923/

Bueno eso fue todo, solo recuerden que, todo lo creado en Autoit puede ser bueno o malo y no esta de mas checar si causa o no falso positivo, saludos a todos.