jueves, 7 de diciembre de 2017

AutoIT, ¿Que es?¿Como funciona? ... y ¿Por que lo usa el Malware Bancario Brasileño?


By @RaulRenales


Recientemente me pareció curiosa la siguiente noticia, “AutoIt Scripting utilizado por Overlay Malware para eludir la detección AV”, en la que se explicaba como el equipo X-Force de IBM había detectado el uso de scripts de AUTOIT en malware usado para el robo de sesiones de acceso a bancos brasileños, el objetivo de usar este tipo de scripts es simple y llanamente emular las acciones humanas para evadir el control de los Antivirus.


Como siempre la curiosidad me asaltó rápidamente y me fui a buscar info de este lenguaje para sistemistas y encontré cosas curiosas. Antes de contarlas, quiero dedicar este post a mi brother de curro @panapunk que estoy seguro que le interesara mucho.


Disclaimer: Este post es meramente didáctico-divulgativo y se utilizará para impartir formación, cualquier mal uso que se de sobre su contenido estará bajo la responsabilidad de la persona que lo mal utilice.

Para los que estén interesados más en el RAT que en el AutoIT les dejo estos enlaces:




El caso es que este post esta mas orientado en entender que es AutoIT y como funcionan sus scripts. Este post forma parte de una trilogía en el que presentaremos el lenguaje de script, aprenderemos sobre su programación y acabaremos haciendo un pequeño honeypot para ponerle trampas a los malos.


¿Que es AutoIT?


Según Wikipedia, AutoIt es un lenguaje freeware multipropósito y de automatización para Microsoft Windows. Se ha expandido desde sus comienzos como herramienta de automatización y se han ido incluyendo muchas mejoras en el diseño del lenguaje de programación y sobre todo en nuevas funcionalidades. En su versión inicial, el software estaba orientado principalmente a crear scripts de automatización (también macros) para el sistema operativo y programas basados en Microsoft Windows.


¿Donde puedo descargarlo?


Podemos descargar varias herramientas relacionadas con el lenguaje AutoIT en la siguiente página:




Instalación


1) Primero descargar e instalar el siguiente archivo, se trata de la base del lenguaje y el editor:




2) Segundo descargar e instalar el editor, aunque nos valdría con el notepad:



Nota: El segundo paso es opcional, el editor puede ser cualquier editor de textos como notepad o notepad++


Tras la instalación de los dos programas en nuestro equipo tendremos todo listo para comenzar con nuestro primer script.




Una vez instalados y lanzados nos ponemos manos a la obra.


Mi primer script con AutoIT


Bueno, pues una vez que tenemos todo instalado vamos a ponernos manos a la obra con el primer ejemplo que no es más que un ejemplo para demostrar que el programa funciona y qué podemos hacer algunas cosillas interesantes con él.


Básicamente este primer script abre el Notepad, escribirá un mensaje y lo cierra sin guardar.

Abrimos nuestro editor desde el menú de windows, buscando sciTE en la barra del buscador:



Una vez abierto, ya tendremos nuestro editor de scripts listo para crear nuestro primer test y con todas las herramientas disponibles para compilar, debugear y similares.


Otra herramienta interesante a tener siempre presente en la pantalla es la ventana de información, con la que obtendremos información de los objetos que lanzamos en el sistema operativo y con esta información nos sera mas fácil poder crear un script apropiado para cada caso.


En el editor de texto vamos a incluir nuestro primer comando:


Run (“notepad.exe”)


A modo de prueba, vamos a ejecutarlo, para ello en el menú de Tools podemos realizar un Test Run o un Go :




El resultado es que tendremos abierta una instancia del Notepad.


El siguiente paso es enfocar el script contra la ventana del notepad, para ello deberemos decirle al script mediante el comando WinWaitActive que ventana queremos utilizar para nuestro siguiente paso.


Para utilizar WinWaitActive debemos indicarle exactamente el nombre de la ventana, y es aquí donde el AutoIt Window info nos ayudara mucho. Lo abrimos desde el menú Tools > AU3info y lo vamos a utilizar para detectar la ventana.



Como se puede ver, hemos detectado que el título de la ventana que vamos a utilizar es “Sin título: Bloc de notas”, con lo que nos disponemos a añadir la línea con el WinWaitActive.


Run("notepad.exe")
WinWaitActive("Sin título: Bloc de notas")


Con estas dos líneas lanzamos el bloc de notas y lo seleccionamos para enviarle por ejemplo una frase y que la escriba:


Run("notepad.exe")
WinWaitActive("Sin título: Bloc de notas")
Send(“Saludos DT y a la gente de HoneySEC ”)


Pues bien, nuestro escript ya abre el bloc de notas y escribe una pequeña frase en él. Pasemos a la parte de cerrarlo. Para ello usaremos el comando WinClose() al que le pasamos como parámetro el título de la ventana a cerrar:


Run("notepad.exe")
WinWaitActive("Sin título: Bloc de notas")
Send(“Saludos DT y a la gente de HoneySEC ”)
WinClose("Sin título: Bloc de notas")


Como os podéis imaginar, el bloc de notas al cerrarse lanzará una segunda ventana como esta:




Esta ventana detiene nuestra intención de cerrar el bloc de notas, por lo que no cumpliríamos con nuestro objetivo de Abrir un documento, escribir y cerrarlo sin guardar.


Con AutoIt esto no es problema, tan solo tendremos que enfocar la ventana que sale de la acción de cerrar y pedirle que no guarde mandandole un ALT+N, que como se ve en la imagen anterior es la opción de no guardar. El código seria el siguiente:

Run("notepad.exe")
WinWaitActive("Sin título: Bloc de notas")
Send("Hola DT y a la gente de HoneySEC")
WinClose("Sin título: Bloc de notas")
WinWaitActive("Bloc de notas")
Send("!N")


Donde el WinWaitActive(“Bloc de notas”) selecciona la ventana de cierre y el Send(“!N”) envía el ALT+N. Indicar que esta exclamación al ser enviada funciona como el ALT.


Y así de sencillo hemos creado nuestro primer script con AutoIT.


Como mencione al inicio de este post, este artículo forma parte de un grupo de tres. En el próximo capítulo daremos un repaso al lenguaje de AutoIT y veremos algunos ejemplos más, en el tercer y último artículo veremos como levantar puertos y crear alertas sobre eventos que puedan producirse en estos puertos a modo de un pequeño honeypot.

Os espero en los próximos capítulos. Gracias.

No hay comentarios:

Publicar un comentario