Nmap

O Nmap é uma poderosa ferramenta de varredura de rede para auditorias de segurança e testes de penetração. É uma das ferramentas essenciais usadas pelos administradores de rede para solucionar problemas de conectividade de rede e varredura de portas .

O Nmap também pode detectar o endereço Mac, tipo de SO , versão do serviço e muito mais.

Este artigo explica os conceitos básicos de como usar o nmapcomando para executar várias tarefas de rede.

Instalando o Nmap

O Nmap é um programa multiplataforma que pode ser instalado em todos os principais sistemas operacionais. Ele foi lançado inicialmente como uma ferramenta apenas para Linux e, posteriormente, foi portado para outros sistemas, como BSD, Windows e macOS.

Se você preferir uma GUI à linha de comando, o Nmap também possui uma interface gráfica de usuário chamada Zenmap .

Os pacotes binários oficiais estão disponíveis para download na página de download do Nmap .

O procedimento de instalação é simples e varia de acordo com o seu sistema operacional.

Instalando o Nmap no Ubuntu e no Debian

O Nmap está disponível nos repositórios padrão do Ubuntu e Debian. Para instalá-lo, execute:

sudo apt updatesudo apt install nmapcópia decópia de

Instalando o Nmap no CentOS e no Fedora

No CentOS e outros derivados do Red Hat, execute:

sudo dnf install nmapcópia de

Instalando o Nmap no macOS

Os usuários do macOS podem instalar o Nmap baixando o pacote de instalação “.dmg” do site do Nmap ou via Homebrew:

brew install nmapcópia de

Instalando o Nmap no Windows

A versão Windows do Nmap tem algumas limitações e geralmente é um pouco mais lenta que a versão UNIX.

A opção mais fácil de instalar o Nmap no Windows é baixar e executar o arquivo exe de auto-instalação.

Você pode executar o Nmap no Windows a partir da linha de comando ou iniciando o programa Zenmap. Para obter mais informações sobre como usar o Nmap no Windows, verifique as instruções de uso pós-instalação .

Usando o Nmap

O Nmap é normalmente usado para auditar a segurança da rede, mapeamento de rede, identificar portas abertas e pesquisar dispositivos online.

A sintaxe simplificada do nmapcomando é a seguinte:

nmap [Options] [Target...]

cópia de

O exemplo mais básico de uso do Nmap é escanear um único alvo como um usuário padrão sem especificar nenhuma opção:

nmap scanme.nmap.org

Quando chamado como um usuário não root que não possui privilégios de pacote bruto, nmapexecuta a varredura de conexão TCP. O ( -sT) é ativado por padrão no modo sem privilégios.

A saída será semelhante a esta, incluindo informações básicas sobre a varredura e uma lista de portas TCP abertas e filtradas.

