conceitos básicos de seguranca
130 pág.

conceitos básicos de seguranca


DisciplinaOrganização de Computadores4.784 materiais83.211 seguidores
Pré-visualização43 páginas
Devido ao princípio de negociação de conexão do TCP, o three-way handshake, 
para cada tentativa de conexão em uma porta aberta, o host que está sendo testado irá responder. Quando 
isto ocorre, sabemos então que a determinada porta está aberta. 
 
 Na maioria das implementações de pilhas TCP, mesmo que uma determinada porta não esteja aberta, 
geralmente o host responderá com uma recusa de conexão. Neste caso, sabemos que o host existe, está 
online, que a porta não está no ar, mas que provavelmente, não existe um firewall entre você e o host. 
 
 Chegamos a esta conclusão porque existe uma diferença entre \u201cconnection refused\u201d, e 
\u201cconnection time out\u201d. Quando uma conexão é recusada, o host envia um pacote de volta, determinando o 
estado da porta (fechada). Quando existe um firewall corretamente configurado, ele simplesmente descarta o 
pacote de requisição de conexão do portscanner, e o mesmo assumirá que a porta está fechada por time out 
(o pacote foi enviado, mas nenhuma resposta foi recebida, seja qual for). 
 
 Portanto, quando um hacker usa um portscanner e recebe \u201cconnection refused\u201d como resposta, ele 
sabe que potencialmente, nenhum firewall existe. Quando um firewall está presente, e corretamente 
configurado, nenhum pacote de resposta será enviado, não importa de que tipo. 
 
 Isto implica em 2 resultados: se o firewall estiver presente, o portscan demorará minutos, às vezes, 
dezenas de minutos. Quando o host sendo testado responde com \u201cconnection refused\u201d, o portscan demora 
poucos segundos. 
 
 Mais à frente, em \u201cIntrodução ao Conceito de Filtragem de Pacotes\u201d, veremos que um firewall pode 
simular a rejeição de um pacote, ou o descarte do mesmo. 
 
 
Romulo Moacyr Cholewa \u2013 http://www.rmc.eti.br, agosto de 2001. Vide \u201cDistribuição / Cópia\u201d neste material 
para maiores detalhes. 
 
Romulo Moacyr Cholewa \u2013 http://www.rmc.eti.br, agosto de 2001. Vide \u201cDistribuição / Cópia\u201d neste material 
para maiores detalhes. 
 Existem diversos portscanners disponíveis na Internet. A maioria dos bons portscanners está 
disponível para a plataforma UNIX. Entretanto, existem opções interessantes para Windows, apesar de não 
tão poderosas (vide \u201cnmap\u201d, em \u201cTécnicas de Invasão\u201d). 
 
 Entretanto, devido à natureza de uma transferência de dados UDP, a maioria dos scanners usam TCP. 
Os que possuem a opção UDP não obtêm resultado confiável, pois uma porta UDP pode estar aberta, mas não 
enviar resposta caso a requisição não seja exata. 
 
 
LANGuard Network Scanner 
http://www.gfi.com/lanselm/lanselmdownloads.htm 
 
 
 
 O LANGuard Network Scanner é uma ferramenta poderosa para Windows. Ele reúne em um único 
utilitário um service fingerprinter, e um portscanner eficiente. Basta entrar com o endereço IP inicial, e o 
endereço IP final. Ele irá consultar cada um dos endereços no intervalo, e listar os serviços existentes. Além 
disso, captura as informações de cada porta. 
Romulo Moacyr Cholewa \u2013 http://www.rmc.eti.br, agosto de 2001. Vide \u201cDistribuição / Cópia\u201d neste material 
para maiores detalhes. 
 
Romulo Moacyr Cholewa \u2013 http://www.rmc.eti.br, agosto de 2001. Vide \u201cDistribuição / Cópia\u201d neste material 
para maiores detalhes. 
 
LPS \u2013 Local Port Scanner 
http://www.jpsoft.dk/products.php 
 
Apesar de ser direcionado para scanear a máquina localmente, nada impede que seja informado 
qualquer endereço IP válido. É bem eficiente, e permite diversos modos de scan, como stealth, quick e full. 
Enquanto não sai uma compilação decente do NMAP para Windows, o LPS faz seu trabalho, mas costuma ser 
lento. 
 
 
Services Fingerprinting 
 
 
 O service fingerprinting é uma técnica que consiste em determinar que serviço está rodando em uma 
determinada porta. Uma vez descoberto o serviço, determinar sua versão e revisão, se possível, e listar 
também vulnerabilidades. 
 
 O portscanner só faz parte do trabalho. É por isso que o service fingerprinting é considerado uma 
