Teste de Intrusão (Tutorial) 2

Teste de Intrusão (Tutorial)

Capitulo 2

Pessoal espero que estejam a gostar supertutorial de penetration-test ou teste de intrusão como queiram, este é o segundo capitulo de um serie de 6 , neste capitulo vou começar por mostrar técnicas de spidering, acabando com scanning onde com muito orgulho mostro como pode utilizar o poderoso nmap para esse serviço.

Ora vamos lá então:

Spidering:

As técnicas de Spidering se utilizam para poder se encontrar toda a informação que nos oferece gratuitamente através das paginas web da empresa. Nos oferece páginas html, aplicativos, arquivos de imagens, documentos, javascripts, applets, etc… Quando realizamos um pentest é preciso tirar toda a informação que se possa extrair de comentários, meta informação de arquivos gráficos ou documentos, etc… Por exemplo os arquivos doc de Microsoft Office não costumam ser limpos, falo na informação de seus criadores que ficas registada no documento antes de ser publicados, esses geralmente nos vão dar rotas de arquivos em máquinas locais e nomes de contas dos usuários nos domínios.
Só por colocar um exemplo. Além disso, quando se está realizando uma descarga completa de um website se procura também aquilo que, aparentemente não está disponível ao publico, mas que é prescindível, como os directórios típicos /cgi-bin, /bin, /imagens, /admin, /privado, etc… e os arquivos prescindíveis, como arquivos de exemplo, configuração etc… Para isso se utilizam ferramentas que se chamam Scanners de Cgi e que, mesmo que em origem rastreavam programas cgi vulneráveis, hoje em dia se usam como rastreadores de arquivos em técnicas de spidering.

Exemplo 1: Documento office descarregado da Universidade das Illes Balears com informação do usuário e a rota do sistema de arquivos de seu criador.

Soa a um certo escândalo no governo britânico com um certo documento sobre as armas de destruição em massa no Iraque que tinha sido modificado?


2

Comentário em um site que delata que foi desenvolvida com Dreamweaver.

3

