Comandos disponíveis no metasploit ? = help menu back = move back from the current context banner = display an awesome metasploit banner cd = change the current working directory color = toggle color connect = communicate with a host exit = exit the console help = help menu info = displays information about one or more module irb = drop into irb scripting mode jobs = displays and manages jobs kill = kill a job load = load framework plugin loadpath = search for and loads modules from a path quit = exit the console resource = run the commands stored in a file route = route traffic through s session save = saves the active datastores search = searches module names and descriptions sessions = dump session listings and display information about sessions set = sets a variable to a value setg = sets a global variable to value show = displays moduloes of a given type, or all modules sleep = do nothing for the specified number of seconds unload = unload a framework plugin unset = unsets one or more variables unsetg = unsets one or more global variables use = selects a module by name version = show the framework and console library version numbers --------Database Backend Commands-------db_connect = connect to an existing database db_create = create a brand new database db_destroy = drop an existing database db_disconnect = disconnect from the current database instance db_driver = specify a database driver. ------------------------Para verificar se um determinado sistema operacional é vulnerável a um exploit em particular, execute o comando show targets de dentro de um exploit para ver quais alvos são suportados. msf> show targets de dentro do exploit -----------------------Se desejar ajustar ainda mais um exploit, utilize as opções mais avançadas com o comando show advanced. msf> show advanced de dentro do exploit --------------------"search" Command O msfconsole inclui uma extensa funcionalidade de pesquisa baseado em expressões regulares. Se você tem uma idéia geral do que você está procurando, pode procurá-lo através do comando search. Na saída abaixo, uma pesquisa está sendo feita para MS Bulletin MS09-011. A função de busca irá localizar essa seqüência de referências
dentro do módulo. Observe sempre a convenção de nomenclaturas para os módulos Metasploit, pois pode usar sublinhados ao invés de hífens. msf> search ms09-001 -------------"info" Command O comando info irá fornecer informações detalhadas sobre um módulo especifico,incluindo todas as opções, os alvos, e outras informações. msf> info dos/windos/smb/ms09_001_write --------------"use" Command Quando tiver decidido utilizar um determinado módulo, utilize o comando "use" para selecioná-lo. Observe na saída abaixo que a variável global que foi definida anteriormente já está configurada. msf> use dos/windows/smb/ms09_001_write ------------------"connect" Command Ao emitir o comando "connect" com um endereço IP e o número da porta, você pode se conectar a um servidor remoto de dentro do msfconsole, o mesmo que você faria com netcat ou o telnet. msf> connect 192.168.1.1 23 ---------------------"set" Command O comando set é usado para configurar as opções e configurações do módulo que você está trabalhando atualmente. msf> set RHOST 192.168.1.1 de dentro do módulo. -----------------Um recurso adicionado recentemente no Metasploit é a capacidade de definir um encoder para usar no run-time. Isto é particularmente útil para explorar o desenvolvimento quando você não está muito certo sobre quais métodos de codificação de payload irá trabalhar com um determinado exploit. msf> show encoders de dentro do módulo depois é só setar o encoder escolhido, utilizando o comando set. -------------"check" command Não existem muitos exploits que suportam esse comando, mas também há uma opção "check", que irá verificar se o alvo é vulnerável a um exploit em particular, em vez de explorá-lo de fato.
msf> show options de dentro do módulo msf> check de dentro do exploit ------------------Setting Global Variables Para salvar um monte de digitação durante um pentest, você pode definir variáveis globais dentro do msfconsole. Você pode fazer isso com o comando setg. Uma vez que estes tiverem sido definidos, você pode ustiliza-los com muitos exploits e módulos auxiliares como você bem entender. Você também pode guardá-las para ustilizar na próxima vez que você iniciar o msfconsole. No entanto, ocorre de você esquecer que você salvou globals, para verificar sempre as suas opções antes de você executar "run" ou " exploit". Inversamente, você pode usar o comando unsetg para remover uma variável global. Nos exemplos que se seguem, as variáveis são inscritos em todas - (ou seja: LHOST), mas o Metasploit é case-insensitive por isso não é necessário fazê-lo. msf> msf> msf> msf>
setg LHOST 192.168.1.101 setg RHOST 192.168.1.0/24 setg RHOST 192.168.1.136 save
----------------"exploit/run" Commands Ao lançar um exploit, você emite o comando exploit, mas se você estiver usando um módulo auxiliar, o comando apropriado é 'run' embora o comando 'exploit' também funcione bem. msf> run de dentro do exploit ---------------------"back" Command Uma vez que você terminar de trabalhar com um módulo específico, ou se você inadvertidamente selecionar o módulo errado, você pode emitir o comando back para mover para fora do contexto atual. Isso, porém não é necessário. Assim como você pode fazer em roteadores comerciais, aqui você pode alternar os módulos a partir de outros módulos. msf> back de dentro do módulo -------------------"resource" Command Alguns ataques como Karmetasploit usa um arquivo de recurso que você pode carregar através do msfconsole usando o comando "resource". Esses arquivos são scripts básico para msfconsole.
Ele executa os comandos no arquivo em seqüência. Posteriormente, vamos discutir como, pode ser muito útil fora do Karmetasploit. msf> resource karma.rc load db_sqlite3 ----------------------"irb" Command Executando o comando irb vai deixá-lo em um modo de ruby script onde você pode emitir comandos e criar scripts on the fly. msf> -------------------A base para qualquer teste de penetração bem sucedida é a recolha de informações sólidas. A incapacidade de realizar a recolha de informações de forma adequada frá com que você ataque máquinas que não são vulneráveis e outros que estão a determinado módulo ou faltando parâmetros. Em seguida iremos abranger vários recursos no framework do Metasploit que pode ajudar com o esforço de reconhecimento de informação. ------------------------The Dradis Framework Se você estiver fazendo parte de uma equipe que está executando um pentest, ou está trabalhando em seus próprios projetos, você vai querer ser capaz de armazenar seus resultados para uma referência rápida e se necessários compartilhar tais dados com sua equipe, pois você certamente vai precisar de ajudar para escrever o seu relatório final. Uma excelente ferramenta para a realização de tudo isso é o Framework Dradis. O Dradis é um framework open source para o compartilhamento de informações durante as avaliações de segurança e pode ser encontrado http://dradisframework.org/ O Framework Dradis está sendo ativamente desenvolvido com novas funcionalidades que são adicionadas regularmente. Comunicando-se sobre o SSL, como o Dradis é possível importar arquivos de resultado do Nmap e Nessus, anexar arquivos, gerar relatórios, e pode ser estendid o para conectar-se com sistemas externos (por exemplo, banco de dados de vulnerabilidade). -----------------No BackTrack4 você pode instalá-lo utilizando o comando. root@bt:~# apt-get install dradis
Uma vez que o framework foi instalado você já pode ir para o diretório e iniciar o servidor. root@bt:~# cd /pentest/misc/dradis/server root@bt:~# ruby ./script/server Enfim, estamos prontos para abrir a interface web Dradis. Navegue para HTTPS://localhost:3004 (Ou use o endereço IP), aceite o aviso de certificado, digite uma senha para o novo servidor, quando solicitado, e faça o login usando a senha definida na etapa anterior. Note que não há nomes para definir a forma de login, você pode usar qualquer nome de login que você desejar. Se tudo correr bem, você estará com a Interface Dradis na área de trabalho de seu computador. No lado esquerdo, você pode criar uma estrutura de árvore. Use-a para organizar as suas informaões (por exemplo: hosts, sub-redes, serviços, etc.) No lado direito você pode adicionar as informações relevantes para cada elemento (tipo: Ntas, anexos etc.). Antes de iniciar o console do Dradis, você precisará editar o arquivo dradis.xml para refletir o nome de usuário e senha de você definiu inicialmente no funcionamento do servidor. Este arquivo pode ser localizado no BackTrack4 em /pentest/misc/dradis/client/conf. Você pode agora carregar o console do Dradis digitando o de dentro do diretório /pentest/misc/dradis/client/ O comando root@bt4:/pentest/misc/dradis/client/# ruby ./dradis.rb Para mais informações sobre o Framework Dradis, você pode visitar o site do projeto na url:http://dradisframework.org/. ----------------------Port Scanning Embora já tenhamos instalado e configurado o Dradis para armazenar nossos resultados, é aconselhável criar um novo banco de dados a partir do Metasploit para que os dados ainda possam ser úteis e para ter uma recuperação rápida e uso em determinados cenários de ataque. msf> db_create msf> load db_tracker Podemos usar o comando 'db_nmap' para executar uma varredura do Nmap contra os nossos alvos e ter os resultados da verificação armazenada no banco de dados recém-criado, no entanto, o Metasploit só irá criar o arquivo de saída XML com o formato que ele usa para preencher os dados.
Já o Dradis pode importar a saída para o grep ou normal. É sempre bom ter todas as três saídas do Nmap (XML, grep, e normal) para que possamos executar o Scan Nmap usando as flags -oA para gerar a saída de três arquivos em seguida, executar o comando db_impo rt_nmap_xml para preencher o banco de dados do Metasploit. Se você não quiser importar os seus resultados para o Dradis, basta executar o Nmap usando db_nmap com as opções que você usaria normalmente, omitindo a flag de saída. O exemplo a seguir seria, então, db_nmap v -sV 192.168.1.0/24. msf> nmap -v -sV 192.168.1.0/24 oA subnet Com a varredura terminada, nós emitiremos o comando db_import_nmap_xml para importar o arquivo XML do Nmap. msf> db_import_nmap_xml subnet_1.xml Os resultados importados do scan Nmap podem ser visto através do comando db_hosts e do comando db_services: msf> db_hosts msf> db_services Agora estamos prontos para importar os nossos resultados para o Dradis, agora mudaremos para o terminal onde temos o console do Dradis funcionando e executamos o comando import_nmap". dradis> import nmap /pentest/exploits/framework3/subnet_1.nmap normal Se você mudar a sua interface web do Dradis e atualizar a exibição, você verá os resultados digitalizados do Scan Nmap importados em um formato de árvore, bem fácil de navegar. ----------------------Notas sobre Scanners e Módulos auxiliares Scanners e muitos outros módulos auxiliares usam a opção RHOSTS em vez de RHOST. Os RHOSTS pode ter intervalos de IP (192.168.1.20-192.168.1.30), intervalos CIDR (192.168.1.0/24), multiplos intervalos separados por vírgulas (192.168.1.0/24,192.168.3.0/24) e arquivos com lista de hosts separada (file:/tmp/hostlist.txt). Este é um outro uso para o nosso arquivo de saída para o grep do Nmap. Note também que, por padrão, todos os módulos do scanner terão o valor de segmentos configurados para '1 '. O valor THREADS define o número de threads simultâneas para usar durante o scanning.
Defina este valor para um número superior a fim de acelerar suas varreduras ou mantê-lo mais baixo, a fim de reduzir o tráfego de rede, mas não se esqueça de respeitar as seguintes orientações: ? Manter o valor de 16 THREADS em sistemas nativo Win32. ? Mantenha THREADS em 200 durante a execução do MSF no Cygwin. ? Em sistemas operacional Unix-like, threads podem ser definido para 256. --------------------Port Scanning Além de executar o Nmap, há uma variedade de scanners de portas que estão disponíveis para nós dentro do Framework. msf> search portscan Para efeitos de comparação, vamos comparar nossos resultados de varredura do Nmap para a porta 80 com um módulo de varredura Metasploit. Primeiro, vamos determinar quais hosts tem a porta 80 aberta, de acordo com o Nmap. ---------------------msf> cat subnet_1.gnmap grep 80/open awk '{print $2}' O Scan Nmap que utilizamos anteriormente foi um scan SYN, então vamos executar a mesma varredura em toda a sub-rede olhando para a porta 80 através de nossa interface eth0 usando o Metasploit. msf>use scanner/portscan/syn -
show options set INTERFACE eth0 set PORTS 80 set RHOSTS 192.168.1.0/24 set THREADS 50 run
Assim, podemos ver que Metasploit's built-in módulos de scanner são mais do que capaz de encontrar sistemas e abrir a porta para nós. É apenas mais uma ferramenta excelente para ter no seu arsenal se acontecer de você estar executando o Metasploit em um sistema sem o Nmap instalado. ----------------------SMB Version Scanning Agora que nós determinamos quais hosts estão disponíveis na rede, podemos tentar determinar quais sistemas operacionais estão rodando. Isso nos ajudará a definir nossos ataques a um alvo de um sistema específico evitando a perda de tempo com aqueles que não estão vulneráveis a um exploit em particular.
Uma vez que existem muitos a porta 445 esteja aberta, scanner/smb/version para Windows está rodando em um está em um host Linux.
sistemas em nossa varredura que vamos utilizar o módulo determinar qual versão do alvo e qual a versão do Samba
- msf auxiliary (version) > set RHOSTS 192.168.1.0/24 - msf auxiliary (version) > set THREADS 50 - msf auxiliary (version) > run Note também que, se você digitar o comando db_hosts agora, as informações recém adquiridas são armazenadas no banco do Metasploit. - msf auxiliary (version) > db_hosts --------------------Idle Scanning O Nmap IPID Idle scanning nos permite utilizar a técnica de stealthy(camuflado)scanning de um alvo, enquanto utiliza o spoofing (falsificação) de endereço IP de outro host na rede. Para este tipo de verificação vamos precisar localizar um host ocioso na rede e utiliza-lo. -------------------------IPID O Metasploit contém o módulo scanner/ip/ipidseq para escanear e olhar para uma máquina que se adapta às exigências. PAREI DE ESCREVER AQUI, + OU - PÁGINA 45 DA APOSTILA DO CURSO COMPLETO DE TESTE DE INVASÃO.