Nmap: “um baita fuçador” :)

O Nmap é uma daquelas ferramentas que todo bom administrador de sistemas conhece e costuma usar com assiduidade. Trata-se de um software livre com versões disponíveis para Linux, Windows e MAC OSx; apesar de ser uma aplicação tradicionalmente shell text, o Nmap também possui um front-end bastante funcional. Não obstante, pode se tornar um verdadeiro “canivete suíço” na mão de administradores e engenheiros de segurança da informação experiêntes.

Tela capturada de cenas do filme Matrix Reloaded

O Nmap é uma ferramenta tão badala no cenário dos portscans (scaners de portas e serviços) que chegou até a virar estrela hollywoodiana, ao ter uma participação no filme Matrix Reloaded. Isso mesmo, embora muitas pessoas não saibam, o programa foi utilizado pela personagem Trinity que usou o tradicional nmap para fazer um portscan em um computador da Matrix (o universo virtual opressor em que os personagens do filme “vivem”), e em seguida usa um exploit “de verdade” para mudar a senha de root e invadi-lo.

Na prática o Nmap é um portscan bastante abrangente, que possui muitas opções/parâmetros e que, em virtude desta sua característica, acaba gerando muitas dúvidas na maioria dos usuários iniciantes. Neste sentido, proponho aqui uma pequena coleção das principais opções e suas aplicabilidades em relação ao uso do Nmap em modo shell text:

Sintaxes de utilização:

nmap parâmetros alvo -p portas

PS: Importante ressaltar que o alvo pode ser o endereço IP, o host ou o endereço DNS resolvido.

Os parâmetros são ajustados de acordo com o resultado que se pretende obter, claro. Os parâmetros mais utilizados 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.
  • -A – Verifica a porta e o serviço que está rodando.

Saiba mais sobre os métodos de scanning, aplicados pelo Nmap neste artigo. Além dessas opções, o Nmap possui muitas outras, como por exemplo o scan rápido (nmap -F) ou então a opção de não pingar a máquina antes de scaniá-la (nmap -P0).

Em adição a esses métodos de scan, o nmap oferece a opção de escolher “políticas”, de modo a dificultar a detecção pelo IDS da máquina alvo. As opções são “Paranoid”, “Sneaky”, “Polite”, “Normal”, “Aggressive” ou “Insane”.

A opção “Paranoid” escaneia de 5 em 5 minutos cada porta, a “Sneaky”, de 15 em 15 segundos e assim evoluindo.

A vantagem do “scan” ser mais lento é que dificulta a descoberta pelo IDS da máquina alvo. A opção padrão é a normal.

# nmap -T Paranoid|Sneaky|Polite|Normal|Aggressive|Insane alvo

Referências e fontes:

http://www.vivaolinux.com.br/dicas/verDica.php?codigo=810

http://www.vivaolinux.com.br/artigos/verArtigo.php?codigo=2168&pagina=1

http://www.vivaolinux.com.br/artigos/verArtigo.php?codigo=1650&pagina=2

http://br-linux.org/noticias/000267.html

http://insecure.org/nmap/