Coletando dados para um teste de invasão
16/06/2015No post anterior vimos uma breve introdução sobre testes de invasão, agora veremos com um pouco mais de detalhes a etapa de coleta de dados.
O objetivo desta fase é conseguir o máximo possível de informações relevantes sobre o alvo. O sysadmin costuma escrever em listas sobre como garantir a instalação segura do PostgreSQL ? O CEO fala demais no Twitter sobre as tecnologias utilizadas na aplicação principal da empresa ? O sucesso de um teste de invasão depende muito do resultado da fase de coleta de informações.
Os dados coletadas nesta fase serão utilizadas na etapa de verificação de vulnerabilidades, veremos agora algumas ferramentas para obter iformações interessantes.
Coleta de informações públicas
Uma empresa chamada Netcraft faz o log do uptime e consultas sobre os softwares utilizados em empresas de web hosting e servidores web, as informações são disponibilizadas de forma pública.
Ao fazermos uma consulta à procura de www.infoslack.com
podemos notar
que o domínio foi registrado em name.com
e tem um endereço IP
66.228.54.103
de uma VPS na Linode
, além disso vemos que o servidor
está executando Linux com um web server Nginx
:
De posse dessas informações, durante um teste de invasão já poderiamos
descartar vulnerabilidades relacionadas aos web servers Apache
e
Microsoft IIS
por exemplo. Ou ainda poderiamos tentar usar a engenharia
social enviando um e-mail para o administrador fazendo com que pareça ter
sido enviado pela Name.com
.
Em muitos casos estas mesmas informações podem ser coletadas com os
comandos whois
, nslookup
e host
porém existem casos onde é possível
ocultar os detalhes durante o registro do domínio. Um outro caso
interessante é quando o alvo está fazendo uso de um serviço de CDN como
o CloudFlare, por exemplo, toda informação coletada com o whois
neste caso será referente ao CDN e não ao alvo em questão. Quando isso
acontece, é comum conseguir ver o histórico de mudanças no Netcraft
e
obter o endereço IP real do servidor do alvo antes de ter feito a
mudança para o uso do CDN:
Existe uma outra alternativa para descobrir informações de um domínio,
um scanner muito leve chamado Fierce, escrito em Perl
e desenvolvido
por RSnake. Basicamente por meio de brute-force e outras técnicas, o
scanner tenta descobrir detalhes do alvo como o IP do host, mesmo que
este seja camuflado com um CDN:
root@labs:~# perl fierce.pl -dns dominioalvo.com.br
DNS Servers for dominioalvo.com.br:
gina.ns.cloudflare.com
doug.ns.cloudflare.com
Trying zone transfer first...
Testing gina.ns.cloudflare.com
Request timed out or transfer not allowed.
Testing doug.ns.cloudflare.com
Request timed out or transfer not allowed.
Unsuccessful in zone transfer (it was worth a shot)
Okay, trying the good old fashioned way... brute force
Checking for wildcard DNS...
** Found app.dominioalvo.com.br at 54.321.12.34.
** High probability of wildcard DNS.
Now performing 2280 test(s)...
104.28.14.30 www.dominioalvo.com.br
104.28.15.30 www.dominioalvo.com.br
Done with Fierce scan: http://ha.ckers.org/fierce/
Found 2 entries.
Have a nice day.
Perceba que na linha 17
o scanner encontrou uma resposta diferente para
o subdomínio app
identificando o ip 54.321.12.34
que não tem
relacionamento com o CloudFlare exibido na transferência de zona do
domínio.
Finalizando
Além das ferramentas abordadas vale conferir outras como theHarvester usada para coletar emails referentes a um domínio, ou ainda ferramentas para mineração de dados como é o caso do Maltego.
Fique atento e não deixe de acompanhar o blog, no próximo post veremos mais detalhes sobre coleta de informações.
Happy Hacking ;)