A pesquisa de vulnerabilidades de software evoluiu muito nos últimos anos. O pesquisador de vulnerabilidades é o técnico responsável em encontrar falhas no software que podem levar a um mau funcionamento do software, ou ainda a uma possível falha de segurança. A visão geral sobre segurança não se limita apenas a um possível invasor ou acesso não autorizado ao sistema. Segurança de software significa manter o software em seu perfeito funcionamento, ou seja, o funcionamento imaginado pelo desenvolvedor. Para ilustrar tomemos como exemplo Defasagem no software do Cindacta 1 (http://www.midiaindependente.org/pt/blue/2006/11/364354.shtml)
No cenário atual da segurança da informação, infelizmente tentamos proteger a informação não pela raiz do problema, escrevendo programas com qualidade, mas criando outros softwares para proteger um software mal desenvolvido anteriormente. Por exemplo: instalamos um software que tem erros de programação que pode ser explorado por um intruso, então instalamos um firewall que tentará bloquear o trafego de dados entre o software e o acesso não autorizado. Esse tipo de abordagem não tem se mostrado muito eficaz. E se esse programa feito para proteger o software mal desenvolvido também contiver os mesmos erros de programação?
Ferramentas como o metasploit podem ajudar os desenvolvedores de software a produzir software com maior qualidade, do ponto de vista da segurança, na medida que incentiva os programadores a pensarem a respeito de como algumas técnicas de programação levam às falhas de segurança.
O Metasploit framework é um conjunto das melhores plataformas de aprendizagem e investigação para o profissional de segurança ou do hacker ético. Ele possui centenas de exploits, payloads e ferramentas muito avançadas que nos permite testar vulnerabilidades em muitas plataformas, sistemas operacionais e servidores. Este framework deve ser utilizado com muita cautela e somente para fins éticos.
O que é Metasploit Framework?
Como mencionado em seu Website, Metasploit Framework é uma avançada plataforma “Open Source”, concebida especificamente com o objetivo de reforçar e acelerar o desenvolvimento, ensaio e utilização de exploits.
O projeto relacionado a este Framework, de acordo com seus criadores, que nasceu como um jogo, tem mostrado um crescimento espetacular em especial nos últimos tempos (na minha modesta opinião… especificamente a partir da versão 2.2), aspecto que lhe ajudou a conquistar um lugar privilegiado no âmbito do kit de ferramentas de todo profissional relacionado de alguma forma ou de outra com as tecnologias de segurança da informação.
Escrito na maioria das vezes em “Perl” (seu único defeito, de acordo com o parecer do número cada vez maior de amantes de “Pyhton”…) e com vários componentes desenvolvidos em “C ” e “Assembler”, sua portabilidade está assegurada, o que contribui em larga medida para a sua aceitação maciça, porque qualquer que seja a sua escolha de plataforma de uso (Like-Unix, BSD, Mac X, Windows, etc), pode instalá-lo e desfrutar todos os seus poderes em poucos minutos e sem grandes dificuldades.
Um aspecto interessante no que se refere à concessão de licenças para as novas versões do Metasploit Framewok é o fato de que ela é baseada tanto em GPL v2 como um “Perl Artistic License”, permitindo a sua utilização em projetos Open Source assim como em projetos comerciais.
O principal objetivo do MSF é criar um ambiente de pesquisa, desenvolvimento e exploração de vulnerabilidades de software, fornecendo as ferramentas necessárias para o ciclo completo da pesquisa que pode ser divido basicamente em:
– Descoberta da Vulnerabilidade: Onde o pesquisador descobre um erro de programação que pode levar ou não a uma brecha de segurança.
– Análise: Onde o pesquisador analisa a vulnerabilidade para determinar quais as maneiras pelas quais a mesma pode ser explorada. Perguntas-chave são feitas nessa fase do desenvolvimento, como por exemplo: De qual maneira a vulnerabilidade pode ser explorada? Localmente ou remotamente? Entre outras dezenas mais.
– Desenvolvimento do exploit: Depois de respondidas as perguntas da fase de análise, começa o desenvolvimento da exploração em si, como prova da existência real da vulnerabilidade. Técnicas de engenharia reversa, programação, debugger, etc., são usadas nessa fase.
– Teste do exploit: Nessa fase o exploit é testado em diferentes ambientes e variáveis, service packs, patchs, etc. O exploit em si é a prova definitiva de que a vulnerabilidade pode ser explorada.
Uma excelente alternativa
Desde a consolidação do Metasploit Framework, a comparação com produtos comerciais com características semelhantes é inevitável. Projetos CANVAS da Immunity Sec ou CORE IMPACT da Core Security Technology têm uma grande clientela, que vai desde grandes clientes corporativos, que fazem uso destes produtos na hora de fazerem suas próprias tentativas de invasão, até centenas de consultores de segurança independentes, que utilizam-nos como uma ferramenta para vender este serviço a terceiros.
Sem dúvida, a principal diferença entre Metasploit Framework e este tipo de produto é o “foco”. Embora os produtos comerciais precisem fornecer constantemente aos seus clientes os mais recentes exploits acompanhados de interfaces gráficas bonitas e intuitivas, o Metasploit Framework é projetado para facilitar a investigação e experimentação de novas tecnologias.
Este ponto, entre outros, faz com que exista mercado para todos. Os pesquisadores, estudantes, curiosos e independentes podem obter, sem qualquer custo, o Metasploit, modificar, personalizar, utilizá-lo para seu trabalho e ver como ele funciona internamente para aprender mais, enquanto que, por outro lado, grandes empresas que exigem uma excelente solução corporativa, e podem arcar com o custo, possuem certamente o privilégio da qualidade dos produtos anteriormente mencionados.
Para começar: Instalando Metasploit Framework
Bem, você já conhece um pouco mais o Metasploit Framework, para ouvir o resto, você deve instalá-lo e fazer suas próprias experiências. Então o que está esperando, mão à obra!
Em primeiro lugar, pois como comentado nos parágrafos anteriores, Metasploit Framework pode ser instalado tanto no Unix/Linux quanto no Windows, temos que decidir a plataforma de utilização.
Aqueles que se sentem confortáveis com o Windows, têm o prazer de saber que a instalação do Metasploit não tem grandes segredos. Para esta última versão, os desenvolvedores do Metasploit surpreendem-nos com um simpático assistente, que irá guiar-nos através da implementação de um ambiente personalizado Cygwin, seguida pela instalação e configuração do próprio Framework. Assim, apenas o download e a execução de um único arquivo chamado “framework-3.0.exe” nos permitirá, em apenas alguns momentos, o acesso ao console Metasploit e desfrutar de todos as suas ferramentas.
Se, pelo contrário, a sua decisão é pelo Unix/Linux, você pode fazer o download da versão mais recente para esta plataforma, comprimida e de denominação “framework-3.0.tar.gz”. Após ter feito isso, precisa apenas extrair o conteúdo do arquivo tar, alterar diretórios e executar a interface do Metasploit com a qual se sentir mais à vontade.
Embora seja verdade que com o que aconteceu até agora é suficiente para se familiarizar com o produto, se sua intenção é a de obter todo o proveito dessa ferramenta, provavelmente quer ter a certeza que tenha instalado o módulo Perl chamado “Net:: SSLeay” e, se não for esse o caso, proceda à sua instalação aproveitando que o mesmo instala-se com o Metasploit, entre os arquivos organizados no subdiretório “extras” de seu “path” de instalação.
Embora as medidas mencionadas nos parágrafos anteriores funcionem na maioria dos casos, será bom saber que dependendo da distribuição Linux que você está usando, provavelmente vai contar com alguma facilidade adicional ao instalar Metasploit-Framework com o seu gerenciador de pacotes preferido.
Nos próximos artigos, para quem ficou com dúvida na instalação do framework, vamos colocar um passo a passo usando o Ubuntu como exemplo.
Um olhar sobre o Framework
Perfeito! Se você chegou até aqui, provavelmente você está ansioso para testar o funcionamento de seu novo ambiente de trabalho. Antes de começar, precisamos saber que o Metasploit Framework fornece-nos basicamente três diferentes interfaces, no momento de interagir com os mesmos:
Command Line Interface: Esta é a forma correta para interagir com o Framework, quando da automatização de testes de seqüências de exploits ou, simplesmente, nos casos em que não precisar de uma interface interativa. O utilitário é executado através do comando “msfcli”.
Console Interface: É provável que seja esta a interface mais comumente utilizada, devido à sua utilização intuitiva e interativa, à velocidade do seu funcionamento e à sua flexibilidade. Sua principal característica é a de proporcionar um Metasploit pronto, a partir do qual se pode interagir com cada aspecto do Framework. Se você quiser usar essa interface, temos que executar o comando “msfconsole”.
Interface web: Embora tenha muitos detratores, a interface web Metasploit pode ser extremamente útil em certas circunstâncias especiais, tais como apresentações públicas ou de trabalho em equipe. Para efeito, esta versão web do Metasploit inclui seu próprio servidor http, a fim de nos dar a capacidade de acesso via browser para praticamente as mesmas características que sua versão console.