Veil-Framework

Em Posts anteriores (este, este, este e este, por exemplo) mostrei como usar o msfvenom veil_logopara gerar várias cargas úteis, mas hoje em dia os fornecedores de AV codificaram os modelos de assinaturas que esses esquemas usam para que sejam ignorados pelos AV, então mostrei o uso de encoders, especialmente o shikata_ga_nai, para evitar que estes payloads sejam detectados como maliciosos pelos AntiVirus. O nome é apropriado (é a maneira japonesa de dizer “nada a ser feito sobre isso“), pois a codificação polimórfica significa que não há esperança de que os produtos antivírus detectem códigos maliciosos codificados usando esse método.

Não digo isso como uma verdade absoluta, pois agora os AVs podem simplesmente procurar pelo decodificador. Mas não tenho dúvidas que a identificação do malware será dificultada.

No post mencionado por último mostrei como criar um RAT (Remote Access Toolkit) usando o msfvenom e o Meterpreter. Quando criei esse RAT, usei o codificador Metasploit Shikata_ga_nai com o propósito de ignorar a proteção antivírus no sistema operacional Windows. Devido à popularidade, a maioria das soluções de antivírus registrou a assinatura do Shikata em seus bancos de dados. Isso resultou no Shikata sendo detectado e interrompido imediatamente por vários dos AVs. Porém, um hacker pode usar o Veil-Framework para contornar isso.

observaçãoSobre o uso do metasploit, sugiro a leitura dos posters indicados acima

Neste Post, abordarei o framework Veil, uma estrutura que contém várias ferramentas para criar payloads, ocultar cargas úteis em arquivos executáveis ou PDFs (no próximo post), fornecer payloads, reunir informações e permitir a pós-exploração. Muitos hackers usam o Veil por causa da eficiência na codificação e entrega de payloads. Permanecer sem ser detectado por antivírus (AV) ou sistemas de detecção de invasão (IDS) é uma prioridade máxima para qualquer hacker. Portanto, mostrarei como o Veil é capaz de evitar a detecção pelo AV/IDS e como criar um payload criptografado. O objetivo é permitir ao leitor uma compreensão básica do uso do Veil.

Veil-Evasion

A primeira ferramenta que usarei é chamada Veil-Evasion. A maioria dos dispositivos que possuem algum tipo de software antivírus será capaz de detectar binários básicos do Meterpreter. Esses binários são encontrados dentro do payload.

observaçãoApenas uma questão de nomeclatura: como estou escrevendo em português, algumas vezes prefiro dizer “carga útil” ou simplesmente “carga” para me referir ao “payload“.

O Veil-Evasion usa vários métodos de codificação diferentes para alterar as assinaturas de arquivos para evitar a detecção. Quando o Veil-Evasion manipula a assinatura do arquivo, os programas antivírus não podem mais fazer referência cruzada com o banco de dados de exploits/vulnerabilidades conhecidas. Ao usar o Veil-Evasion, um hacker tem uma enorme vantagem sobre quem tenta proteger a rede contra ataques; as soluções de AV populares são inutilizadas. O Veil-Evasion vem com 41 payloads (e aumentando) escritos em várias linguagens de programação, tais como C, C #, PowerShell e Python. Uma das linguagens mais populares que os hackers usam no Veil-Evasion é o Python, porque é uma das poucas linguagens encontradas no Veil-Evasion que suporta conexões HTTPS reversas do Meterpreter. Isso é importante porque ajuda o shell (linha de comando) a permanecer indetectável. Meterpreter reverse HTTPS faz isso usando SSL para criptografar tudo o que está sendo transmitido pelo shell. Outro benefício do uso do Python é a capacidade de criar cargas contidas (contained Payloads). Cargas contidas já contêm o código do Meterpreter necessário para estabelecer a conexão HTTPS reversa. Normalmente, o Meterpreter organiza a primeira parte do código e, em seguida, exige um download para o restante do código ser executado. Isso acontece, principalmente, em e-mails de phishing que pedem que a vítima clique em um link ou baixe um anexo. Ao ativar o link ou anexo, a vítima baixa o resto do código do Meterpreter, fazendo com que ele seja executado. Cargas contidas são geralmente mais efetivas. O uso da linguagem Python permite que o Veil-Evasion crie executáveis maliciosos usando o Wine (para compilar o arquivo .exe). Pode-se melhorar a codificação da carga usando pyherion para que o Veil criptografe a carga usando a criptografia de chave aleatória AES. Ao fazer isso, um hacker pode randomizar o código-fonte original da carga útil. Isso tornará a detecção por AV ou IDS significativamente mais difícil. O Veil-Evasion é uma ferramenta altamente versátil que pode permitir que um hacker permaneça indetectável durante e após um ataque. O Veil-Evasion também é altamente suportado e atualizado constantemente, o que o torna ainda mais efetivo contra o AV/IDS.

Veil-Pillage

Outra ferramenta poderosa encontrada no Veil Framework é chamada Veil-Pillage. O Veil-Pillage foi uma ferramenta separada até o Veil 2.x e é uma estrutura pós-exploração que consiste em múltiplos módulos. No Veil 3.1.X ela está integrada ao Veil-Evasion.

Instalando o Veil Framework no Kali Linux

O procedimento de instalação pode ser encontrado em https://github.com/Veil-Framework/Veil/blob/master/README.md.

Eu fiz a instalação como “root“, caso seja como “usuário” é necessário digitar sudo antes dos comandos.

No Kali Linux, fiz direto, foi só digitar:

apt-get update

apt-get install veil

Durante o processo, os seguintes pacotes foram instalados. Next -> Next -> Next -> Finished! neles.

Wine

pywin32

pycrypto

Ruby

AutoIT

Se ocorrer algum erro, rode:

root@kali-vm:/usr/share/veil# /usr/share/veil/config/setup.sh --force --silent

Nota:

–force – Se algo der errado, isso sobrescreverá qualquer instalação anterior. Útil quando há uma atualização do pacote de instalação.

–silent – Isso executará uma instalação autônoma de tudo, pois automatizará todas as etapas, portanto, não haverá interação para o usuário.

observaçãoSe a instalação finalizar com:

Failed with installing wine (2): 0
  [I] If you have any errors running Veil, run: './Veil.py --setup' and select the nuke the wine folder option

Rode:

./usr/share/veil/config/setup.sh

E quando aparecer:

[*] [ALERT]: Existing Veil Wine environment detected at: /var/lib/veil/wine
     Do you want to nuke it? ([y]es/[N]o): y

Digite “y” e Next -> Next -> Next -> Finished!

Isso vai excluir e reconstruir todo o ambiente do Veil Wine.

Depois:

root@kali-vm:/# cd ./usr/share/veil/config/; ./update-config.py

Para iniciar o Framework:

root@kali-vm:/# cd ./usr/share/veil/; ./Veil.py

Depois de iniciar o Veil, você verá uma tela de menu, que lhe dará duas opções de ferramentas (tools), vamos selecionar o Evasion (1):

fig1_veil

vamos selecionar Evasion (1):

fig2_veil

A opção de lista trará uma lista de 41 cargas úteis que podem ser usadas.

Para este laboratório, vamos selecionar a carga útil ruby/meterpreter/rev_tcp, que é número 39 da lista.

fig3_veil.png

Para usar a carga útil, digite use 39. Após a carga ter sido selecionada, precisamos definir o LHOST e LPORT:

fig4_veil

Este é o mesmo processo que usamos no post Payloads e Encoders: Exploits para
Serviços de Rede com o Parrot Security
, usando msfvenom. O LHOST será o IP do atacante e o LPORT é a porta na qual a carga útil se comunicará. Se você precisa encontrar seu IP, digite ifconfig. Depois de ter seu IP, podemos começar a compilar a carga útil em um executável.

fig5_veil.png

Em seguida, seremos solicitados a nomear o executável que acabamos de criar. Para este laboratório, eu o nomeei Boleto.exe (você pode nomear o que quiser). O executável criado pode ser encontrado em /var/lib/veil/output/compiled/Boleto.exe.

Agora, para criar uma carga criptografada para evitar a proteção antivírus. Selecionei uma carga diferente, abri o Veil-Evasion e digitei a list novamente.

Na lista, selecionei python/shellcode_inject/aes_encrypt. Essa carga será o número 29 da lista. Também podemos obter informações sobre a carga que selecionamos digitando info 29. Como você pode ver na captura de tela a seguir, obtemos informações básicas sobre a carga útil

fig6_veil.png

Observe que esta é uma excelente carga útil, e provavelmente será eficaz quando executada no dispositivo de vítima. Essa carga útil usa Injeção VirtualAlloc em combinação com criptografia AES para se esconder da proteção antivírus.

fig7_veil.png

Após digitar use 29, mantive as configurações padrão indicadas no menu de definição das opções e digitei generate.

fig8_veil.png

O próximo menu escolhi o tipo de shellcode selecionando o número 2, o shellcode padrão do msfvenom.
Depois, selecionei a primeira carga pressionando [Enter] – a carga padrão windows/meterpreter/reverse_tcp. Defini o LHOST.
Este menu oferece a opção de pressionar [Tab] para obter o IP do dispositivo que você está usando como o LHOST.
Em seguida, defini a LPORT 4444. Para este Post, não configurei nenhuma opção adicional do msfvenom. Digitei [enter] e iniciou a geração do shellcode.

Depois que a carga útil foi gerada, foi solicitado um nome para ela, escolhi Boleto2 (você pode nomear como quiser).

fig9_veil.png

Em seguida, selecionei como compilar a carga em um executável selecionando o número 1 para o Pyinstaller, e a carga útil foi compilada em um .exe e está pronta para uso.

fig10_veil

O novo código que gerado, com o Meterpreter embutido, ultrapassará a maioria das proteções antivírus.

fig11_veil

Sobre Antivirus

Os aplicativos antivírus funcionam comparando os arquivos com um banco de dados de assinatura conhecido. Portanto, se um arquivo tiver a mesma sequência de código que foi relatado como vírus, esse arquivo será mostrado como vírus. No entanto, existem outros de AV baseados em comportamento, em que o software analisa comportamentos ou ações em vez de assinaturas. Nesse tipo, o software antivírus procurará uma lista predeterminada de ações que foram marcadas como comportamentos mal-intencionados.

observação Nunca teste seu payload em sites de varredura de vírus on-line , como virustotal ou nodistribute. O que fiz neste Post foi apenas para ilustrar

O próximo Post será a continuação deste; abordarei, entre outros assuntos, Como o software antivírus funcionam e Como incorporar um RAT em um PDF usando a técnica de infiltração social.

Anúncios

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair /  Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair /  Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair /  Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair /  Alterar )

Conectando a %s