O Nmap é uma ferramenta de código aberto que é amplamente utilizada para descobrir hosts e serviços em uma rede. Ele é um scanner de portas que pode ser usado para verificar quais portas estão abertas em um determinado dispositivo e quais serviços estão sendo executados nesses dispositivos. O Nmap é usado por administradores de rede, auditores de segurança, pentesters e entusiastas de tecnologia em todo o mundo.
Uma das principais vantagens do Nmap é que ele pode ser executado em uma variedade de sistemas operacionais, incluindo Windows, Linux e MacOS. Ele é altamente configurável e pode ser usado para executar tarefas simples, como verificar se um host está online, ou tarefas mais complexas, como varreduras de vulnerabilidades.
O Nmap pode ser usado para identificar vulnerabilidades em dispositivos e serviços, permitindo que os administradores de rede corrijam esses problemas antes que eles possam ser explorados por hackers mal-intencionados. Ele também pode ser usado para identificar dispositivos em uma rede, permitindo que os administradores tenham um melhor controle sobre sua infraestrutura e identifiquem possíveis pontos de falha.
No entanto, é importante lembrar que o uso inadequado do Nmap pode ser ilegal e antiético. Antes de usar o Nmap em qualquer sistema, os usuários devem obter permissão explícita do proprietário do sistema ou da rede. Além disso, os usuários devem estar cientes das leis locais e das políticas da empresa antes de usar o Nmap em qualquer ambiente de produção.
Em resumo, o Nmap é uma ferramenta poderosa e versátil que é usada por uma ampla gama de profissionais de segurança e tecnologia. Com seu conjunto de recursos altamente personalizáveis, o Nmap é uma ferramenta valiosa para qualquer pessoa que precise identificar dispositivos em uma rede, verificar a segurança de uma rede ou identificar vulnerabilidades potenciais.
*Texto criado pelo ChatGPT
Opções de Scan no Nmap
Após essa breve introdução criada pelo nossa amiga inteligência artificial, vamos à algumas das opções mais comuns. Note que para alguns tipos de scan é necessário privilégio administrativo.
-sS (TCP SYN scan/Half-Open Scan): Modo padrão (não precisa colocar o -sS), onde usamos o comando “nmap destino”, sendo que destino pode ser um host ou uma rede. O Nmap vai scannear as 1000 portas TCP mais comuns, e para isso serão enviados pacotes SYN. Uma resposta SYN/ACK indica que o serviço está disponível no destino (open). Um RST indica que o serviço (porta) não está disponível (closed), e se não houver resposta a porta é marcada como “filtered” (a consulta pode ter sido bloqueada por um firewall no host ou na rede).
Além das 3 opções de estado de porta citados acima (open, closed e filtered), que são as mais comuns, ainda temos 3 outras:
Unfiltered: Indica que a porta está acessível mas o Nmap não foi capaz de determinar se está aberta ou não.
Open|Filtered: O Nmap coloca as portas neste estado quando não consegue determinar se uma porta está aberta ou filtrada.
Closed|Filtered: O Nmap coloca as portas neste estado quando não consegue determinar se uma porta está fechada ou filtrada.
Portas abertas no site scanme.nmap.org, utilizado para testes
Pacotes TCP SYN para cada porta escaneada
-F (Fast Scan): utilizando a opção “-F”, o scan é feito apenas nas 100 portas mais comuns, o que acelera o processo.
└─$ nmap -F scanme.nmap.org
Starting Nmap 7.93 ( https://nmap.org ) at 2023-03-13 13:56 EDT
Nmap scan report for scanme.nmap.org (45.33.32.156)
Host is up (0.21s latency).
Other addresses for scanme.nmap.org (not scanned): 2600:3c01::f03c:91ff:fe18:bb2f
Not shown: 97 closed tcp ports (conn-refused)
PORT STATE SERVICE
22/tcp open ssh
25/tcp filtered smtp
80/tcp open http
Nmap done: 1 IP address (1 host up) scanned in 3.43 seconds
-p ou –top-ports (porta específica ou Top Ports): Podemos ser ainda mais diretos e especificar a porta (ou range) que queremos verificar, utilizando a opção “-p”. Outra opção é utilizar o –top-ports e dizer quantas das portas mais comuns quer verificar (ex. nmap –top-ports 20 scanme.nmap.org vai escanear as 20 portas mais comuns). Abaixo verificando as portas TCP de 20 a 30.
└─$ nmap -p20-30 scanme.nmap.org
Starting Nmap 7.93 ( https://nmap.org ) at 2023-03-13 13:57 EDT
Nmap scan report for scanme.nmap.org (45.33.32.156)
Host is up (0.21s latency).
Other addresses for scanme.nmap.org (not scanned): 2600:3c01::f03c:91ff:fe18:bb2fPORT STATE SERVICE
20/tcp closed ftp-data
21/tcp closed ftp
22/tcp open ssh
23/tcp closed telnet
24/tcp closed priv-mail
25/tcp filtered smtp
26/tcp closed rsftp
27/tcp closed nsw-fe
28/tcp closed unknown
29/tcp closed msg-icp
30/tcp closed unknownNmap done: 1 IP address (1 host up) scanned in 3.00 seconds
-sn (Ping Scan /No port scan): Com esta opção o Nmap vai fazer apenas o discovery do host, sem verificar portas. Apesar do nome, com essa opção é feito o TCP SYN (porta 443) e TCP ACK (porta 80), além do ICMP (echo request e timestamp). Com isso temos mais chances de confirmar se o host está UP. Além disso, se usarmos esta opção no modo privilegiado em uma rede local o Nmap utiliza o ARP para confirmar a existência do host (também mais confiável do que usar o ICMP). Apesar da diferença na execução, o output será o mesmo.
└─$ nmap -sn scanme.nmap.org
Starting Nmap 7.93 ( https://nmap.org ) at 2023-03-13 16:18 EDT
Nmap scan report for scanme.nmap.org (45.33.32.156)
Host is up (0.22s latency).
Other addresses for scanme.nmap.org (not scanned): 2600:3c01::f03c:91ff:fe18:bb2f
Nmap done: 1 IP address (1 host up) scanned in 1.42 seconds└─$ sudo nmap -sn 192.168.15.1
Starting Nmap 7.93 ( https://nmap.org ) at 2023-03-13 16:16 EDT
Nmap scan report for 192.168.15.1
Host is up (0.033s latency).
MAC Address: 10:72:23:5E:70:33 (Tellescom Industria E Comercio EM Telecomunicacao)
Nmap done: 1 IP address (1 host up) scanned in 0.17 seconds
-sU (UDP Scan): Para fazer scan em portas UDP devemos utilizar a opção “-sU”. Nesta opção são enviado pacotes UDP para cada porta a ser testada, e se houver retorno (não é comum), a porta é marcada como Open. Se o retorno for “ICMP port unreachable” (ICMP type 3, code 3), a porta é considerada “closed”. Outros retornos ICMP unreachable (type 3, codes 0, 1, 2, 9, 10, or 13) marcam a porta como filtered. E se não houver nenhum retorno a porta é marcada como Open|Filtered. Scan UDP é demorado se compararmos com o TCP, então é bom sempre usar portas específicas.
─$ sudo nmap -sU -p 123 scanme.nmap.org
[sudo] password for helpdesk:
Starting Nmap 7.93 ( https://nmap.org ) at 2023-03-13 14:22 EDT
Nmap scan report for scanme.nmap.org (45.33.32.156)
Host is up (0.20s latency).
Other addresses for scanme.nmap.org (not scanned): 2600:3c01::f03c:91ff:fe18:bb2fPORT STATE SERVICE
123/udp open ntpNmap done: 1 IP address (1 host up) scanned in 1.86 seconds
-sV (Detecção de versão): Com esta opção ativamos a detecção de versão da aplicação rodando na porta verificada.
└─$ nmap -sV -p22 scanme.nmap.org
Starting Nmap 7.93 ( https://nmap.org ) at 2023-03-13 14:17 EDT
Nmap scan report for scanme.nmap.org (45.33.32.156)
Host is up (0.23s latency).
Other addresses for scanme.nmap.org (not scanned): 2600:3c01::f03c:91ff:fe18:bb2fPORT STATE SERVICE VERSION
22/tcp open ssh OpenSSH 6.6.1p1 Ubuntu 2ubuntu2.13 (Ubuntu Linux; protocol 2.0)
Service Info: OS: Linux; CPE: cpe:/o:linux:linux_kernelService detection performed. Please report any incorrect results at https://nmap.org/submit/.
Nmap done: 1 IP address (1 host up) scanned in 3.32 seconds
-O (Detecção do sistema operacional): Ativa a detecção de versão do sistema operacional rodando no destino (ou pelo menos tenta, já que vários fatores podem impedir a detecção).
└─$ sudo nmap -O scanme.nmap.org
Starting Nmap 7.93 ( https://nmap.org ) at 2023-03-13 14:28 EDT
Nmap scan report for scanme.nmap.org (45.33.32.156)
Host is up (0.20s latency).
Other addresses for scanme.nmap.org (not scanned): 2600:3c01::f03c:91ff:fe18:bb2f
Not shown: 994 closed tcp ports (reset)
PORT STATE SERVICE
19/tcp filtered chargen
22/tcp open ssh
25/tcp filtered smtp
80/tcp open http
9929/tcp open nping-echo
31337/tcp open Elite
Aggressive OS guesses: Linux 5.0 (95%), Linux 5.0 – 5.4 (95%), Linux 5.4 (94%), HP P2000 G3 NAS device (93%), Linux 4.15 – 5.6 (93%), Linux 5.3 – 5.4 (93%), Linux 2.6.32 (92%), OpenWrt 12.09-rc1 Attitude Adjustment (Linux 3.3 – 3.7) (92%), Linux 5.0 – 5.3 (92%), Linux 5.1 (92%)
No exact OS matches for host (test conditions non-ideal).
Network Distance: 21 hopsOS detection performed. Please report any incorrect results at https://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 20.21 seconds
-oN (Salvar o output em um arquivo): Podemos adicionar esta opção para salvar o output em um arquivo.
─$ sudo nmap -sS -p 22 192.168.15.1 -oN nmap_output.txt
Starting Nmap 7.93 ( https://nmap.org ) at 2023-03-13 14:36 EDT
Nmap scan report for 192.168.15.1
Host is up (0.0067s latency).PORT STATE SERVICE
22/tcp open ssh
MAC Address: 10:72:23:5E:70:33 (Tellescom Industria E Comercio EM Telecomunicacao)Nmap done: 1 IP address (1 host up) scanned in 0.22 seconds
└─$ ls -lh
total 40K
drwxr-xr-x 2 helpdesk helpdesk 4.0K Mar 8 13:50 Desktop
drwxr-xr-x 2 helpdesk helpdesk 4.0K Mar 2 12:23 Documents
drwxr-xr-x 2 helpdesk helpdesk 4.0K Mar 2 12:23 Downloads
drwxr-xr-x 2 helpdesk helpdesk 4.0K Mar 2 12:23 Music
-rw-r–r– 1 root root 383 Mar 13 14:36 nmap_output.txt
-T (Define o template de timeout): Com esta opção (de 0 a 5, sendo 0 o mais lento, 3 o padrão e 5 o mais agressivo) podemos definir como o Nmap vai se comportar. Se usar 0 ou 1 vai aumentar as chances de um IPS não detectar a varredura. Por outro lado o scan vai demorar mais.
-h (Help!!): Para ver outras opções disponíveis use o -h.
O Nmap ainda conta com outras de opções scan e de parametrização, que fazem o processo ser mais rápido e/ou mais discretos, e também opções que vão além da verificação de portas.
Mais informações sobre o Nmap no site oficial.
Até a próxima.
[…] Nmap é bastante conhecido por mapear redes e identificar portas abertas/fechadas (veja neste post), mas não se limita a isso. Ele pode ser utilizado para verificar quais cifras TLS (normalmente […]