Como Utilizar o Nmap para Varreduras de Rede no Linux

Destrave o poder do Nmap para potencializar pentests de segurança de servidores: a ferramenta essencial para Red Teams, Blue Teams e profissionais de Infraestrutura.

1293 Views
Tempo de Leitura: 5.53 minutos

O Nmap é uma ferramenta muito poderosa para enumeração de portas, diretórios, serviços, versões, etc, em processos de pentest. É o canivete suíço do Blue Teams e Red Teams que o utilizam para detectar inconformidades em serviços e/ou servidores. De igual forma, pode ser utilizado por diversos profissionais de Infraestrutura, SRE, DevOps, entre outros, para garantir que seus ambientes estejam minimamente seguros.

Contextualização

Muitos ataques são realizados a partir da obtenção de informações sobre os servidores. Portas abertas desnecessáriamente, versões de serviço que podem possuir vulnerabilidades com exploits públicos, entre outros, começam em um processo chamado Enumeração. A Enumeração objetiva coletar o máximo de informações possíveis sobre uma vítima em potencial. O Nmap é muito útil para obter essas informações.

Neste artigo não vou mostrar como fazer enumeração ou a explorar vulnerabilidades, mas vou mostrar alguns dos parâmetros mais utilizados do Nmap em pentests.

Recomenda-se testar os comandos somente em ambiente próprio, e não em infraestrutura de terceiros. Alguns desses comandos podem ser detectados em monitorações, por isso, tenha cuidado.

Instalação:

Presente nos melhores repositórios, basta consultar seu gerenciador de pacotes favorito para instalá-lo. No Debian, por exemplo, utilize:

$ sudo apt-get install nmap

Usando o Nmap

O comando nmap pode ser executado sem root/sudo, mas há muitos parâmetros que só retornam resultados completos se executados com privilégio.

Portanto, parta do princípio de que todos os comandos devem ser executados com root/sudo.

Pode-se utilizar mais de uma opção de parâmetro desde que não sejam conflitantes.

Realizando consulta Nmap com comando simples:

A syntax as opções abaixo são simples. Basta especificar a opção conforme exemplo a seguir:

$ nmap Opções IP/HOST
  • -sV (Version detection): Realiza scan identificando as versões dos serviços em execução nas portas abertas do alvo.
  • -sP (Ping scan): O Nmap verifica se um host/rede está ativo.
  • -sR (RCP scan): Identifica portas RPC reais, mesmo protegidas por um firewall.
  • -sS (TCP SYN scan): Detecta portas abertas sem completar conexão.
  • -sT: Técnica básica que usa connect() para testar portas abertas. É rápido, logo, fácil de detectar.
  • -sU (UDP scan): Envia pacote UDP com 0 byte para detectar portas abertas.
  • -F (Fast Scan): Ao invés de consultar as 65.535 portas TCP, consulta somente as 100 mais comuns.
  • -n: Não faz resolução de nome de domínio
  • -R: Realiza resolução de nomes do host alvo.
  • -r: Realiza o scan de portas randomizamente e não em ordem crescente.
  • -O: Identificação do Sistema Operacional do alvo.
  • -v: Ativa o modo verbose.
  • Consultas Nmap com comandos compostos

    Os comandos abaixo utilizam parâmetro e valor que são especificados para alterar o comportamento do scan.

  • -D IP1,IP2,SEU_IP: Usa IPs falsos para dificultar a identificação da origem da execução do comando.
  • nmap -D IP1,IP2,IP3,SEU_IP,IP4,IP6 alvo
  • -p U: Especifica portas UDP a serem consultadas.
  • nmap -p U:53,111,137
  • -p T: Especifica portas TCP a serem consultadas.
  • nmap -p T:21-25,80,139,8080
    Observação: Pode-se especificar portas UDP e TCP na mesma execução com o comando nmap -p U:53,111,137,T:21-25,80,139,8080. Ou seja, basta separar UDP e TCP com uma vírgula.
  • -P0: Desativa o ping inicial do Nmap antes de iniciar a varredura.
  • nmap -P0 alvo
  • -PS[lista_de_portas]: Realiza um ping com TCP SYN na porta 80 antes de iniciar a varredura. Útil para saber se o host está no ar.
  • nmap -PS80 alvo
  • -PT[lista_de_portas]: O mesmo do anterior, só que o ping é realizado com TCP ACK.
  • nmap -PT80 alvo
  • -ttl: Especifica o TTL dos pacotes IP usados na varredura. O padrão é 64..
  • nmap -ttl 55 alvo

    Velocidade vs Furtividade

    Se bem configuradas, as soluções de proteção da segurança como IPS, EDR e firewalls, por exemplo, tendem a detectar facilmente a execução do comando Nmap. A prioridade padrão é -T2, o que, geralmente, já é detectada pelos mecanismos de segurança. Para evitar detecções, portanto, usamos a opção “-T” (Timing) com valor superior a 2. Ou seja, quanto maior o número, mais educado o scan será. Consequentemente, maiores chances de sucesso.

  • -T (Timing): Seta a prioridade de varredura do Nmap:
      1. -T5 (Paranoid): é muito lento na esperança de prevenir a detecção pelo sistema IDS. Este serializa todos os scans (scanning não paralelo) e geralmente espera no mínimo 5 minutos entre o envio de pacotes.
        -T4 (Sneaky): é similar ao Paranoid, exceto que somente espera 15 segundos entre o envio de pacotes.
        -T3 (Polite): tem o significado para facilitar a carga na rede e reduzir as chances de travar a máquina. Ele serializa os testes e espera no mínimo 0.4 segundos entre eles.
        -T2 (Normal): é o comportamento default do Nmap, o qual tenta executar tão rápido quanto possível sem sobrecarregar a rede ou perder hosts/portas.
        -T1 (Aggressive): esse modo adiciona um timeout de 5 minutos por host e nunca espera mais que 1.25 segundos para testar as respostas.
        -T0 (Insane): é somente adequando para redes muito rápidas ou onde você não se importa em perder algumas informações. Nesta opção o timeout doshosts acontecem em 75 segundos e espera somente 0.3 segundos por teste individual.

    Varreduras não convencionais

    Alguns firewalls e filtros de pacotes detectam pacotes SYN e os rejeita, exigindo o uso de métodos avançados para contornar essas proteções. No caso de hosts Linux, podemos utilizar as seguintes opções de scan para tentar burlar essas proteções:

    O Windows utiliza um padrão que impede o funcionamento desses scans.
  • -sF(Stealth FIN): Portas fechadas respondem com RST (Reset), enquanto portas abertas ignoram pacotes FIN.
  • -sX (Xmas Tree): Portas fechadas respondem com RST a pacotes FIN (com flags FIN, URG e PUSH), enquanto portas abertas ignoram esses pacotes.
  • -sN (Null): Portas fechadas respondem com RST a pacotes FIN sem flags, enquanto portas abertas ignoram esses pacotes.
  • Resumo

    Para você que não é de Segurança, mas quer garantir que seu ambiente esteja seguro, meus parabéns. Mas lembre-se de avisar seu time de Segurança com antecedência. Ou seja, antes de realizar testes com Nmap em ambiente corporativo, avise seu time de Segurança ou o seu Blue Team vai achar que a empresa está sofrendo um ataque interno (um pesadelo para qualquer Blue Team).

    Um bom local para executar o Nmap é um ambiente controlado como Lab interno ou Staging utilizando redes internas não públicas e sem acesso ao ambiente de produção.

    0 - 0

    Thank You For Your Vote!

    Sorry You have Already Voted!

    Rolar para cima