O Nmap (Network Mapper) é uma ferramenta para exploração de rede e auditoria de segurança. Foi desenvolvida para escanear rapidamente redes amplas e também funciona contra hosts individuais.
O Nmap utiliza pacotes IP em estado bruto para determinar quais hosts estão disponíveis na rede, quais serviços os hosts oferecem, quais sistemas operacionais estão executando e dezenas de outras características. Uma grande habilidade do Nmap é de criar pacotes IP do nada e enviá-los utilizando métodos únicos para realizar os diferentes tipos de escaneamentos.
Embora o Nmap tente produzir resultados precisos, todas as deduções são baseadas em pacotes devolvidos pelas máquinas-alvo, ou firewalls na frente delas. Tais hosts podem ser não-confiáveis e enviar respostas com o propósito de confundir ou enganar o Nmap. Muito mais comum são os hosts não de acordo com a RFC, que não respondem como deveriam às sondagens do Nmap.
Escaneamento de rede é o processo para descobrir hosts ativos na rede e informações sobre os hosts, como sistema operacional, portas abertas, serviços e aplicações.
O escaneamento de rede engloba quatro técnicas básicas:
1) Mapeamento de rede - envia mensagem para um host para gerar uma resposta se o host estiver ativo;
2) Escaneamento de porta - envia mensagem para uma porta para determinar se está ativa;
3) Detecção de serviço - envia uma mensagem específica para uma porta ativa para gerar uma resposta com o tipo e versão do serviço;
4) Detecção de S.O. - envia uma mensagem específica para um host ativo para gerar uma resposta com o tipo do sistema operacional.
Uma amostra de scan do Nmap:
# nmap -A -T4 scanme.nmap.org
Starting nmap ( http://insecure.org/nmap/ )
Interesting ports on scanme.nmap.org (205.217.153.62):
(The 1663 ports scanned but not shown below are in state: filtered)
PORT STATE SERVICE VERSION
22/tcp open ssh OpenSSH 3.9p1 (protocol 1.99)
53/tcp open domain
70/tcp closed gopher
80/tcp open http Apache httpd 2.0.52 ((Fedora))
113/tcp closed auth
Device type: general purpose
Running: Linux 2.4.X|2.5.X|2.6.X
OS details: Linux 2.4.7 - 2.6.11, Linux 2.6.0 - 2.6.11
Uptime 33.908 days (since Thu Jul 21 03:38:03 2005)
A maioria dos tipos de scan está disponível apenas para usuários privilegiados. Pois o Nmap envia e recebe pacotes em estado bruto, o que requer acesso de root em sistemas Linux.
Sinopse para linha de comando do Nmap:
nmap [Tipo]... [Opções]... Alvo
Tudo na linha de comando do Nmap que não for uma opção é tratado como uma especificação de um host-alvo. O procedimento básico é especificar como alvo um endereço IP ou um nome de host para ser escaneado. É possível escanear uma rede inteira de hosts adjacentes, para isso o Nmap suporta o estilo de endereçamento CIDR.
Para escanear todos os IPs de uma máscara de rede, acrescenta-se /númerodebits em um endereço ou hostname. Por exemplo, 192.168.10.0/24 escanearia os 256 hosts entre 192.168.10.0 e 192.168.10.255, inclusive. Pode-se especificar uma lista de números separada por vírgulas ou faixa de números para cada octeto. Por exemplo, 192.168.0-255.1-254 irá pular todos os endereços na faixa que terminarem com .0 ou .255.
O Nmap aceita múltiplas especificações de host na linha de comando, e elas não precisam ser do mesmo tipo. Por exemplo, 'nmap scanme.nmap.org 192.168.0.0/16 10.0.0,1,3-7.0-255'.
As seguintes opções também estão disponíveis para controlar a seleção de alvos:
-iL arquivo Lê a especificação de alvos à partir de um arquivo
de entrada. Cada entrada deve ser separada por
espaços em branco, tabulações ou quebra de linhas.
--exclude host1,host2,... Especifica uma lista de alvos, separados por vírgula,
a serem excluídos do scan mesmo que façam parte da
faixa de rede especificada.
Um dos primeiros passos em qualquer missão de reconhecimento de uma rede é reduzir um conjunto de faixas de endereços IP, em uma lista de hosts ativos e interessantes.
-sP Esta opção diz ao Nmap para somente executar um scan usando o ping, e
então mostrar os hosts disponíveis que responderam ao scan.
-sL O scan listagem é uma forma de descoberta de hosts que simplesmente lista
cada host da rede especificada, sem enviar nenhum pacote aos hosts-alvos.
Apenas faz a resolução de DNS reverso dos hosts para descobrir seus nomes.
-P0 Esta opção pula completamente o estágio de descoberta do Nmap (sem ping).
Faz com que o Nmap teste as funções de escaneamento solicitadas contra
todos os endereços IP alvos especificados, como se cada alvo IP estivesse
ativo.
-n Não faz uma resolução DNS reversa nos endereços IP ativos que encontrar.
-PS portas Esta opção envia um pacote TCP vazio com a flag SYN marcada.
A flag SYN sugere aos sistemas remotos que você está tentando
estabelecer uma comunicação.
-PA portas Faz o ping usando TCP ACK. É muito similar ao ping usando SYN.
-PU portas Faz o ping usando UDP, que envia um pacote UDP vazio para as portas
informadas.
A função principal do Nmap é o scanner de portas. O simples comando 'nmap alvo' escaneia mais de 1660 portas TCP no host alvo. O Nmap divide as portas em seis estados: aberto, fechado, filtrado, não-filtrado, open|filtered, ou closed|filtered. Esses estados não são propriedades intrínsecas da porta, mas descrevem como o Nmap as vê.
Os seis estados de porta reconhecidos pelo Nmap:
aberto Uma aplicação está ativamente aceitando conexões TCP ou
pacotes UDP nesta porta.
fechado Uma porta fechada está acessível, mas não há nenhuma aplicação
ouvindo nela.
filtrado O Nmap não consegue determinar se a porta está aberta porque
uma filtragem de pacotes (firewall/roteador) impede que as
sondagens alcancem a porta.
não-filtrado O estado não-filtrado significa que uma porta está acessível,
mas que o Nmap é incapaz de determinar se ela está aberta ou
fechada.
open|filtered O Nmap coloca portas neste estado quando é incapaz de
determinar se uma porta está aberta ou filtrada.
closed|filtered Este estado é usado quando o Nmap é incapaz de determinar se
uma porta está fechada ou filtrada.
Existem dezenas de técnicas de escaneamento e para cada tarefa deve ser escolhida a que for apropriada. Apenas um método pode ser utilizado de cada vez exceto que um scan UDP pode ser combinado com qualquer um dos tipos de scan TCP. As opções dos tipos de escaneamento de portas estão no formato -sC, onde C é um caractere proeminente no nome do scan, normalmente o primeiro:
-sS O scan SYN é a opção de scan padrão. Pode ser executada rapidamente,
escaneando milhares de portas por segundo em uma rede não bloqueada por
firewalls.
-sT O scan TCP connect é o scan padrão do TCP quando o scan SYN não é uma
opção. Esse é o caso quando o usuário não tem privilégios para criar
pacotes em estado bruto.
-sU Ativa o scan UDP. Pode ser combinado com um tipo de escaneamento TCP
para averiguar ambos protocolos na mesma execução.
O Nmap oferece opções para especificar quais portas são escaneadas e se a ordem de escaneamento é aleatória ou sequencial:
-p portas Especifica quais portas deseja escanear. Números de portas
individuais são suportadas, bem como as faixas separadas por um
hífen (ex. 1-1023).
Quando escanear ambas as portas TCP e UDP, pode especificar um
protocolo em particular, precedendo os números de portas com T: ou
U: (ex. -p U:53,111,137,T:21-25,80,139,8080).
-F Especifica que deseja apenas escanear as portas listadas no arquivo
nmap-services que vem com o nmap. Escaneamento rápido.
-r Não usa as portas de forma aleatória. Especificar -r faz um
escaneamento de portas sequencial.
Depois que as portas TCP e/ou UDP forem descobertas, usando qualquer um dos outros métodos de scan, a detecção de versão interroga estas portas para determinar o que realmente está sendo executado nestas portas:
-sV Habilita a detecção de versão. Use a opção -A para habilitar tanto a
detecção de SO como a detecção de versão.
Uma das características mais conhecidas do Nmap é a detecção remota de S.O. utilizando a identificação da pilha do TCP/IP. O Nmap envia uma série de pacotes TCP e UDP ao host remoto e examina praticamente todos os bits das respostas. O Nmap compara os resultados com o banco de dados nmap-os-fingerprints com mais de 1500 identificações de S.O. conhecidos e mostra os detalhes do S.O. se houver uma correspondência.
A detecção de S.O. habilita diversos outros testes que usam as informações coletadas durante o processo. Um deles é a medição de uptime, que utiliza a opção timestamp do TCP (RFC 1323) para supor quando uma máquina foi reiniciada pela última vez.
A detecção de S.O. é habilitada e controlada com as seguintes opções:
-O Habilita a deteção de SO. Alternativamente, pode usar -A para habilitar
tanto a detecção de S.O. quanto a detecção de versão.
-O2 Usa o novo sistema de detecção de S.O.
Observação: o uso conjunto da opção -v faz o Nmap gerar informações extras sobre o sistema operacional.
Outras opções para a linha de comando do Nmap:
-v Aumenta as informações de saída. Usando duas vezes faz maior efeito.
-A Ativa detecção de S.O. e de versão.
-h Exibe uma página de ajuda.
Exemplos de linha de comando dos usos do Nmap:
a) Escaneia a sub-rede a procura de hosts ativos:
# nmap -sP -n 192.168.1.0/24
b) Escaneia a sub-rede a procura de portas ativas:
# nmap -sS -n -p 1-600 192.168.1.0/24
c) Analisa a porta 80 do host para descobrir a versão do serviço:
# nmap -sV -n -p 80 192.168.1.101
d) Analisa o host para descobrir o sistema operacional:
# nmap -O2 -vv 192.168.1.101
O Nmap utiliza pacotes IP em estado bruto para determinar quais hosts estão disponíveis na rede, quais serviços os hosts oferecem, quais sistemas operacionais estão executando e dezenas de outras características. Uma grande habilidade do Nmap é de criar pacotes IP do nada e enviá-los utilizando métodos únicos para realizar os diferentes tipos de escaneamentos.
Embora o Nmap tente produzir resultados precisos, todas as deduções são baseadas em pacotes devolvidos pelas máquinas-alvo, ou firewalls na frente delas. Tais hosts podem ser não-confiáveis e enviar respostas com o propósito de confundir ou enganar o Nmap. Muito mais comum são os hosts não de acordo com a RFC, que não respondem como deveriam às sondagens do Nmap.
Escaneamento de rede é o processo para descobrir hosts ativos na rede e informações sobre os hosts, como sistema operacional, portas abertas, serviços e aplicações.
O escaneamento de rede engloba quatro técnicas básicas:
1) Mapeamento de rede - envia mensagem para um host para gerar uma resposta se o host estiver ativo;
2) Escaneamento de porta - envia mensagem para uma porta para determinar se está ativa;
3) Detecção de serviço - envia uma mensagem específica para uma porta ativa para gerar uma resposta com o tipo e versão do serviço;
4) Detecção de S.O. - envia uma mensagem específica para um host ativo para gerar uma resposta com o tipo do sistema operacional.
Uma amostra de scan do Nmap:
# nmap -A -T4 scanme.nmap.org
Starting nmap ( http://insecure.org/nmap/ )
Interesting ports on scanme.nmap.org (205.217.153.62):
(The 1663 ports scanned but not shown below are in state: filtered)
PORT STATE SERVICE VERSION
22/tcp open ssh OpenSSH 3.9p1 (protocol 1.99)
53/tcp open domain
70/tcp closed gopher
80/tcp open http Apache httpd 2.0.52 ((Fedora))
113/tcp closed auth
Device type: general purpose
Running: Linux 2.4.X|2.5.X|2.6.X
OS details: Linux 2.4.7 - 2.6.11, Linux 2.6.0 - 2.6.11
Uptime 33.908 days (since Thu Jul 21 03:38:03 2005)
A maioria dos tipos de scan está disponível apenas para usuários privilegiados. Pois o Nmap envia e recebe pacotes em estado bruto, o que requer acesso de root em sistemas Linux.
Sinopse para linha de comando do Nmap:
nmap [Tipo]... [Opções]... Alvo
Tudo na linha de comando do Nmap que não for uma opção é tratado como uma especificação de um host-alvo. O procedimento básico é especificar como alvo um endereço IP ou um nome de host para ser escaneado. É possível escanear uma rede inteira de hosts adjacentes, para isso o Nmap suporta o estilo de endereçamento CIDR.
Para escanear todos os IPs de uma máscara de rede, acrescenta-se /númerodebits em um endereço ou hostname. Por exemplo, 192.168.10.0/24 escanearia os 256 hosts entre 192.168.10.0 e 192.168.10.255, inclusive. Pode-se especificar uma lista de números separada por vírgulas ou faixa de números para cada octeto. Por exemplo, 192.168.0-255.1-254 irá pular todos os endereços na faixa que terminarem com .0 ou .255.
O Nmap aceita múltiplas especificações de host na linha de comando, e elas não precisam ser do mesmo tipo. Por exemplo, 'nmap scanme.nmap.org 192.168.0.0/16 10.0.0,1,3-7.0-255'.
As seguintes opções também estão disponíveis para controlar a seleção de alvos:
-iL arquivo Lê a especificação de alvos à partir de um arquivo
de entrada. Cada entrada deve ser separada por
espaços em branco, tabulações ou quebra de linhas.
--exclude host1,host2,... Especifica uma lista de alvos, separados por vírgula,
a serem excluídos do scan mesmo que façam parte da
faixa de rede especificada.
Um dos primeiros passos em qualquer missão de reconhecimento de uma rede é reduzir um conjunto de faixas de endereços IP, em uma lista de hosts ativos e interessantes.
-sP Esta opção diz ao Nmap para somente executar um scan usando o ping, e
então mostrar os hosts disponíveis que responderam ao scan.
-sL O scan listagem é uma forma de descoberta de hosts que simplesmente lista
cada host da rede especificada, sem enviar nenhum pacote aos hosts-alvos.
Apenas faz a resolução de DNS reverso dos hosts para descobrir seus nomes.
-P0 Esta opção pula completamente o estágio de descoberta do Nmap (sem ping).
Faz com que o Nmap teste as funções de escaneamento solicitadas contra
todos os endereços IP alvos especificados, como se cada alvo IP estivesse
ativo.
-n Não faz uma resolução DNS reversa nos endereços IP ativos que encontrar.
-PS portas Esta opção envia um pacote TCP vazio com a flag SYN marcada.
A flag SYN sugere aos sistemas remotos que você está tentando
estabelecer uma comunicação.
-PA portas Faz o ping usando TCP ACK. É muito similar ao ping usando SYN.
-PU portas Faz o ping usando UDP, que envia um pacote UDP vazio para as portas
informadas.
A função principal do Nmap é o scanner de portas. O simples comando 'nmap alvo' escaneia mais de 1660 portas TCP no host alvo. O Nmap divide as portas em seis estados: aberto, fechado, filtrado, não-filtrado, open|filtered, ou closed|filtered. Esses estados não são propriedades intrínsecas da porta, mas descrevem como o Nmap as vê.
Os seis estados de porta reconhecidos pelo Nmap:
aberto Uma aplicação está ativamente aceitando conexões TCP ou
pacotes UDP nesta porta.
fechado Uma porta fechada está acessível, mas não há nenhuma aplicação
ouvindo nela.
filtrado O Nmap não consegue determinar se a porta está aberta porque
uma filtragem de pacotes (firewall/roteador) impede que as
sondagens alcancem a porta.
não-filtrado O estado não-filtrado significa que uma porta está acessível,
mas que o Nmap é incapaz de determinar se ela está aberta ou
fechada.
open|filtered O Nmap coloca portas neste estado quando é incapaz de
determinar se uma porta está aberta ou filtrada.
closed|filtered Este estado é usado quando o Nmap é incapaz de determinar se
uma porta está fechada ou filtrada.
Existem dezenas de técnicas de escaneamento e para cada tarefa deve ser escolhida a que for apropriada. Apenas um método pode ser utilizado de cada vez exceto que um scan UDP pode ser combinado com qualquer um dos tipos de scan TCP. As opções dos tipos de escaneamento de portas estão no formato -sC, onde C é um caractere proeminente no nome do scan, normalmente o primeiro:
-sS O scan SYN é a opção de scan padrão. Pode ser executada rapidamente,
escaneando milhares de portas por segundo em uma rede não bloqueada por
firewalls.
-sT O scan TCP connect é o scan padrão do TCP quando o scan SYN não é uma
opção. Esse é o caso quando o usuário não tem privilégios para criar
pacotes em estado bruto.
-sU Ativa o scan UDP. Pode ser combinado com um tipo de escaneamento TCP
para averiguar ambos protocolos na mesma execução.
O Nmap oferece opções para especificar quais portas são escaneadas e se a ordem de escaneamento é aleatória ou sequencial:
-p portas Especifica quais portas deseja escanear. Números de portas
individuais são suportadas, bem como as faixas separadas por um
hífen (ex. 1-1023).
Quando escanear ambas as portas TCP e UDP, pode especificar um
protocolo em particular, precedendo os números de portas com T: ou
U: (ex. -p U:53,111,137,T:21-25,80,139,8080).
-F Especifica que deseja apenas escanear as portas listadas no arquivo
nmap-services que vem com o nmap. Escaneamento rápido.
-r Não usa as portas de forma aleatória. Especificar -r faz um
escaneamento de portas sequencial.
Depois que as portas TCP e/ou UDP forem descobertas, usando qualquer um dos outros métodos de scan, a detecção de versão interroga estas portas para determinar o que realmente está sendo executado nestas portas:
-sV Habilita a detecção de versão. Use a opção -A para habilitar tanto a
detecção de SO como a detecção de versão.
Uma das características mais conhecidas do Nmap é a detecção remota de S.O. utilizando a identificação da pilha do TCP/IP. O Nmap envia uma série de pacotes TCP e UDP ao host remoto e examina praticamente todos os bits das respostas. O Nmap compara os resultados com o banco de dados nmap-os-fingerprints com mais de 1500 identificações de S.O. conhecidos e mostra os detalhes do S.O. se houver uma correspondência.
A detecção de S.O. habilita diversos outros testes que usam as informações coletadas durante o processo. Um deles é a medição de uptime, que utiliza a opção timestamp do TCP (RFC 1323) para supor quando uma máquina foi reiniciada pela última vez.
A detecção de S.O. é habilitada e controlada com as seguintes opções:
-O Habilita a deteção de SO. Alternativamente, pode usar -A para habilitar
tanto a detecção de S.O. quanto a detecção de versão.
-O2 Usa o novo sistema de detecção de S.O.
Observação: o uso conjunto da opção -v faz o Nmap gerar informações extras sobre o sistema operacional.
Outras opções para a linha de comando do Nmap:
-v Aumenta as informações de saída. Usando duas vezes faz maior efeito.
-A Ativa detecção de S.O. e de versão.
-h Exibe uma página de ajuda.
Exemplos de linha de comando dos usos do Nmap:
a) Escaneia a sub-rede a procura de hosts ativos:
# nmap -sP -n 192.168.1.0/24
b) Escaneia a sub-rede a procura de portas ativas:
# nmap -sS -n -p 1-600 192.168.1.0/24
c) Analisa a porta 80 do host para descobrir a versão do serviço:
# nmap -sV -n -p 80 192.168.1.101
d) Analisa o host para descobrir o sistema operacional:
# nmap -O2 -vv 192.168.1.101
Nenhum comentário:
Postar um comentário