Starting Nmap 7.91 ( https://nmap.org ) at 2020-12-16 20:19 CET
Nmap scan report for cast.lan (192.168.10.121)
Host is up (0.048s latency).
Not shown: 981 closed ports
PORT     STATE    SERVICE
21/tcp   open     ftp
22/tcp   open     ssh
25/tcp   open     smtp
53/tcp   open     domain
80/tcp   open     http
110/tcp  open     pop3
143/tcp  open     imap
443/tcp  open     https
587/tcp  open     submission
993/tcp  open     imaps
995/tcp  open     pop3s
1025/tcp open     NFS-or-IIS
1080/tcp open     socks
8080/tcp open     http-proxy
8081/tcp open     blackice-icecap

Nmap done: 1 IP address (1 host up) scanned in 1.78 seconds
cópia de

A opção de verificação mais popular é a verificação TCP SYN ( -sS), que é mais rápida que a opção de conexão e funciona em todas as pilhas TCP compatíveis.

-sSé ativado por padrão quando nmapé invocado como um usuário com privilégios administrativos:

sudo nmap 192.168.10.121cópia de

Para uma saída mais detalhada, use aumentar a verbosidade com -vou -vv:

sudo nmap -vv 192.168.10.121cópia de

Para executar uma varredura UDP, invoque o comando com a -sUopção ( ) como usuário root:

sudo nmap -sU 192.168.10.121cópia de

Para obter uma lista completa de métodos de varredura de portas, visite a página de documentação do Nmap .

O Nmap também suporta endereços IPv6. Para especificar um host IPv6, use a -6opção:

sudo nmap -6 fd12:3456:789a:1::1cópia de

Especificando hosts de destino

O Nmap trata todos os argumentos que não são opções como hosts de destino.Os argumentos são considerados opções se começarem com um traço simples ou duplo ( 

-

--).

A opção mais simples é passar um ou mais endereços de destino ou nomes de domínio:

nmap 192.168.10.121 host.to.scancópia de

Você pode usar a notação CIDR para especificar um intervalo de rede:

nmap 192.168.10.0/24cópia de

Para especificar um intervalo de octetos, use o caractere traço. Por exemplo, para digitalizar 192.168.10.1192.168.11.1192.168.12.1:

nmap 192.168.10-12.1cópia de

Outro caractere que você pode usar para especificar os destinos é a vírgula. O comando a seguir tem como alvo os mesmos hosts que o acima:

nmap 192.168.10,11,12.1cópia de

Você pode combinar todas as formas:

nmap 10.8-10.10,11,12.0/28  192.168.1-2.100,101cópia de

Para certificar-se de que você especificou os hosts corretos antes da verificação, use a opção list scan ( -sL), que lista apenas os destinos sem executar uma verificação:

nmap -sL 10.8-10.10,11,12.0/28  192.168.1-2.100,101cópia de

Se você quiser excluir alvos incluídos no intervalo especificado, use a --excludeopção:

nmap 10.8-10.10,11,12.0/28 --exclude 10.10.12.12cópia de

Especificando e Escaneando Portas

Por padrão, o Nmap executa uma varredura rápida para as 1000 portas mais populares. Essas portas não são as primeiras 1.000 portas consecutivas, mas as 1.000 portas mais usadas, variando de 1 a 65389.

Para verificar todas as portas de 1 a 65535, use a -p-opção:

nmap -p- 192.168.10.121cópia de

Cada porta pode estar em um dos seguintes estados:

  • open – O programa em execução na porta responde à solicitação.
  • fechado – Nenhum programa é executado na porta e o host responde às solicitações.
  • filtrado – O host não responde à solicitação.

Por exemplo, para varrer apenas a porta 443, você usaria o seguinte comando:

nmap -p 443 192.168.10.121cópia de

Para especificar mais de uma porta, separe as portas de destino com uma vírgula:

nmap -p 80,443 192.168.10.121cópia de

Os intervalos de portas podem ser especificados com o símbolo de traço. Por exemplo, para varrer todas as portas UDP de 1 a 1024, você executaria:

sudo nmap -sU -p 1-1024 192.168.10.121cópia de

Todos combinados:

nmap -p 1-1024,8080,9000 192.168.10.121cópia de

As portas também podem ser especificadas usando o nome da porta. Por exemplo, para procurar a porta 22, ssh, você pode usar:

nmap -p ssh 192.168.10.121cópia de

Varredura de ping

Para executar uma verificação de ping ou descoberta de host, invoque o nmapcomando com a -snopção:

sudo nmap -sn 192.168.10.0/24cópia de

-snopção diz ao Nmap apenas para descobrir hosts online e não para fazer uma varredura de porta. Isso é útil quando você deseja determinar rapidamente quais hosts especificados estão em execução.

Desativando a resolução de nomes DNS

O comportamento padrão do Nmap é executar a resolução de DNS reverso para cada host descoberto, o que aumenta o tempo de varredura.

Ao verificar grandes redes, é uma boa ideia desabilitar a resolução de DNS reverso e acelerar as verificações. Para fazer isso, invoque o comando com a -nopção:

sudo nmap -n 192.168.10.0/16cópia de

SO, serviço e detecção de versão

O Nmap pode detectar o sistema operacional do host remoto usando a impressão digital da pilha TCP/IP. Para executar a detecção do SO, invoque o comando com a -Oopção:

sudo nmap -O scanme.nmap.orgcópia de

Se o Nmap puder detectar o sistema operacional host, ele imprimirá algo como abaixo:

...
Device type: general purpose
Running: Linux 5.X
OS CPE: cpe:/o:linux:linux_kernel:5
OS details: Linux 5.0 - 5.4
Network Distance: 18 hops

OS detection performed. Please report any incorrect results at https://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 26.47 seconds
cópia de

Normalmente, os serviços do sistema escutam em portas padrão que são bem conhecidas e reservadas para eles. Por exemplo, se a porta 22 que corresponde ao serviço SSH estiver aberta, você assumirá que um servidor SSH é executado no host. No entanto, você não pode ter certeza absoluta porque as pessoas podem executar serviços nas portas que quiserem.

Com detecção de serviço e versão, o Nmap mostrará qual programa escuta na porta e a versão do programa.

Para verificar o serviço e a versão, use a -sVopção:

sudo nmap -sV scanme.nmap.orgcópia de
...
PORT      STATE    SERVICE      VERSION
19/tcp    filtered chargen
22/tcp    open     ssh          OpenSSH 6.6.1p1 Ubuntu 2ubuntu2.13 (Ubuntu Linux; protocol 2.0)
80/tcp    open     http         Apache httpd 2.4.7 ((Ubuntu))
135/tcp   filtered msrpc
139/tcp   filtered netbios-ssn
445/tcp   filtered microsoft-ds
9929/tcp  open     nping-echo   Nping echo
31337/tcp open     tcpwrapped
Service Info: OS: Linux; CPE: cpe:/o:linux:linux_kernel
...
cópia de

Você também pode verificar SO, Versões e executar traceroute em um comando usando a -Aopção:

sudo nmap -A 192.168.10.121cópia de

Saída do Nmap

Por padrão, o Nmap imprime as informações na saída padrão (stdout).

Se você digitalizar uma rede grande ou precisar das informações para uso posterior, poderá salvar a saída em um arquivo.

O Nmap fornece vários tipos de saída. Para salvar a saída no formato normal, use a -oNopção seguida do nome do arquivo:

sudo nmap -sU -p 1-1024 192.168.10.121 -oN output.txtcópia de

A opção mais popular é salvar a saída no formato XML. Para isso, use a -oXopção:

sudo nmap -sU -p 1-1024 192.168.10.121 -oX output.xmlcópia de

Outro formato útil é a saída grepable, que pode ser analisada com as ferramentas padrão do Unix como grep , awk e cut . A saída grepable é especificada com a -oGopção:

sudo nmap -sU -p 1-1024 192.168.10.121 -oG outputcópia de

Mecanismo de script Nmap

Um dos recursos mais poderosos do Nmap é seu mecanismo de script. O Nmap vem com centenas de scripts , e você também pode escrever seus próprios scripts na linguagem Lua.

Você pode usar scripts para detectar malware e backdoors, realizar ataques de força bruta e muito mais.

Por exemplo, para verificar se um determinado host está comprometido, você pode usar:

nmap -sV --script http-malware-host scanme.nmap.orgcópia de

Conclusão

O Nmap é uma ferramenta de código aberto usada principalmente por administradores de rede para descobrir portas de host e varredura.

Observe que, em alguns países, não é legal escanear redes sem autorização.

Se você tiver alguma dúvida ou observação, por favor, deixe um comentário abaixo.

Doe.