DIA#15-Ethical Hacking Tools (Metasploit- Bases de Dados)

     Continuo outra vez com o tutorial da Offensive Security sobre metasploit, hoje vou dedicar-me às Bases de Dados no Metasploit.

    Quando se faz penetration testing é frequentemente difícil lembrar tudo o que foi feito, é para isto que as bases de dados podem ser usadas no Metasploit. Com as bases de dados é possível aceder facilmente à informação de scans, sendo possível receber ou enviar scans para ferramentas third party. Para além disso é possível configurar as opções dos módulos bastante rapidamente. Tudo isto faz com que os resultados fiquem mais organizados e fáceis de ver.
    Hoje vou focar-me em como fazer o setup da minha Base de Dados no Metasploit e como a usar.

Setup da Base de Dados no Metasploit     

    Para se usar a base de dados é necessário antes de mais nada, mesmo antes de correr a msfconsole, "ligar" o server do Postgresql (sistema de bases de dados open source, que usa e estende  a linguagem SQL combinado com features que escalam e guardam seguramente data workloads). 
    Com o intuito de ligar o server Postgresql usa-se o comando "systemctl start postgresql", depois de iniciar o Postgresql é necessário criar e inicializar a base de dados do MSF através do comando "msfdb init". 
    Finalmente, de modo a verificar que o Metasploit está conectado com a base de dados, inicializa-se a msfconsole e usa-se o comando "db_status".

Uso de Workspaces no Metasploit

    Através do uso de workspaces é possível segmentar os diferentes scans de diferentes locais, netwoks  e subnets, etc na base de dados, de modo a manter o trbalho realizado organizado.
    Com o uso do comando "workspace" dentro da msfconsole, podem-se ver que workspaces existentes. O workspace correntemente seleccionado tem um asterisco. Para mudar o workspace seleccionado "workspace <nome do workspace>".
    Para adicionar workspaces usa-se "workspace -a <nome do workspace>" e para eliminar workspaces usa-se "workspace -d <nome do workspace>".
    Como sempre através do uso do comando "workspace -h", podem-se observar todas as possíveis utilizações do workspace.
    Com o comando "help" vai-se ver os possíveis comandos relativos a bases de dados, nessa lista aparece o comando "db_nmap", que se usa para fazer nmap e guardar o output diretamente na base de dados, existem bastantes opções para este comando, sendo possivel ver cada uma com "db_nmap -h", no meu caso usei "db_nmap -A <IP>", para permitir deteção de OS e versão, script scanning e traceroute(rastreia a rota de um packet). Após fazer o db_nmap utiliza-se "hosts" para ter a certeza de que ficou guardado o scan do host especificado.
    De modo a exportar a data para fora do Metasploit usa-se "db_export -f <tipo de output> -a <directoria e nome do ficheiro>" (não é necessário colocar o "-a").
    Para além se ser usado para confirmar a presença de data de um host especifico o comando "hosts" pode ser usado para outras coisas, entre as quais:
  • "hosts -h": como sempre, mostra as opções de utilização do comando;
  • "hosts -c <col1,col2>": é usado para mostrar colunas especificas, por exemplo, com o uso do comando "hosts -c address,os_flavor" mostra-se apenas as colunas do IP e do OS;
  • "hosts -S <o que se quer procurar>": é usado para procurar por algo especifico nos hosts disponiveis, por exemplo, com "hosts -c address,os_flavor -S Linux" mostra-se apenas os hosts com OS linux, com as duas colunas mencionadas anteriormente. Isto é bastante util uma vez que se pode, por exemplo, depois de seleccionar o módulo de "tcp", usar o comando"hosts -c address,os_flavor -S Linux -R" em que "-R" é usado para colocar o RHost como o IP do resultado obtido da procura (podem existir mais que um resultado de pesquisa). Consequentemente pode-se correr o scan no target.
    Outra maneira de pesquisar a base de dados é através do comando "services", que tem os comandos "-h","-c","-S", entre outros iguais ao comando "hosts".
    Tanto o comando "hosts" como o "services" permitem guardar os resultados obtidos para um ficheiro do formato CSV (Comma Separated Value), isto é feito com o uso do "hosts -o <diretoria e nome_do_ficheiro.csv>" para os hosts e "services -o <diretoria e nome_do_ficheiro.csv>" para os services.
    Com o comando "creds" pode-se gerir credenciais encontradas e usadas para os targets na base de dados, sem o uso de qualquer opção irá ser mostrado as credencias guardadas correntemente.
    Depois de entrar num sistema, um objetivo poderá ser ir buscar as hash dumps (por exemplo as passwords nunca são passadas em plaintext, normalmente são passadas por funções hash que mapeiam os dados para um comprimento fixo, como que encriptando o dados, se tiver o valor da hash é fácil de descodificar, mas se não o tiver é difícil reconstruir a data), caso a hash dump funcione, será automaticamente guardada na base de dados e através do uso de "loot" é possível observar as dumps. 
     
          

PS. 
  

Comentários

Enviar um comentário

Mensagens populares deste blogue

DIA#36-OverTheWire-Bandit (LVL 2)

DIA#45-OverTheWire-Bandit (LVL 11)

DIA#52-OverTheWire-Bandit (LVL 18)