NMAP na veia

Written by

Introdução ao NMAP:

O Nmap é a ferramenta de verificação mais popular usado na Internet.
Criado por por Fyodor (http://www.insecure.org o nmap tem sido utilizado por milhares de profissionais pelo mundo inteiro..

O site do nmap: www.nmap.org é a fonte oficial do namp (já fizemos isso quando o compilamos em nosso sistema. No site oficial você pode baixar o código fonte e os binários do nmap e do zenmap. O código fonte é distribuído em arquivos .tar comprimidos como gzip e bzip2, e os binários estão disponíveis para Linux no formato RPM, Windows, MAC OS X e imagem de disco .dmg.

Não é minha pretensão fazer desse tópico um guia de referencia sobre NMAP, se você quer conhecer tudo sobre essa maravilhosa ferramenta de redes eu aconselho a leitura do livro Exame de Redes com NMAP da Editora Ciência Moderna www.lcm.com.br inclusive eu aconselho que o faça pois muitos administradores de sistemas e redes que eu conheço já fizeram com o objetivo de tornar mais fácil suas tarefas de inventário, gerenciamento de agenda de atualizações etc. você não pode deixar de estudar também as RFC´s 793, 792 e as demais referente a pilha TCP/IP disponíveis em http://www.rfc-editor.org/

O NMAP usa pacotes crus de IP para determinar quais maquinas estão disponíveis na rede, quais serviços estão sendo oferecidos, quais os sistemas operacionais, quais os tipos de filtros de segurança estão sendo aplicados etc.

Segundo seu idealizador (Fyodor), ele foi projetado para examinar rapidamente, grandes redes, mas funciona bem se você deseja examinar uma única maquina.

O NMAP roda em diversos sistemas operacionais, tais como Windows, Linux e demais sistemas do mercado.

Em alguns casos nesse capitulo podemos nos tornar até repetitivos dada a importância que esse tema representa.

 

Fundamentos do Escaneamento de Portas

Embora o Nmap tenha crescido em funcionalidade ao longo dos anos, ele começou como um eficiente scanner de portas, e essa permanece sua função principal. O simples comando nmap <alvo> escaneia mais de 1600 portas TCP no host <alvo>. Embora muitos scanner de portas tenham tradicionalmente agrupado todas as portas nos estados aberto ou fechado, o Nmap é muito mais granular. Ele divide as portas em seis estados: aberto(open), fechado(closed),filtrado(filtered), não-filtrado(unfiltered), open|filtered, ou closed|filtered.

Esses estados não são propriedades intrínsecas da porta, mas descrevem como o Nmap as vê. Por exemplo, um scan do Nmap da mesma rede como alvo pode mostrar a porta 135/tcp como aberta, enquanto um scan ao mesmo tempo com as mesmas opções, à partir da Internet poderia mostrar essa porta como filtrada.

 

Os seis estados de porta reconhecidos pelo Nmap

Aberto (open) : Quando uma aplicação está em execução e aceitando conexões TCP ou pacotes UDP nesta porta. É exatamente esse o objetivo de Invasores e profissionais de avaliação de segurança. Encontrar portas abertas para exploração. Já a função dos administradores é de fechar ou proteger com firewalls, mais sem torná-las indisponíveis para os usuários legítimos.

Fechado (closed) : Uma porta fechada está acessível (ela recebe e responde a pacotes de sondagens do Nmap), mas não há nenhuma aplicação ouvindo nela. Elas podem ser úteis para mostrar que uma máquina está ligada. Nesse caso daria pra descobrir o sistema operacional e outras informações sobre o alvo

Filtrado (filtered) : Quando o Nmap não consegue determinar se a porta está aberta porque uma filtragem de pacotes impede que as sondagens alcancem a porta.  Esse filtros podem ser implementados com firewalls dedicado ou de host e roteadores.

Não-filtrado (unfiltered) : 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 pelo Nmap pra informar que não foi incapaz de determinar se uma porta está fechada ou filtrada.

Comunicação TCP

TCP Flags de comunicação: As comunicações padrão TCP são controladas por bandeiras (flags) no cabeçalho do pacote TCP. Os sinalizadores são: Synchronize: Sincronizar - também chamado de "SYN" Usado para iniciar uma conexão entre os hosts. Acknowledgement: Reconhecimento - também chamado de "ACK" -Utilizadas para estabelecer uma conexão entre os hosts. Push: Push - "PSH" - Instrui o sistema de recepção para enviar todos os dados em buffer imediatamente. Urgent: Urgente "URG"  Estado que os dados contidos no pacote deve ser processado imediatamente. Finish: Concluir, também chamado de "FIN", Diz ao sistema remoto que nao ha mais nada a transmitir. Reset: Reset, também chamado de "RST", Também é usado para retomar uma conexão.

  

 

Ex: Three Way Handshake

Computer A                                                          Computer B

192.168.0.2:2342 ------------syn----------->192.168.0.3:80

192.168.0.2:2342 <---------syn/ack----------192.168.0.3:80

192.168.0.2:2342-------------ack----------->192.168.0.3:80

Conexão estabelecida

O Computador A (192.168.1.2) inicia uma conexão com o servidor (192.168.1.3), através de um pacote com apenas um conjunto sinalizador SYN.
O servidor responde com um pacote com ambos os SYN e a flag ACK.
Para a etapa final, o cliente responde de volta o servidor com um único pacote ACK. Se estas três etapas forem concluídas, sem complicação, então uma conexão TCP foi estabelecida entre o cliente e o servidor.

Técnicas de varredura com Nmap

Serão citados de forma sucinta apenas alguns tipos de varredura para que possamos executar uma analise em nossos sistemas de forma efetiva e encontra as possíveis vulnerabilidades. Essas técnicas foram extraídas da documentação oficial do Nmap e podem ser lidas por inteiro em no site oficial www.insecure.org ou adquirindo o livro oficial em www.lcm.com.br

-sS - scan TCP SYN : O scan SYN é a opção de scanner padrão e mais popular de todas.com ela você pode fazer escaneamento de milhares de portas por segundo em uma rede que não esteja bloqueada por filtros de segurança. Considerando que ela não completa uma conexão TCP. Você envia um pacote SYN, como se fosse abrir uma conexão real e então espera uma resposta. Um SYN/ACK que indica que a porta remota está ouvindo, caso venha um reset (RST ) ao invés do SYN/ACK ela não esta ouvindo. Já se nenhuma resposta for recebida, a porta será marcada como filtrada.

 

-sT - scan TCP connect : O método de scan TCP connect é padrão do TCP. É útil quando o usuário não tem privilégios para criar pacotes em estado bruto. Ao invés de criar pacotes em estado bruto, o Nmap pede ao sistema operacional para estabelecer uma conexão com a máquina e a porta alvos enviando uma chamada de sistema connect

 

-sU - scans UDP : O método de scan de UDP é ativado com a opção -sU. Ele pode ser combinado com algum tipo de escaneamento TCP como o scan SYN (-sS) para testar ambos protocolos ao mesmo tempo. O scan UDP funciona enviando um cabeçalho UDP vazio para cada porta de destino. Se um erro ICMP de porta inalcançável for retornado, a porta está fechada. Outros erros do tipo inalcançável (tipo 3, códigos 1, 2, 9, 10, ou 13) marcam a porta como filtrada. Ocasionalmente um serviço irá responder com um pacote UDP, provando que está aberta. Se nenhuma resposta for recebida a porta é classificada como aberta|filtrada

 

-sN; -sF; -sX (scans TCP Null, FIN, e Xmas) : Esses três métodos exploram uma falha na RFC 793 do TCP para que traduz a diferença entre portas abertas e fechadas. Quando se escaneia sistemas padronizados com o texto desta RFC, qualquer pacote que não contenha os bits SYN, RST, ou ACK irá resultar em um RST como resposta se a porta estiver fechada, e nenhuma resposta se a porta estiver aberta. Contanto que nenhum desses três bits estejam incluídos, qualquer combinação dos outros três (FIN, PSH e URG) é válida. O Nmap explora isso com três tipos de scan: scan Null (-sN)  Não marca nenhum bit (o cabeçalho de flag do tcp é 0). scan FIN (-sF) Marca apenas o bit FIN do TCP e scan Xmas(-sX) Marca as flags FIN, PSH e URG.

Esses três tipos de scan são exatamente os mesmos em termos de comportamento, exceto pelas flags TCP marcadas no pacotes de sondagem. Se um pacote RST for recebido, a porta é considerada fechada, e nenhuma resposta significa que está aberta|filtrada. A porta é marcada como filtrada se um erro ICMP do tipo inalcançável (tipo 3, código 1, 2, 3, 9, 10, ou 13) for recebido.

-sA - scan TCP ACK : Esse scan é um pouco diferente pelo porque ele nunca determina se uma porta está aberta ou aberta|filtrada). Ele é utilizado para mapear conjuntos de regras do firewall, determinando se eles são orientados à conexão ou não e quais portas estão filtradas.

 

-sW - scan da Janela TCP : Scan da Janela é a mesma coisa  que scan ACK, exceto pelo fato de que ele explora um determinado detalhe da implementação de certos sistemas para diferenciar as portas abertas das fechadas.

Exemplos práticos

 

Stealth Scan

 

Computer A                                                          Computer B

 

192.168.0.2:2342 ------------syn----------->192.168.0.3:80

 

192.168.0.2:2342 <---------syn/ack----------192.168.0.3:80

 

192.168.0.2:2342-------------RST----------->192.168.0.3:80

 

O cliente envia um unico pacote SYN para o servidor na porta escolhida de acordo com o serviço a ser utilizado. Se a porta estiver aberta, o servidor responde com um pacote SYN/ACK. Se o servidor responder com um pacote RST, é porque a porta remota está fechada.
 O cliente envia um pacotes RST para fechar a abertura antes que uma conexão possa ser estabelecido. Essa varredura também é conhecida como "half-open" scan.

 

Xmas Scan

 

Computer A                                                          Computer B

 

Xmas scan dirigida a uma porta aberta

 

192.168.5.92:4031 -----------FIN/URG/PSH----------->192. 168.5.110:23

 

  1. 168.5.92:4031 <----------NO RESPONSE------------192. 168.5.110:23

 

Xmas scan dirigida a uma porta fechada

 

  1. 168.5.92:4031 -----------FIN/URG/PSH----------->192. 168.5.110:23

 

192.5.5.92:4031<-------------RST/ACK--------------192.5.5.110:23

 

Nota: O Xmas scan só funciona se a implementação do sistema for desenvolvida de acordo com a RFC 793.  E o Xmas scan não funcionará contra qualquer versão atual do Microsoft Windows. Pois a Microsoft nao segue a RFC 793 em sua implementação para o Windows. Se você tentar essa tecnica contra esses sistemas, vai receber em resposta. Todas as portas do host remoto estão fechadas.

 

FIN Scan

 

Computer A                                                          Computer B

 

Scan FIN dirigida a porta aberta

 

192.168.5.92:4031 -----------FIN------------------->192.168.5.110:23

 

192.168.5.92:4031 <----------NO RESPONSE------------192.168.5.110:23

 

Scan FIN dirigida a porta fechada

 

192.168.5.92:4031 -------------FIN------------------192.168.5.110:23

 

192.168.5.92:4031<-------------RST/ACK--------------192.168.5.110:23

 

Nota: O scan FIN só funciona se a implementação do sistema for desenvolvida de acordo com a RFC 793. E não não vai funcionar contra qualquer versão atual do Microsoft Windows. Ele irá retornar a mesma resposta do Xmas Scan.

 

NULL Scan

 

Computer A                                                          Computer B

 

NULL scan dirigida a porta aberta

 

192.5.5.92:4031 -----------NO FLAGS SET---------->192.5.5.110:23

 

192.5.5.92:4031 <----------NO RESPONSE------------192.5.5.110:23

 

NULL scan dirigida a porta fechada

 

192.5.5.92:4031 -------------NO FLAGS SET---------192.5.5.110:23

 

192.5.5.92:4031<-------------RST/ACK--------------192.5.5.110:23

 

Nota: NULL scan só funciona se a implementação do sistema for desenvolvida de acordo com a RFC 793 e seguirá a mesma regra para as duas técnicas anteriores..

 

Agora que temos uma boa idéia dos conceitos básicos de Nmap, vamos praticar um pouco.

 

Encontre servidores web aleatoriamente  com o comando  #nmap -sS -PS80 -iR 0 -p80

 

Nesse exemplo o nmap vai varrer a internet em busca de servidores web. Essa não uma prática aconselhada porque demanda muito recurso de hardware e não define um objetivo.

 

 

Adonel Bezerra

- É Perito com computação;
Auditor Líder das Normas ISO 27001, 27701, 27002 e 37301;
Membro efetivo da APCF - Associação Portuguesa de Ciências Forenses;
Pós-graduação em pericia forense computacional;
Pós-graduado em teoria em educação a distância e docência do ensino superior;
Graduando em direito;
Graduado em processamento de dados;
Escritor;
Com atuação profissional no Brasil e na Europa atualmente;
Especialista em investigação digital;
Experiência em implantação e auditoria das normas ISO 9001 e 27001;
Experiência em adequação de empresas a LEI N 13.709, DE 14 DE AGOSTO DE 2018 (LGPD) e General Data Protection Regulation (GDPR);
Experiência em auditoria interna ISO 27001;
Foi assessor sênior de desenvolvimento de tecnologia da informação do Conselho regional de engenharia e agronomia;
Consultor de segurança de sistemas e redes com mais de trinta anos de experiência;
Professor de pós-graduação em Pericia Computacional;
Já ministrou treinamentos e palestras para milhares de profissionais no todo Brasil e Exterior;
Fundador do Clube do Hacker www.clubedohacker.org
Site pessoal www.adonelbezerra.com
Lattes: http://lattes.cnpq.br/3540462066550327

Publish modules to the "offcanvs" position.