Maltego: enumerando redes - Blog Redbelt
Um dos passos mais importantes para um Pentest bem sucedido é a fase de coleta de informações do alvo, esta fase é conhecida como: Footprinting (ou Fingerprinting) e Profiling. É possível também utilizar
Dorks (pesquisas avançadas) pelo motor de busca Google.
Utilizar uma boa ferramenta de enumeração, assim como a técnica relacionada, são demasiadamente muito valiosas e podem economizar muito tempo nos esforços subsequentes do ataque em si. Uma abordagem ou metodologias corretas devem ser seguidos à risca, para que se possa obter resultados efetivos e satisfatórios.
Utilizando a ferramenta Maltego CE (Community Edition), seu fabricante é a Paterva, na versão Community Edition por ser uma versão gratuita do mesmo, porém com algumas limitações de uso. O mesmo pode ser adquirido de forma comercial pagando pela sua licença de uso, e consequentemente você poderá utilizar todos os recursos disponíveis na ferramenta.
Esta ferramenta é dependente do JAVA (JRE) para funcionar.
Neste artigo irei utilizar a versão para Linux, se você usa Windows ou Mac também tem versão para esses sistemas.
Primeiramente entre no site: https://www.paterva.com/web7/downloads.php e baixe a versão referente ao sistema de uso, no meu caso estarei baixando com a extensão .deb, serve tanto para Linux Ubuntu quanto para Linux Debian. Abaixo digite os seguintes comandos para fazer a instalação da ferramenta:
user@user:~$ sudo dpkg -i maltego_4.1.6.11045.deb
Para ter um ambiente controlado, criei um laboratório para executar meus testes, utilizei o S.O ParrotOS uma distro voltada para Pentest. A máquina virtual tem 4GB de memória RAM e está rodando num host de 32GB, fica a seu critério a quantidade de memória que vai utilizar, de acordo com o total de memória que você possui fisicamente no host.
Há alguns conceitos iniciais que precisam ser apresentados primeiro: Entities, Transforms e Machines.
Para entender melhor explicarei rapidamente antes de iniciar suas aventuras.
Entities: são objetos com os quais você interage. Você inicia o trabalho por eles, escolhendo um ou mais. Alguns exemplos são: domínio Internet, endereço de e-mail, registro MX;
Transforms: são operações (ou métodos) que podem ocorrer com os objetos. Eles executam tarefas e constroem gráficos. Alguns exemplos são: resolver host para endereço IP, encontrar a pessoa responsável por um endereço de e-mail ou obter mais informações sobre o servidor de correio eletrônico;
Machines: são conjuntos (grupos) de transforms que automatizam algumas tarefas repetitivas, como consultas recursivas. Existem algumas entities que não suportam machines.
Poderíamos iniciar os trabalhos com qualquer domínio, mas escolhi testar a ferramenta no website do Acunetix Vuln Web. Então, vejamos o que conseguimos encontrar.
A tela apresentada quanto se carrega o Maltego pela primeira vez é algo parecido com a imagem a seguir.
Tela Inicial do Maltego
No lado esquerdo da tela, há um quadro com os ícones de redes sociais da Paterva e, do lado direito, é possível encontrar todos os transforms disponíveis para poderem ser instalados a gosto. O Paterva CTAS é o único que já vem embarcado no Maltego CE, mas também é possível instalar outros. A versão Community do Maltego permite instalar todos os transforms, porém alguns são restritos para o uso comercial da ferramenta. Para estar utilizando o Maltego basta somente se cadastrar de forma gratuita no site da Paterva.
Inicie seu trabalho com um gráfico em branco. Para fazer isto, clique no ícone com sinal de + no canto superior esquerdo. Uma nova janela com o título "New Graph (1)" será mostrado.
Tela com gráfico em branco
Como vamos verificar o site do Acunetix, a entity correta é "Website". Para usá-la, selecione e arraste até a janela de gráfico em branco. Por default, quase toda entity que você usa vem com um valor já preenchido, no caso "www.paterva.com", para modificá-lo clique duas vezes sobre o mesmo e digite o valor que você desejar.
Clique com o botão direito sobre a Entity e você verá uma lista de transforms. A partir daqui, já é possível rodar todos os transforms ou escolhê-los individualmente, vai de cada necessidade ou gosto.
Vamos iniciar o processo, escolha "resolve to IP" clicando nas duas setas correspondentes. Isto resolverá o endereço Internet para um IP, como resultado, você verá algo como uma interface de rede:
Exemplo de uma interface de rede
Isto poderia ser feito também com o comando "dig" ou "nslookup" de forma manual. Agora vamos adicionar uma outra entity para buscar informações do domínio em si, para fazer isso selecione um ícone do seu lado esquerdo correspondente a um globo, clique com o botão direito e escolha "All Transforms".
Sites a partir de testphp.vulnweb.com
Web site teste Acunetix
Observe que há alguns sites externos e também alguns internos, relacionados ao site de test do Acunetix. Pode seguir adiante e utilizar mais transforms, assim ir deixando as suas pesquisas ainda mais complexas e com um maior número de informações sobre o alvo.
Informações sobre o alvo
Agora você tem uma quantidade razoavelmente grande de informações a respeito do alvo, lembrando que todas essas informações são públicas, ou seja, você está fazendo uma coleta indireta no alvo sem interferir no mesmo. Assim mantendo-se "anônimo e indetectável" pelos mecanismos de proteções que venha ter no site ou gerar menos barulho, impedindo ser pego por logs e entre outros.
Podemos notar que capturamos e-mails para poder no futuro executar algum ataque de Phishing ou qualquer outro ataque relacionado a engenharia social.
Temos alguns telefones do qual podemos nos passar por funcionários da empresa ou empresas que hospeda a mesma. Com base nessas informações você pode utilizar a sua criatividade para seguir em frente com seu ataque, lembrando que essa é somente uma pequena parcela do que se pode fazer com essa análise inicial de informações (Footprinting), por isso essa é uma das fases ou se não a mais importante de um processo de Pentest.
Teste de Machines
Uma outra possibilidade de trabalhar com o Maltego é utilizando machines. O Maltego possui um conjunto bem interessante de machines e cada uma delas para cada caso ou necessidade.
Existe a possibilidade de você também criar a sua própria machine, combinando uma série de transforms embarcados ou seu próprio código. Tudo isso pode ser gerenciado pelo botão "Manage Machines", mas não se pode alterar nada nos códigos embarcados. Você também pode rodar uma machine em um gráfico novo simplesmente clicando no botão correspondente a barra de ferramentas mais à esquerda, localizado no canto direito desta barra.
Menu Manage Machines
A primeira machine disponível é Company Stalker. Quando você a executa, receberá uma lista de endereços de e-mails do domínio desejado. Ao testar o endereço testphp.vulnweb.com, o mesmo não retornou informações referente aos e-mails, então testei com o domínio sans.org.
Caso você tenha tido sucesso o mesmo irá chegar em um resultado parecido com este:
Resultado com a lista de e-mails
Há outras machines chamadas de "Footprints", que você também pode estar utilizando para ir mais a fundo nas suas pesquisas. O objetivo é sempre ir em níveis cada vez mais profundos (1, 2, 3 e XXL).
O último é mais complexo, ele elimina o domínio para encontrar toda informação possível que possa ajudar em sua análise posterior. Na versão comercial do Maltego o processo pode demorar um pouco, enquanto isso você pode ir fazendo outra coisa e deixar ele trabalhando.
Também há algumas machines do tipo Twitter (duas escavadoras e uma monitora) e uma última para encontrar possíveis endereços de e-mail de alguém, dado um nome completo. Para isso é preciso estar configurando o mesmo com a conta do Twitter.
Transforms Externos
Você também pode utilizar transforms externos para melhorar ainda mais as suas pesquisas, um exemplo de transform externo é o do Shodan.
Para quem não conhece o Shodan, é conhecido como o Google dos Hackers, porém é preciso estar criando uma conta no site da Shodan, pois o transform irá lhe solicitar uma chave de API, para fazer a integração.
Solicitação da API do Shodan
O Maltego é uma ferramenta fenomenal para os propósitos de enumeração, descoberta e footprinting, o mesmo executa um trabalho excelente economizando algumas pesquisas avançadas no Google com a utilização de Dorks avançadas.
Porém não podemos deixar também as buscas do Google de lado e nos limitarmos somente na ferramenta em si.
Com apenas algumas pesquisas e sem fazer muito esforço, chegamos a informações muito relevantes para um atacante.
Mais uma vez vale lembrar que as informações são de domínio público e são utilizadas pelo Maltego, ou seja, ele mantém essas informações em sua base de dados.
Você também pode estar gerando um relatório final para estar anexando o mesmo a seu trabalho de pentest, porém só a versão paga da ferramenta permite você exportar o trabalho com outras extensões, mas nada que um bom print não resolva (rs).
Se caso estiver interessado na versão comercial do mesmo pode estar entrando no site e verificando.
Chegamos ao final de mais um artigo, foi um pouco cansativo, porém gradativo. Para perguntas, críticas e sugestões podem entrar em contato conosco e até uma próxima.