É uma foto de Artur baixada de um directório que há por aqui na mesma universidade de antes.[http://www.uib.es/depart/dqu/fotos_arturo/]. Já sabemos que dia foi a festa, a camarata e inclusive se pode averiguar a hora do dia que foi tirada, o que parece ser na hora de jantar.

Ferramentas como Teleport Pró permitem-te baixar todos os arquivos que se oferecem publicamente em um site, scaners de cgi como voideye, whisker, cgi-scan ou qualquer outro permitem carregar uma lista de arquivos e directórios a buscar. Como se pode ver na imagem, a voideye se lhe pode configurar o uso de servidores Proxy anônimos para evitar a detecção de quem está realizando o scaneamento.

4

5

Fingerprinting:

Já recolhemos toda a informação que era pública, agora vamos apanhar aquela que também está acessível publicamente mas que a propriamente não é possível de se ver. Isto é, vamos inferir informação a partir de provas que vamos ir realizando a cada um dos serviços e ou servidores. Fácil, não?

Identificação de Sistemas Operativos e/ou Firewalls:

Para identificar os sistemas operativos que correm sobre os servidores ou debaixo dos serviços que queremos testar existem diferentes ferramentas. Todas estas ferramentas se baseiam em jogar ao Quem é Quem? Vocês Lembram aquele jogo no qual se ia perguntando ao invés se tinha bigode ou chapéu? Pois é a mesma ideia. Averiguar um sistema operativo consiste em enviar-lhe diferentes tipo de comandos e ir analisando as respostas. Por exemplo, pensemos em um simples ping. Se enviamos nas tramas TPC/IP valores 1 nos bits de urgência, que não vão ser utilizados pelo sistema operativo, e observarmos os resultados obtidos, pode-se definir que sistema é. Um sistema Windows devolve esses valores sempre a 0, isso é porque quando constrói uma trama TCP/IP de resposta o há desde uma nova trama; no entanto, um sistema Linux constrói a resposta a partir da trama de petição. Isto faz com que se enviarmos 1 e recebemos 0 possamos inferir com uma percentagem alto de sucesso, e que o sistema operativo é um Microsoft Windows. Logicamente o número de provas que se podem fazer são muitas e as diferenças podem existir entre um Microsoft Windows NT 4 Server e um Microsoft Windows NT 4 Server Service Pack 6. Às vezes pode-se afinar e saber exactamente qual a versão do kernel de um sistema Linux e em outras não. Para isso vamos utilizar diferentes ferramentas que já nos ajudam com um amplo conjunto de diferenciação de sistemas operativos.

Nmap:

É um scanner de informação sobre servidores, e, mesmo que sua principal utilidade é a de um scanner de portas tem opções de reconhecimento de sistemas operativos. A opção –O. Você também pode fazer simplesmente um clique na interface gráfica, se você usa o frontend.(. O scaneamento de sistemas operativos que realiza o nmap não só se fica em Windows, Linux, etc.. .mas é capaz de detectar impressoras de rede, postos telefónicos PBX, ou telefones por IP. Para realizar esta detecção conta com um enorme banco de dados para fazer uma detecção entre milhares, repito milhares, de sistemas operativos (Windows Server NT, Windows NT Workstation SP4, Windows NT SP6, todos os sabores de Linux, etc…) Além disso, nas novas versões realiza provas sobre as portas TCP e UDP descobertas e é capaz de tirar conclusões do tipo Nokia Chekpoint redireccionando-se a IIS 6 sobre um Windows Server 2003.

Hping2 (ou hping3):

Esta utilidade [hping] se pode comparar com um ping mas em nível TCP/IP, isto é, podemos, mediante comandos definir a conversação completa com um servidor com um tipo de pacotes enviados. A utilidade nos permite enviar pacotes com os flags que queiramos activados, modificando todos e cada um dos campos de uma mensagem TCP/IP: MTU, TOSSE, Bit de Urgência, flags de SYN, etc… Esta ferramenta vai permitir averiguar o sistema operativo a base de realizar provas. Por sorte o nmap implementa quase todas as técnicas conhecidas para o reconhecimento de sistemas operativos, mas se alguma não estivesse implementada pode-se utilizar o hping2 para implementa-la. Além de reconhecer o sistema operativo também vamos poder utilizá-la para averiguar os algoritmos de geração de números de sequência (úteis em scaneamentos de portas e técnicas de IP-Spoofing), a configuração de um firewall, e inclusive a transmissão de arquivos encapsulados sobre os pacotes que configuremos.

As portas do sistema:

O seguinte passo, o que em um scaneamento rápido se realiza ao mesmo tempo, é a detecção de portas abertos em um sistema. O problema de uma porta estar aberta não é nem mau nem bom. Uma porta se abre para dar serviço. O problema é quando se abre uma porta que conecta com uma aplicação ou serviço que não está seguro ou que realmente o administrador ignora que o tem aberto em uma máquina. Desde o ponto de vista de um teste de intrusão é preciso ver a que serviços se pode chegar.

Detectar uma porta TCP aberta deveria ser tão fácil como estabelecer uma conexão com dito serviço; para isso bastaria estabelecer uma conexão com um simples telnet, que, além disso, nos mostrará a informação na tela que serviço ou aplicação do outro lado da porta está enviando.

6

O problema reside nos alarmes que se activam ou na informação que se deixa nos logs quando se produz o scaneamento, é preciso levar em conta que o número de portas possíveis é de 65536 portas que podem ser TCP ou UDP.

O mais provável é que um firewall deixe de responder a um determinado IP quando tenha-se produzido mais de um número de tentativas de conexão vindo de um determinado ip, ou quando se pediram mais de um número por unidade de tempo, ou quando há uma violação de protocolo (comando não válido que costuma denotar que um serviço está falando com um ser humano atrás de um telnet e que cometeu um erro ao digitar ou no comando), etc….

O objectivo dos métodos de scan é averiguar todos as portas que se encontram oferecendo serviço por TCP/UDP sem levantar alarmes e deixar o menos rastro possível.

Há muitos tipos de scaneamentos, e gostaria de explicá-los todos aqui, mas não tenho espaço e o MMachado matava-me, mas se lhes os vou enumerar para que vocês possam buscar mais informação sobre eles. No final a ideia consiste em enviar pacotes com uma determinada configuração e escutar como reage a equipa scaneada. Um scaneamento não tem porque ser perfeito e às vezes não retornam todas as portas que estão por trás de um firewall em um único tipo de scaneamento. Os mais usados são o scaneamento de SYN, de FIM, de SYN+ACK, de ACK, o scaneamento de NULL, que se realiza com todas as flags apagadas e o de XMAS Tree, que recebe esse nome porque activa todas as bandeiras como se fossem luz numa arvore de natal [E para UDP e Iddle Scanning].

Scan com Nmap:

Nmap, realiza o scan de estabelecimento de conexões (como se fizéssemos um telnet) que se chama TCP connect(), de SYN (ou de conexões meio abertas, já que se envia um pacote SYN a uma porta e se espera a confirmação por parte do cliente sem nunca fechar a conexão), de FIM, de NULL e de XMAS Tree.

Para as portas UDP implementa-se um sistema baseado no envio de mensagens UDP a uma porta de 0 bytes de tamanho. Se se recebe uma mensagem ICMP que diz que é inalcançável então é porque a porta está fechada, pelo contrário se assume que está aberta. Este tipo de scaneamento, como muitos dos anteriores pode ter um alto índice de falsos positivos devido a que pode ter o firewall que proíba todo o tráfego ICMP de saída ou que se tenha perdido a resposta.

Fim do segundo Capitulo…

  1. No trackbacks yet.

Deixe uma resposta

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s

%d blogueiros gostam disto: