Git Product home page Git Product logo

autoit-malware-scripts's Introduction

Autoit Malware Scripts

Una serie de scripts programados por allá del 2014/15. Hechos totalmente por diversión y aprendizaje.

Tened en cuenta que todos estos scripts fueron probados en el sistema operativo Windows 7 así como también en las versiones de Safari, Chrome y Opera de ese año.

RunPE - RunPEx64

Un RunPE es un script hecho para ejecutar los bytes de un binario directamente en el sistema sin necesidad de que el archivo toque el disco, comúnmente llamado ejecución “on the fly”

Los pasos que seguí para desarrollar este script están escritos de la mano de The_Swash, un usuario de un foro ElHacker.net. Las instrucciones son las siguientes:

  • Comprobar que es un ejecutable válido (MZ & PE/x0/x0 Signature).
  • Crear un nuevo proceso suspendido (Generalmente con el mismo ejecutable).
  • Desasignar la proyección del archivo en ese proceso, ImageBase. (Limpiar el ejecutable del proceso).
  • Obtener contextos (Registros).
  • Reservar en memoria la dirección del ImageBase del ejecutable con un tamaño del campo SizeOfImage. (ImageBase y SizeOfImage del archivo a ejecutar).
  • Escribir la cabecera y las secciones alineadas por el campo SectionAlignment.
  • Editar EAX en los registros leídos por la dirección del punto de entrada del archivo a ejecutar.
  • Editar EBX + 8 por el ImageBase del ejecutable a cargar (Cambiar base de la imagen del nuevo proceso).
  • Editar con el nuevo contexto (Escribir registros).
  • Iniciar el proceso suspendido.

La version x64 del RunPE es para archivos compilados específicamente para arquitecturas x64. Los cambios que se realizaron en el script para que soportara esta arquitectura fueron los siguientes:

  • Cambiar la estructura "IMAGE_OPTIONAL_HEADER" por su correspondiente para versiones x64 "IMAGE_OPTIONAL_HEADER64"
  • Cambiar la Estructura "Conxtext" por su correspontiente para versiones x64
  • Cambiar el valor del "ContextFlag" para versiones x86 es 0x10007 y para x64 es 0x100007
  • Cambiamos el tipo de memoria a reservar con "VirtualAllocEx" pasa de ser para x86 0x3000 (MEM_COMIT + MEM_RESERVE) y para x64 solo MEM_COMIT 0x1000
  • Para cambiar el EntryPoint pasamos de utilizar "EAX" a utilizar "RCX"
  • Pasamos de utilizar "EBX" para utilizar "RDX"
  • Cambiamos el PEB, utilizando su estructura y las APIS "ReadProcessMemory" para leer la memoria y "WriteProcessMemory" para escribirla, tambien cambiamos la direccion del "ImageBase" por el retorno de la API ""VirtualAllocEx".

OPCode Injector

El script inyecta en un proceso en ejecución los OPCodes especificados. Un OPCode es una instrucción de lenguaje de máquina que especifica una acción a realizar.

La manera más simple de obtener los OPCodes de un script es abriendo el compilado con un debugger y copiandolos a mano directamente.

DLL Injector

Inyecta una DLL al proceso en ejecución especificado.

BSOD Process Protector

El script protege un proceso para que no pueda ser cerrado, si intentamos cerrar un proceso protegido el sistema dará un fallo que provocará un “Blue Screen of Death”

From RVA To Offset

El script transforma un dirección relativa virtual a una dirección física en disco.

Cuando un ejecutable se carga en memoria en el sistema operativo las direcciones de sus elementos pasar a ser virtuales, si estamos intentando manipular el proceso para por ejemplo ejecutar código remoto necesitamos saber la direccion fisica (en disco) de sus elementos para invocarlos directamente.

ShellShock Exploit

El script automatiza la explotación de la vulnerabilidad ShellShock (CVE-2014-6271).

El codigo esta basado en el codigo python http://www.homelab.it/wp-content/upload ... v2.py_.txt escrito por Claudio Viviani que leí para entender cómo explotar el fallo.

Add Fake Header Section to Executable

El script añade una cabecera falsa al ejecutable especificado. El script no soporta ejecutables con la tabla Bound Import.

Agradecimientos al usuario The_Swash del foro ElHacker.net por el fantastico manual del formato PE bajo windows: http://ns2.elhacker.net/timofonica/manus/Formato_de_ficheros%20ejecutables%20_Formato%20PE_.pdf

Delete Bound Import

El script elimina la tabla Bound Import de la cabecera del ejecutable. Esta tabla optimiza la ejecución del archivo pero si es eliminada el ejecutable no corrompe su ejecución.

Es útil eliminarla cuando queremos modificar un archivo ya compilado añadiendo cabeceras falsas. Durante el proceso si el archivo tiene la tabla Bound Import nos dificulta el trabajo.

Safari Password Stealer

El script retorna las contraseñas guardadas en el navegador Safari.

El funcionamiento del script esta todo explicado en el post de SecurityExploded (Exposing the Password Secrets of Apple Safari - http://securityxploded.com/safari-password-secrets.php) del cual esta basado el código.

Chrome Password Stealer

El script retorna las contraseñas guardadas en el navegador Chrome, curiosamente también funciona para el navegador Opera sin necesidad de modificar nada.

Para el correcto funcionamiento el script necesita la librería SQLite3.dll.

Get Runtime Process Full Path

Este script nació de la necesidad de encontrar la ruta completa de un archivo a partir del proceso que se encontraba en ejecución.

Basado en el codigo en C de Emerick Rogul http://stackoverflow.com/questions/1933113/c-windows-how-to-get-process-path-from-its-pid

Mouse And Keyboard Block Hook

El script hace un hook bloqueando el ratón y el teclado, el bloqueo no es muy bueno ya que las combinaciones de teclas como CTRL + ALT + SUPR siguen funcionando.

Simple Keylogger

El script guarda las pulsaciones en el teclado usando las APIS GetAsyncKeyState y GetKeyState del sistema operativo. Luego envía la información usando el protocolo de transferencia de datos FTP.

autoit-malware-scripts's People

Contributors

nakerdev avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.