Introdução
O Nmap (Network Mapper) é uma ferramenta fundamental em segurança e administração de redes. Este laboratório apresenta as flags de varredura do Nmap, que permitem realizar reconhecimento de rede e avaliação de vulnerabilidades de forma eficaz. Através da prática, você aprenderá a usar vários comandos do Nmap para descobrir hosts, varrer portas e identificar serviços em uma rede. Essas habilidades são essenciais para administradores de rede e profissionais de segurança manterem ambientes de rede seguros.
Instalação do Nmap e Varredura Básica
Instalando o Nmap
O Nmap não vem pré-instalado na maioria dos sistemas, então nosso primeiro passo é instalá-lo. Abra um terminal no seu ambiente LabEx e execute os seguintes comandos:
sudo apt update
sudo apt install nmap -y
Após a conclusão da instalação, verifique se o Nmap foi instalado corretamente, verificando sua versão:
nmap --version
Você deve ver uma saída semelhante a esta:
Nmap version 7.80 ( https://nmap.org )
Platform: x86_64-pc-linux-gnu
Compiled with: liblua-5.3.3 openssl-1.1.1f libssh2-1.8.0 libz-1.2.11 libpcre-8.39 libpcap-1.9.1 nmap-libdnet-1.12 ipv6
Compiled without:
Available nsock engines: epoll poll select
Entendendo os Fundamentos do Nmap
O Nmap funciona enviando pacotes especialmente criados para hosts-alvo e analisando as respostas. Isso ajuda a determinar:
- Quais hosts estão disponíveis na rede
- Quais serviços (portas) eles estão oferecendo
- Quais sistemas operacionais eles estão executando
- Que tipo de filtros de pacotes/firewalls estão em uso
A sintaxe básica de um comando Nmap é:
nmap [tipo de varredura] [opções] alvo
Onde:
[tipo de varredura]especifica o tipo de varredura a ser executada[opções]são parâmetros adicionais para personalizar a varreduraalvoé o endereço IP, nome do host ou intervalo de IP a ser varrido
Sua Primeira Varredura: Varrendo o Localhost
Vamos começar com uma varredura simples da sua própria máquina (localhost). Execute:
nmap localhost
Este comando varre as 1000 portas TCP mais comuns na sua máquina local. A saída será semelhante a:
Starting Nmap 7.80 ( https://nmap.org ) at 2023-09-14 15:30 UTC
Nmap scan report for localhost (127.0.0.1)
Host is up (0.00010s latency).
Not shown: 996 closed ports
PORT STATE SERVICE
22/tcp open ssh
80/tcp open http
631/tcp open ipp
3306/tcp open mysql
Nmap done: 1 IP address (1 host up) scanned in 0.11 seconds
A saída mostra:
- A hora de início da varredura
- O host sendo varrido (localhost/127.0.0.1)
- Portas abertas e seus serviços associados
- Tempo de conclusão da varredura e estatísticas
Entendendo os Resultados da Varredura
Vamos analisar a saída:
PORT: Mostra o número da porta e o protocolo (por exemplo, 22/tcp)STATE: Indica se a porta está aberta, fechada ou filtradaSERVICE: Mostra o serviço tipicamente associado a essa porta
Os estados de porta mais comuns são:
open: A porta está aceitando conexõesclosed: A porta está acessível, mas nenhuma aplicação está ouvindo nelafiltered: O Nmap não pode determinar se a porta está aberta porque a filtragem de pacotes está bloqueando suas sondas
Varrendo uma Porta Específica
Para varrer uma porta específica, use a flag -p seguida pelo número da porta:
nmap -p 22 localhost
A saída será focada apenas na porta 22:
Starting Nmap 7.80 ( https://nmap.org ) at 2023-09-14 15:35 UTC
Nmap scan report for localhost (127.0.0.1)
Host is up (0.00013s latency).
PORT STATE SERVICE
22/tcp open ssh
Nmap done: 1 IP address (1 host up) scanned in 0.01 seconds
Varrendo um Intervalo de Portas
Você pode varrer um intervalo de portas usando um hífen:
nmap -p 20-25 localhost
Isso varre as portas 20 a 25:
Starting Nmap 7.80 ( https://nmap.org ) at 2023-09-14 15:40 UTC
Nmap scan report for localhost (127.0.0.1)
Host is up (0.00012s latency).
PORT 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 closed smtp
Nmap done: 1 IP address (1 host up) scanned in 0.03 seconds
Agora você aprendeu como instalar o Nmap e realizar varreduras básicas de portas. No próximo passo, exploraremos técnicas de varredura mais avançadas usando várias flags do Nmap.
Explorando as Flags Essenciais de Varredura do Nmap
Agora que você entende os conceitos básicos do Nmap, vamos explorar algumas flags de varredura essenciais que lhe darão mais controle e informações de suas varreduras.
Varredura TCP SYN (-sS)
A varredura TCP SYN é o tipo de varredura padrão quando executada como root. É frequentemente chamada de varredura "half-open" (meio aberta) porque nunca completa as conexões TCP. É relativamente furtiva e rápida.
Vamos executar uma varredura SYN no localhost:
sudo nmap -sS localhost
A saída será semelhante a:
Starting Nmap 7.80 ( https://nmap.org ) at 2023-09-14 16:00 UTC
Nmap scan report for localhost (127.0.0.1)
Host is up (0.00011s latency).
Not shown: 996 closed ports
PORT STATE SERVICE
22/tcp open ssh
80/tcp open http
631/tcp open ipp
3306/tcp open mysql
Nmap done: 1 IP address (1 host up) scanned in 0.10 seconds
Varredura TCP Connect (-sT)
A varredura TCP Connect é a varredura padrão quando o Nmap não é executado com privilégios de root. Ela completa o handshake TCP completo, tornando-a mais detectável, mas também mais confiável em alguns casos.
nmap -sT localhost
Saída:
Starting Nmap 7.80 ( https://nmap.org ) at 2023-09-14 16:05 UTC
Nmap scan report for localhost (127.0.0.1)
Host is up (0.00014s latency).
Not shown: 996 closed ports
PORT STATE SERVICE
22/tcp open ssh
80/tcp open http
631/tcp open ipp
3306/tcp open mysql
Nmap done: 1 IP address (1 host up) scanned in 0.15 seconds
Detecção de Versão do Serviço (-sV)
A flag de detecção de versão diz ao Nmap para tentar determinar a versão dos serviços em execução nas portas abertas:
nmap -sV localhost
Saída:
Starting Nmap 7.80 ( https://nmap.org ) at 2023-09-14 16:10 UTC
Nmap scan report for localhost (127.0.0.1)
Host is up (0.00012s latency).
Not shown: 996 closed ports
PORT STATE SERVICE VERSION
22/tcp open ssh OpenSSH 8.2p1 Ubuntu 4ubuntu0.5 (Ubuntu Linux; protocol 2.0)
80/tcp open http Apache httpd 2.4.41 ((Ubuntu))
631/tcp open ipp CUPS 2.3
3306/tcp open mysql MySQL 8.0.30-0ubuntu0.20.04.2
Service Info: OS: Linux; CPE: cpe:/o:linux:linux_kernel
Nmap done: 1 IP address (1 host up) scanned in 6.41 seconds
Observe como a saída agora inclui informações detalhadas da versão para cada serviço. Isso é extremamente valioso para avaliações de segurança, pois certas versões podem ter vulnerabilidades conhecidas.
Detecção de SO (-O)
A flag de detecção de SO tenta determinar o sistema operacional do alvo:
sudo nmap -O localhost
Saída:
Starting Nmap 7.80 ( https://nmap.org ) at 2023-09-14 16:15 UTC
Nmap scan report for localhost (127.0.0.1)
Host is up (0.00011s latency).
Not shown: 996 closed ports
PORT STATE SERVICE
22/tcp open ssh
80/tcp open http
631/tcp open ipp
3306/tcp open mysql
Device type: general purpose
Running: Linux 4.X|5.X
OS CPE: cpe:/o:linux:linux_kernel:4 cpe:/o:linux:linux_kernel:5
OS details: Linux 4.15 - 5.6
Network Distance: 0 hops
OS detection performed. Please report any incorrect results at https://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 1.57 seconds
Observe que o Nmap detectou que o sistema está executando a versão do kernel Linux 4.X ou 5.X.
Combinando Flags para Varredura Abrangente
Você pode combinar várias flags para obter resultados mais abrangentes. Por exemplo, vamos combinar a detecção de versão do serviço e a detecção de SO:
sudo nmap -sV -O localhost
Saída:
Starting Nmap 7.80 ( https://nmap.org ) at 2023-09-14 16:20 UTC
Nmap scan report for localhost (127.0.0.1)
Host is up (0.00015s latency).
Not shown: 996 closed ports
PORT STATE SERVICE VERSION
22/tcp open ssh OpenSSH 8.2p1 Ubuntu 4ubuntu0.5 (Ubuntu Linux; protocol 2.0)
80/tcp open http Apache httpd 2.4.41 ((Ubuntu))
631/tcp open ipp CUPS 2.3
3306/tcp open mysql MySQL 8.0.30-0ubuntu0.20.04.2
Device type: general purpose
Running: Linux 4.X|5.X
OS CPE: cpe:/o:linux:linux_kernel:4 cpe:/o:linux:linux_kernel:5
OS details: Linux 4.15 - 5.6
Network Distance: 0 hops
Service Info: OS: Linux; CPE: cpe:/o:linux:linux_kernel
OS and Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 7.23 seconds
Varredura Agressiva (-A)
A flag de varredura agressiva combina várias opções de varredura, incluindo detecção de SO, detecção de versão, varredura de script e traceroute:
sudo nmap -A localhost
Saída (truncada para brevidade):
Starting Nmap 7.80 ( https://nmap.org ) at 2023-09-14 16:25 UTC
Nmap scan report for localhost (127.0.0.1)
Host is up (0.00014s latency).
Not shown: 996 closed ports
PORT STATE SERVICE VERSION
22/tcp open ssh OpenSSH 8.2p1 Ubuntu 4ubuntu0.5 (Ubuntu Linux; protocol 2.0)
| ssh-hostkey:
| 3072 e2:5d:9c:5c:62:42:44:cd:fc:31:e0:a6:18:11:69:1c (RSA)
| 256 7d:95:f0:2f:7a:95:3a:4d:f3:52:ef:6f:6b:af:01:71 (ECDSA)
|_ 256 90:12:20:de:cb:c0:76:3a:fb:15:db:75:4e:78:fc:d7 (ED25519)
80/tcp open http Apache httpd 2.4.41 ((Ubuntu))
|_http-server-header: Apache/2.4.41 (Ubuntu)
|_http-title: Apache2 Ubuntu Default Page: It works
631/tcp open ipp CUPS 2.3
|_http-server-header: CUPS/2.3 IPP/2.1
|_http-title: Home - CUPS 2.3.1
3306/tcp open mysql MySQL 8.0.30-0ubuntu0.20.04.2
| mysql-info:
| Protocol: 10
| Version: 8.0.30-0ubuntu0.20.04.2
| Thread ID: 11
| Capabilities flags: 65535
| Some Capabilities: SupportsLoadDataLocal, Support41Auth, Speaks41ProtocolOld, IgnoreSigpipes, DontAllowDatabaseTableColumn, FoundRows, SupportsCompression, ConnectWithDatabase, LongPassword, InteractiveClient, SwitchToSSLAfterHandshake, ODBCClient, Speaks41ProtocolNew, IgnoreSpaceBeforeParenthesis, LongColumnFlag, SupportsTransactions, SupportsMultipleResults, SupportsAuthPlugins, SupportsMultipleStatments
| Status: Autocommit
| Salt: \x14\x12\x1Fjw\x182\x15\x0D\x12\x13C\x1F\x14\x0D\x07
|_ Auth Plugin Name: caching_sha2_password
Device type: general purpose
Running: Linux 4.X|5.X
OS CPE: cpe:/o:linux:linux_kernel:4 cpe:/o:linux:linux_kernel:5
OS details: Linux 4.15 - 5.6
Network Distance: 0 hops
OS and Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 10.12 seconds
Observe a quantidade significativa de informações adicionais fornecidas pela varredura agressiva, incluindo informações da chave SSH, detalhes do servidor HTTP e informações de serviço MySQL mais detalhadas.
Nesta etapa, você aprendeu sobre várias flags essenciais de varredura do Nmap e como combiná-las para obter resultados mais abrangentes. Na próxima etapa, exploraremos estratégias práticas de varredura para diferentes cenários.
Estratégias de Varredura de Rede e Controles de Tempo
Nesta etapa, aprenderemos sobre estratégias de varredura de rede e como controlar o tempo e o desempenho das varreduras do Nmap. Isso é crucial ao varrer redes maiores ou quando você precisa ser mais discreto.
Varrendo Vários Hosts
O Nmap pode varrer vários hosts de várias maneiras:
Varrendo uma Lista de IPs
Você pode especificar vários endereços IP separados por espaços:
nmap 127.0.0.1 127.0.0.2
Varrendo um Intervalo de IPs
Você pode varrer um intervalo de endereços IP usando a notação CIDR:
nmap 127.0.0.1/30
Este comando varre de 127.0.0.0 a 127.0.0.3. A saída mostrará:
Starting Nmap 7.80 ( https://nmap.org ) at 2023-09-14 16:35 UTC
Nmap scan report for localhost (127.0.0.1)
Host is up (0.00013s latency).
Not shown: 996 closed ports
PORT STATE SERVICE
22/tcp open ssh
80/tcp open http
631/tcp open ipp
3306/tcp open mysql
Nmap scan report for 127.0.0.2
Host is up (0.00015s latency).
All 1000 scanned ports on 127.0.0.2 are closed
Nmap scan report for 127.0.0.3
Host is up (0.00013s latency).
All 1000 scanned ports on 127.0.0.3 are closed
Nmap done: 4 IP addresses (3 hosts up) scanned in 0.92 seconds
Opções de Descoberta de Host
Varredura Ping (-sn)
Às vezes, você só quer saber quais hosts estão online sem varrer portas. A varredura ping é perfeita para isso:
nmap -sn 127.0.0.1/24
Este comando varrerá toda a sub-rede 127.0.0.1/24, mas só executará a descoberta de host sem varredura de portas. Devido ao comprimento da saída, mostraremos apenas um trecho:
Starting Nmap 7.80 ( https://nmap.org ) at 2023-09-14 16:40 UTC
Nmap scan report for localhost (127.0.0.1)
Host is up (0.00011s latency).
Nmap scan report for 127.0.0.2
Host is up (0.00013s latency).
Nmap scan report for 127.0.0.3
Host is up (0.00014s latency).
...
Nmap done: 256 IP addresses (256 hosts up) scanned in 2.34 seconds
Ignorando a Descoberta de Host (-Pn)
Às vezes, firewalls bloqueiam solicitações ping. Para ignorar isso e varrer todos os hosts, independentemente das respostas ping, use a flag -Pn:
nmap -Pn localhost
Saída:
Starting Nmap 7.80 ( https://nmap.org ) at 2023-09-14 16:45 UTC
Nmap scan report for localhost (127.0.0.1)
Host is up (0.00012s latency).
Not shown: 996 closed ports
PORT STATE SERVICE
22/tcp open ssh
80/tcp open http
631/tcp open ipp
3306/tcp open mysql
Nmap done: 1 IP address (1 host up) scanned in 0.12 seconds
Controles de Tempo e Desempenho
O Nmap fornece vários modelos de tempo que ajustam vários parâmetros de varredura:
-T0: Paranoid - Muito lento, usado para evasão de IDS-T1: Sneaky - Lento, usado para evasão de IDS-T2: Polite - Reduz a velocidade para consumir menos largura de banda-T3: Normal - Padrão, equilibra velocidade com confiabilidade-T4: Aggressive - Mais rápido, assume uma rede razoavelmente rápida e confiável-T5: Insane - Muito rápido, assume uma rede extremamente rápida
Vamos tentar uma varredura agressiva:
nmap -T4 localhost
Saída:
Starting Nmap 7.80 ( https://nmap.org ) at 2023-09-14 16:50 UTC
Nmap scan report for localhost (127.0.0.1)
Host is up (0.00011s latency).
Not shown: 996 closed ports
PORT STATE SERVICE
22/tcp open ssh
80/tcp open http
631/tcp open ipp
3306/tcp open mysql
Nmap done: 1 IP address (1 host up) scanned in 0.09 seconds
Observe que a varredura foi concluída um pouco mais rápido do que a varredura padrão.
Formatos de Saída
O Nmap pode salvar os resultados da varredura em vários formatos para análise ou relatório posterior:
Saída Normal (-oN)
Salve os resultados da varredura em um formato normal em um arquivo:
nmap -oN scan_results.txt localhost
Este comando salva a saída da varredura em scan_results.txt no diretório atual.
Saída XML (-oX)
Salve os resultados da varredura em formato XML, o que é útil para análise com outras ferramentas:
nmap -oX scan_results.xml localhost
Todos os Formatos (-oA)
Salve os resultados da varredura em todos os formatos (normal, XML e grepable):
nmap -oA scan_results localhost
Isso cria três arquivos: scan_results.nmap, scan_results.xml e scan_results.gnmap.
Vamos examinar o conteúdo do arquivo de saída normal:
cat scan_results.txt
Saída:
## Nmap 7.80 scan initiated Thu Sep 14 16:55:23 2023 as: nmap -oN scan_results.txt localhost
Nmap scan report for localhost (127.0.0.1)
Host is up (0.00013s latency).
Not shown: 996 closed ports
PORT STATE SERVICE
22/tcp open ssh
80/tcp open http
631/tcp open ipp
3306/tcp open mysql
## Nmap done at Thu Sep 14 16:55:23 2023 -- 1 IP address (1 host up) scanned in 0.12 seconds
Estratégia Prática de Varredura
Vamos combinar o que aprendemos para criar uma estratégia de varredura prática para uma varredura abrangente:
sudo nmap -sS -sV -O -T4 -oA comprehensive_scan localhost
Este comando:
- Usa varredura furtiva SYN (-sS)
- Detecta versões de serviço (-sV)
- Tenta a detecção de SO (-O)
- Usa tempo agressivo (-T4)
- Salva os resultados em todos os formatos (-oA)
Saída:
Starting Nmap 7.80 ( https://nmap.org ) at 2023-09-14 17:00 UTC
Nmap scan report for localhost (127.0.0.1)
Host is up (0.00012s latency).
Not shown: 996 closed ports
PORT STATE SERVICE VERSION
22/tcp open ssh OpenSSH 8.2p1 Ubuntu 4ubuntu0.5 (Ubuntu Linux; protocol 2.0)
80/tcp open http Apache httpd 2.4.41 ((Ubuntu))
631/tcp open ipp CUPS 2.3
3306/tcp open mysql MySQL 8.0.30-0ubuntu0.20.04.2
Device type: general purpose
Running: Linux 4.X|5.X
OS CPE: cpe:/o:linux:linux_kernel:4 cpe:/o:linux:linux_kernel:5
OS details: Linux 4.15 - 5.6
Network Distance: 0 hops
Service Info: OS: Linux; CPE: cpe:/o:linux:linux_kernel
OS and Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 7.42 seconds
Agora você pode visualizar os resultados da varredura abrangente em qualquer um dos arquivos de saída:
ls comprehensive_scan.*
Saída:
comprehensive_scan.gnmap comprehensive_scan.nmap comprehensive_scan.xml
Considerações Éticas
Lembre-se de que a varredura de rede só deve ser realizada em redes que você possui ou para as quais tem permissão explícita para varrer. A varredura não autorizada pode ser:
- Ilegal em muitas jurisdições
- Considerada um ato hostil pelos administradores de rede
- Potencialmente disruptiva para os serviços de rede
Neste ambiente de laboratório, só varremos o localhost, o que é sempre permitido, pois é seu próprio sistema.
Você agora aprendeu sobre diferentes estratégias de varredura de rede, controles de tempo e formatos de saída. Você tem todo o conhecimento fundamental necessário para realizar o reconhecimento de rede eficaz usando o Nmap.
Varredura de Script e Análise de Serviço Direcionada
Nesta etapa, exploraremos o poderoso mecanismo de script (NSE) do Nmap e aprenderemos como realizar análises de serviço direcionadas. Os scripts NSE estendem a funcionalidade do Nmap, permitindo varreduras mais detalhadas para serviços e vulnerabilidades específicas.
Introdução ao Nmap Scripting Engine (NSE)
O Nmap Scripting Engine permite que os usuários escrevam e compartilhem scripts para automatizar uma variedade de tarefas de rede. O Nmap vem com centenas de scripts pré-escritos categorizados em vários grupos:
auth: Scripts relacionados à autenticaçãodefault: Scripts executados por padrão com-sCdiscovery: Descoberta de host e serviçoexploit: Tentativa de explorar vulnerabilidadesmalware: Detectar malware e backdoorssafe: Scripts seguros e não intrusivosvuln: Scripts de detecção de vulnerabilidade
Executando Scripts Padrão (-sC)
A flag -sC executa o conjunto padrão de scripts, que geralmente são seguros e fornecem informações úteis:
nmap -sC localhost
Saída:
Starting Nmap 7.80 ( https://nmap.org ) at 2023-09-14 17:10 UTC
Nmap scan report for localhost (127.0.0.1)
Host is up (0.00012s latency).
Not shown: 996 closed ports
PORT STATE SERVICE
22/tcp open ssh
| ssh-hostkey:
| 3072 e2:5d:9c:5c:62:42:44:cd:fc:31:e0:a6:18:11:69:1c (RSA)
| 256 7d:95:f0:2f:7a:95:3a:4d:f3:52:ef:6f:6b:af:01:71 (ECDSA)
|_ 256 90:12:20:de:cb:c0:76:3a:fb:15:db:75:4e:78:fc:d7 (ED25519)
80/tcp open http
|_http-title: Apache2 Ubuntu Default Page: It works
631/tcp open ipp
|_http-server-header: CUPS/2.3 IPP/2.1
|_http-title: Home - CUPS 2.3.1
3306/tcp open mysql
|_mysql-info: ERROR: Script execution failed (use -d to debug)
Nmap done: 1 IP address (1 host up) scanned in 3.42 seconds
Observe como os scripts forneceram informações adicionais sobre cada serviço, como chaves de host SSH e títulos de página HTTP.
Executando Scripts Específicos
Você pode executar scripts específicos usando a flag --script seguida pelo nome ou categoria do script:
nmap --script=http-title localhost
Isso executa apenas o script http-title, que recupera o título das páginas HTTP:
Starting Nmap 7.80 ( https://nmap.org ) at 2023-09-14 17:15 UTC
Nmap scan report for localhost (127.0.0.1)
Host is up (0.00013s latency).
Not shown: 996 closed ports
PORT STATE SERVICE
22/tcp open ssh
80/tcp open http
|_http-title: Apache2 Ubuntu Default Page: It works
631/tcp open ipp
|_http-title: Home - CUPS 2.3.1
3306/tcp open mysql
Nmap done: 1 IP address (1 host up) scanned in 0.68 seconds
Executando Scripts por Categoria
Você pode executar todos os scripts em uma categoria específica:
nmap --script=discovery localhost
Isso executa todos os scripts de descoberta, que podem fornecer uma grande quantidade de informações sobre os serviços de rede (saída truncada para brevidade):
Starting Nmap 7.80 ( https://nmap.org ) at 2023-09-14 17:20 UTC
Nmap scan report for localhost (127.0.0.1)
Host is up (0.00014s latency).
Not shown: 996 closed ports
PORT STATE SERVICE
22/tcp open ssh
| ssh-hostkey:
| 3072 e2:5d:9c:5c:62:42:44:cd:fc:31:e0:a6:18:11:69:1c (RSA)
| 256 7d:95:f0:2f:7a:95:3a:4d:f3:52:ef:6f:6b:af:01:71 (ECDSA)
|_ 256 90:12:20:de:cb:c0:76:3a:fb:15:db:75:4e:78:fc:d7 (ED25519)
80/tcp open http
|_http-favicon: Unknown favicon MD5: 6D33949773573A11BEBE0D20AC1B7967
| http-methods:
|_ Supported Methods: GET POST OPTIONS HEAD
|_http-title: Apache2 Ubuntu Default Page: It works
631/tcp open ipp
| cups-info:
| CUPS Server:
| Server: CUPS/2.3 IPP/2.1
|_ Authentication-Method: Basic
| http-methods:
|_ Supported Methods: GET HEAD OPTIONS POST
|_http-server-header: CUPS/2.3 IPP/2.1
|_http-title: Home - CUPS 2.3.1
3306/tcp open mysql
| mysql-info:
| Protocol: 10
| Version: 8.0.30-0ubuntu0.20.04.2
| Thread ID: 15
| Capabilities flags: 65535
| Some Capabilities: ConnectWithDatabase, SupportsLoadDataLocal, SupportsTransactions, DontAllowDatabaseTableColumn, Support41Auth, InteractiveClient, Speaks41ProtocolOld, FoundRows, IgnoreSigpipes, ODBCClient, SwitchToSSLAfterHandshake, IgnoreSpaceBeforeParenthesis, LongColumnFlag, Speaks41ProtocolNew, SupportsMultipleStatments, LongPassword, SupportsCompression, SupportsMultipleResults, SupportsAuthPlugins
| Status: Autocommit
| Salt: \x7FeL)\x0C\x5C#S\x06N%\x1E\x7EYaC
|_ Auth Plugin Name: caching_sha2_password
Nmap done: 1 IP address (1 host up) scanned in 5.28 seconds
Combinando Varredura de Script com Detecção de Serviço
Para obter os resultados mais abrangentes, combine a varredura de script com a detecção de serviço:
nmap -sV -sC localhost
Saída:
Starting Nmap 7.80 ( https://nmap.org ) at 2023-09-14 17:25 UTC
Nmap scan report for localhost (127.0.0.1)
Host is up (0.00012s latency).
Not shown: 996 closed ports
PORT STATE SERVICE VERSION
22/tcp open ssh OpenSSH 8.2p1 Ubuntu 4ubuntu0.5 (Ubuntu Linux; protocol 2.0)
| ssh-hostkey:
| 3072 e2:5d:9c:5c:62:42:44:cd:fc:31:e0:a6:18:11:69:1c (RSA)
| 256 7d:95:f0:2f:7a:95:3a:4d:f3:52:ef:6f:6b:af:01:71 (ECDSA)
|_ 256 90:12:20:de:cb:c0:76:3a:fb:15:db:75:4e:78:fc:d7 (ED25519)
80/tcp open http Apache httpd 2.4.41 ((Ubuntu))
|_http-server-header: Apache/2.4.41 (Ubuntu)
|_http-title: Apache2 Ubuntu Default Page: It works
631/tcp open ipp CUPS 2.3
|_http-server-header: CUPS/2.3 IPP/2.1
|_http-title: Home - CUPS 2.3.1
3306/tcp open mysql MySQL 8.0.30-0ubuntu0.20.04.2
|_mysql-info: ERROR: Script execution failed (use -d to debug)
Service Info: OS: Linux; CPE: cpe:/o:linux:linux_kernel
Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 9.03 seconds
Análise de Serviço Direcionada
Vamos nos concentrar em analisar serviços específicos com mais detalhes.
Analisando Serviços HTTP
Para analisar serviços HTTP em detalhes, podemos usar os scripts http-*:
nmap --script="http-*" -p 80 localhost
Isso executa todos os scripts relacionados a HTTP na porta 80:
Starting Nmap 7.80 ( https://nmap.org ) at 2023-09-14 17:30 UTC
Nmap scan report for localhost (127.0.0.1)
Host is up (0.00012s latency).
PORT STATE SERVICE
80/tcp open http
|_http-chrono: Request times for /; avg: 32.68ms; min: 32.68ms; max: 32.68ms
|_http-comments-displayer: Couldn't find any comments.
|_http-date: Thu, 14 Sep 2023 17:30:24 GMT; +6s from local time.
|_http-devframework: Couldn't determine the underlying framework or CMS. Try increasing 'httpspider.maxpagecount' value to spider more pages.
|_http-dombased-xss: Couldn't find any DOM based XSS.
|_http-favicon: Unknown favicon MD5: 6D33949773573A11BEBE0D20AC1B7967
|_http-feed: Couldn't find any feeds.
|_http-fetch: Please enter the complete path of the directory to save data in.
|_http-generator: Couldn't find any generator in the HTML headers and body
| http-methods:
|_ Supported Methods: GET POST OPTIONS HEAD
|_http-mobileversion-checker: No mobile version detected.
|_http-referer-checker: Couldn't find any cross-domain scripts.
|_http-security-headers:
| http-server-header:
| Apache/2.4.41
|_ Apache/2.4.41 (Ubuntu)
|_http-title: Apache2 Ubuntu Default Page: It works
|_http-traceroute: ERROR: Script execution failed (use -d to debug)
|_http-useragent-tester:
|_http-xssed: No previously reported XSS vuln.
Nmap done: 1 IP address (1 host up) scanned in 2.31 seconds
Analisando Serviços SSH
Da mesma forma, podemos analisar serviços SSH:
nmap --script="ssh-*" -p 22 localhost
Saída:
Starting Nmap 7.80 ( https://nmap.org ) at 2023-09-14 17:35 UTC
Nmap scan report for localhost (127.0.0.1)
Host is up (0.00013s latency).
PORT STATE SERVICE
22/tcp open ssh
| ssh-hostkey:
| 3072 e2:5d:9c:5c:62:42:44:cd:fc:31:e0:a6:18:11:69:1c (RSA)
| 256 7d:95:f0:2f:7a:95:3a:4d:f3:52:ef:6f:6b:af:01:71 (ECDSA)
|_ 256 90:12:20:de:cb:c0:76:3a:fb:15:db:75:4e:78:fc:d7 (ED25519)
|_ssh-run: ERROR: Script execution failed (use -d to debug)
Nmap done: 1 IP address (1 host up) scanned in 0.26 seconds
Varredura de Vulnerabilidade
O Nmap inclui scripts que podem detectar potenciais vulnerabilidades. Usar a categoria vuln pode ajudar a identificar problemas de segurança:
nmap --script=vuln localhost
Isso pode levar algum tempo, pois executa várias verificações de vulnerabilidade. A saída pode ser semelhante a:
Starting Nmap 7.80 ( https://nmap.org ) at 2023-09-14 17:40 UTC
Nmap scan report for localhost (127.0.0.1)
Host is up (0.00012s latency).
Not shown: 996 closed ports
PORT STATE SERVICE
22/tcp open ssh
80/tcp open http
|_http-csrf: Couldn't find any CSRF vulnerabilities.
|_http-dombased-xss: Couldn't find any DOM based XSS.
| http-slowloris-check:
| VULNERABLE:
| Slowloris DOS attack
| State: LIKELY VULNERABLE
| IDs: CVE:CVE-2007-6750
| Slowloris tries to keep many connections to the target web server open and hold
| them open as long as possible. It accomplishes this by opening connections to
| the target web server and sending a partial request. By doing so, it starves
| the http server's resources causing Denial Of Service.
|
| Disclosure date: 2009-09-17
| References:
| https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2007-6750
|_ http://ha.ckers.org/slowloris/
|_http-stored-xss: Couldn't find any stored XSS vulnerabilities.
631/tcp open ipp
3306/tcp open mysql
Nmap done: 1 IP address (1 host up) scanned in 87.28 seconds
Neste caso, o Nmap identificou que o servidor web Apache pode ser vulnerável a um ataque Slowloris DoS. Essa informação pode ser valiosa para proteger seus sistemas.
Criando um Relatório de Varredura Abrangente
Agora, vamos combinar tudo o que aprendemos para criar um relatório de segurança abrangente:
sudo nmap -sS -sV -O -sC --script=vuln -T4 -oA comprehensive_security_report localhost
Este comando:
- Usa varredura furtiva SYN (-sS)
- Detecta versões de serviço (-sV)
- Tenta a detecção de SO (-O)
- Executa scripts padrão (-sC)
- Executa scripts de detecção de vulnerabilidade (--script=vuln)
- Usa tempo agressivo (-T4)
- Salva os resultados em todos os formatos (-oA)
A saída será abrangente e pode levar algum tempo para ser concluída. Depois de concluído, você terá um relatório de segurança detalhado em vários formatos (normal, XML e grepable) que você pode consultar para análise de segurança.
Nesta etapa, você aprendeu como usar o mecanismo de script do Nmap para reunir informações detalhadas sobre serviços e detectar potenciais vulnerabilidades. Essas técnicas avançadas são essenciais para avaliações abrangentes de segurança de rede.
Resumo
Neste laboratório, você aprendeu os fundamentos do uso do Nmap para reconhecimento de rede e avaliação de segurança. Agora você entende:
- Como instalar o Nmap e realizar a varredura básica de hosts e portas
- Como usar as flags de varredura essenciais do Nmap para diferentes tipos de varreduras
- Como implementar estratégias de varredura eficazes e controlar os parâmetros de tempo
- Como aproveitar o Nmap Scripting Engine para análise detalhada de serviços e detecção de vulnerabilidades
Essas habilidades formam uma base para avaliações de segurança de rede e são essenciais para profissionais de segurança cibernética. Lembre-se de sempre usar essas técnicas de forma responsável e apenas em redes que você tem permissão para varrer.
À medida que você continua sua jornada de segurança cibernética, considere explorar recursos mais avançados do Nmap, como o desenvolvimento de scripts NSE personalizados, técnicas de evasão de firewall e integração com outras ferramentas de segurança. A prática regular com o Nmap o ajudará a se tornar mais proficiente na identificação de possíveis problemas de segurança em ambientes de rede.