técnica, e não um programa ou utilitário (apesar de existirem programas que automatizam o processo, 
deixando a coisa mais fácil). 
 
 Se formos analisar de forma prática, veremos que o portscanner apenas detecta a presença de uma 
porta aberta, mas não identifica que serviço está rodando naquela porta. Um exemplo clássico disso são 
servidores Web (http) ou FTP rodando em portas diferentes do padrão, o que é perfeitamente possível e fácil 
de se fazer, e desejável quando se quer esconder este serviço. É muito comum vermos na Internet servidores 
Web rodando em portas como 8000, 8080, ou 8888, diferentes da porta padrão (80), ou servidores FTP 
rodando em portas como 2020, 2121 ou 2021 (diferentes do padrão 21). 
 
Romulo Moacyr Cholewa \u2013 http://www.rmc.eti.br, agosto de 2001. Vide \u201cDistribuição / Cópia\u201d neste material 
para maiores detalhes. 
 
Romulo Moacyr Cholewa \u2013 http://www.rmc.eti.br, agosto de 2001. Vide \u201cDistribuição / Cópia\u201d neste material 
para maiores detalhes. 
 Além de tentar determinar o tipo de serviço presente em uma determinada porta, a técnica consiste 
em identificar qual o desenvolvedor / produtor do programa que disponibiliza serviço. Imagine que existem 
diversos servidores Web disponíveis no mercado, como Apache, Internet Information Server, Netscape 
Enterprise Server, entre outros, assim como dezenas de servidores FTP, como Internet Information Server, 
Serv-U, WFTPD, e etc. 
 Alguns dos programas usados para desenvolver esta técnica, além de classificarem o que está 
rodando em uma determinada porta, analisam sua versão e já classificam quais são as vulnerabilidades 
conhecidas do mesmo. 
 Todos os programas que ajudam nesta técnica utilizam padrões de resposta enviados durante uma 
conexão para tentar \u201cadivinhar\u201d qual o serviço que está em execução em uma determinada porta. Portanto, 
são sujeitos a falhas, e a melhor forma de analisar e utilizar a técnica é através de experiência, e 
manualmente. 
 Imagine que uma das formas mais eficientes de service fingerprinting é usar o telnet. Você estabelece 
uma conexão TCP com um determinado host, especificando uma porta, digita alguns comandos e descobre, 
na maioria dos casos, qual o programa que está rodando. 
 
Exemplo 1: Servidor Web. 
 
 
 Um simples comando como \u201ctelnet endereço_ip 80\u201d, e depois, \u201cget ../..\u201d (requisição inválida) nos 
revelou MUITA coisa. Sabemos agora que o servidor roda o Internet Information Server versão 5.0 (presente 
apenas em computadores Windows 2000). Descobriu-se com um comando simples, 2 informações primordiais. 
 
Exemplo 2: Servidor FTP. 
 
Romulo Moacyr Cholewa \u2013 http://www.rmc.eti.br, agosto de 2001. Vide \u201cDistribuição / Cópia\u201d neste material 
para maiores detalhes. 
 
Romulo Moacyr Cholewa \u2013 http://www.rmc.eti.br, agosto de 2001. Vide \u201cDistribuição / Cópia\u201d neste material 
para maiores detalhes. 
 
 O comando \u201ctelnet endereço_ip 21\u201d estabeleceu uma conexão com a porta 21 do servidor. Como 
podemos ver na imagem, ele já se identificou como um Windows NT 5.0 (Windows 2000). Através dos 
comandos \u201cuser\u201d e \u201cpass\u201d foi efetuado login como usuário anônimo. Após o login, o comando \u201cSYST\u201d nos 
devolveu novamente a versão do sistema. 
 
 E toda ferramenta que foi necessária: o telnet do Windows. 
 No tópico \u201cAutomatização do Estudo de vulnerabilidades Conhecidas\u201d ainda neste capítulo, veremos 
algumas das ferramentas básicas para service fingerprinting. 
 
 
Sniffing 
 
 O sniffing é uma técnica bastante antiga, que explora uma vulnerabilidade de qualquer rede que 
possua tráfego compartilhado. Mais comum e simples de realizar em redes Ethernet, consiste em programar a 
interface de rede do computador para escutar todo e qualquer pacote de rede que por ela trafegue, 
independente do destinatário. Por padrão, as placas de rede somente retiram da rede aqueles pacotes 
endereçados fisicamente para si. Porém, você pode colocar a placa em modo \u201cpromíscuo\u201d, que fará