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 # para TCP
ou nmap -sU 192.168.0.0/24 -p 1-150 # para UDP
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.