Neste laboratório, você aprenderá sobre a instalação e o uso básico do Nmap, uma poderosa ferramenta de varredura de rede e auditoria de segurança. Nmap, também conhecido como Network Mapper, é um utilitário de código aberto amplamente utilizado por administradores de sistemas e especialistas em segurança para encontrar hosts, serviços e vulnerabilidades em uma rede.
Este laboratório irá guiá-lo através da instalação do Nmap, da configuração de um serviço local para varredura e da execução de varreduras básicas para entender as capacidades do Nmap.
Este é um Lab Guiado, que fornece instruções passo a passo para ajudá-lo a aprender e praticar. Siga as instruções cuidadosamente para completar cada etapa e ganhar experiência prática. Dados históricos mostram que este é um laboratório de nível intermediário com uma taxa de conclusão de 60%. Recebeu uma taxa de avaliações positivas de 98% dos estudantes.
Instalando o Nmap
Nesta etapa, vamos guiá-lo através do processo de instalação do Nmap em seu sistema Ubuntu Linux. Nmap é uma poderosa ferramenta de varredura de rede que é amplamente utilizada em segurança cibernética para tarefas como descoberta de rede e auditoria de segurança. Ele está disponível nos repositórios padrão do Ubuntu, o que significa que o processo de instalação é bastante simples.
Primeiro, você precisa abrir seu terminal. O terminal é uma interface baseada em texto que permite que você interaja com seu sistema digitando comandos. Por padrão, você deve estar no diretório /home/labex/project. Se você não estiver neste diretório, você pode navegar até lá usando o seguinte comando. Este comando altera seu diretório de trabalho atual para /home/labex/project.
cd /home/labex/project
Agora que você está no diretório correto, é hora de atualizar a lista de pacotes e instalar o Nmap. A lista de pacotes contém informações sobre todo o software disponível nos repositórios do Ubuntu. Atualizá-la garante que você esteja obtendo a versão mais recente do Nmap.
sudo apt update
sudo apt install nmap -y
O comando sudo é usado para executar comandos com privilégios administrativos. Como a instalação de software requer acesso administrativo, você precisa usar sudo. A flag -y é usada com o comando apt install. Ele responde automaticamente "sim" a quaisquer prompts durante o processo de instalação, para que você não precise confirmar manualmente cada etapa.
Após a conclusão da instalação, é importante verificar se o Nmap foi instalado corretamente. Você pode fazer isso verificando sua versão. A opção --version para o comando nmap exibe as informações da versão do Nmap.
nmap --version
Você deve ver uma saída semelhante a esta (observe que sua versão pode ser diferente):
Esta saída confirma que o Nmap está instalado em seu sistema. Ele também fornece informações sobre a versão do Nmap e as opções de compilação usadas, o que pode ser útil para solucionar problemas ou entender as capacidades do seu Nmap instalado.
Configurando um Serviço Local para Varredura
Antes de começarmos a usar o Nmap para varredura, é essencial ter um serviço de destino em execução. Dessa forma, podemos testar as capacidades de varredura do Nmap de forma eficaz. Nesta etapa, configuraremos um servidor HTTP simples usando o módulo http.server embutido do Python. O módulo http.server do Python é uma ferramenta conveniente que nos permite iniciar rapidamente um servidor HTTP sem a necessidade de configurações complexas.
Primeiro, vamos criar um novo diretório para nosso servidor HTTP. Um diretório é como uma pasta em seu computador onde podemos armazenar todos os arquivos relacionados ao nosso servidor.
mkdir -p /home/labex/project/http-server
cd /home/labex/project/http-server
O comando mkdir -p cria um diretório chamado http-server no caminho especificado. A opção -p garante que, se algum diretório intermediário não existir, ele também será criado. O comando cd então altera nosso diretório de trabalho atual para o diretório http-server recém-criado.
Agora, vamos criar um arquivo HTML simples que nosso servidor servirá. HTML é a linguagem de marcação padrão para criar páginas da web.
echo "<html><body><h1>Welcome to the Nmap Lab</h1></body></html>" > index.html
Este comando usa o comando echo para imprimir o código HTML no terminal e, em seguida, redireciona essa saída para um arquivo chamado index.html. Então, criamos um arquivo com uma estrutura HTML básica e uma mensagem de boas-vindas.
Em seguida, iniciaremos o servidor HTTP Python.
python3 -m http.server 8000
Este comando usa o interpretador python3 para executar o módulo http.server como um script. A opção -m diz ao Python para executar o módulo como um script. Especificamos a porta 8000, o que significa que nosso servidor ouvirá as solicitações recebidas nesta porta.
Importante: Abra uma nova aba ou janela do terminal para continuar. Mantenha o servidor HTTP em execução neste terminal e use o novo terminal para todos os comandos Nmap subsequentes neste laboratório. Isso garante que o servidor HTTP permaneça ativo enquanto você realiza as varreduras.
Para verificar se o servidor está em execução, você pode usar o comando curl no novo terminal. curl é uma ferramenta de linha de comando usada para transferir dados de ou para um servidor.
curl http://localhost:8000
Quando você executa este comando, curl envia uma solicitação ao servidor HTTP em execução em localhost (que se refere ao seu próprio computador) na porta 8000. Se o servidor estiver em execução corretamente, você deverá ver o conteúdo HTML que criamos anteriormente.
127.0.0.1 - - [13/Sep/2024 15:24:21] "GET / HTTP/1.1" 200 -
<html>
<body>
<h1>Welcome to the Nmap Lab</h1>
</body>
</html>
Esta saída mostra que o servidor recebeu a solicitação, processou-a com sucesso (indicado pelo código de status 200) e retornou o conteúdo HTML do arquivo index.html.
Varredura Nmap Básica
Agora que instalamos o Nmap com sucesso e configuramos um serviço local, é hora de começar a realizar algumas varreduras básicas. Isso ajudará você a entender como o Nmap opera e que tipo de informações ele pode fornecer.
Primeiro, faremos uma simples varredura de conexão TCP em nosso servidor HTTP local. Uma varredura de conexão TCP é um tipo fundamental de varredura no Nmap. Ele tenta estabelecer uma conexão TCP completa com a porta de destino. Se a conexão for bem-sucedida, significa que a porta está aberta.
Aqui está o comando para realizar esta varredura:
nmap -sT -p 8000 localhost
Vamos detalhar este comando:
-sT é uma opção que especifica uma varredura de conexão TCP. Isso diz ao Nmap para usar o método de conexão TCP para verificar o status das portas.
-p 8000 indica que queremos que o Nmap varra apenas a porta 8000. Você pode alterar este número para varrer outras portas, se necessário.
localhost é o alvo de nossa varredura. Ele se refere à máquina local onde o serviço está sendo executado.
Após executar este comando, você deverá ver uma saída semelhante a esta:
Starting Nmap 7.80 ( https://nmap.org ) at 2024-09-13 15:27 CST
Nmap scan report for localhost (127.0.0.1)
Host is up (0.00011s latency).
Other addresses for localhost (not scanned): ::1
PORT STATE SERVICE
8000/tcp open http-alt
Nmap done: 1 IP address (1 host up) scanned in 0.06 seconds
Esta saída mostra que a porta 8000 está aberta e executando um serviço HTTP. A coluna STATE indica o status da porta e, neste caso, é open. A coluna SERVICE dá uma ideia de que tipo de serviço pode estar sendo executado nessa porta.
Agora, vamos realizar uma varredura mais detalhada. Às vezes, apenas saber que uma porta está aberta não é suficiente. Podemos querer saber mais sobre o serviço em execução nessa porta, como sua versão.
Aqui está o comando para uma varredura mais detalhada:
nmap -sV -p 8000 localhost
A opção -sV é usada para dizer ao Nmap para sondar portas abertas para determinar informações de serviço/versão. Isso significa que o Nmap tentará descobrir qual software específico e versão está sendo executado na porta aberta.
Após executar este comando, você deverá ver uma saída semelhante a esta:
Starting Nmap 7.80 ( https://nmap.org ) at 2024-09-13 15:27 CST
Nmap scan report for localhost (127.0.0.1)
Host is up (0.00011s latency).
Other addresses for localhost (not scanned): ::1
PORT STATE SERVICE VERSION
8000/tcp open http SimpleHTTPServer 0.6 (Python 3.10.12)
Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 6.48 seconds
Esta saída fornece informações mais detalhadas sobre o serviço em execução na porta 8000. Ele nos diz que é um SimpleHTTPServer Python e até nos dá o número da versão.
Você pode visualizar as solicitações do Nmap nos logs do terminal onde você iniciou o servidor HTTP Python. Isso pode ser útil para depuração ou análise posterior.
Varredura de Múltiplas Portas
Em cenários do mundo real, você geralmente precisa varrer várias portas ou até mesmo intervalos de portas inteiros. Vamos explorar como fazer isso com o Nmap.
Quando se trata de varredura de rede, você pode querer verificar várias portas de uma vez. Isso é útil porque diferentes serviços são executados em portas diferentes e, ao varrer várias portas, você pode obter uma visão abrangente dos serviços disponíveis em um alvo.
Primeiro, vamos varrer as 1000 portas mais comuns no localhost. Localhost se refere ao dispositivo atual em que você está trabalhando, representado pelo endereço IP 127.0.0.1. A varredura das 1000 portas mais comuns é uma maneira rápida de obter uma visão geral dos serviços em execução em sua máquina local.
nmap localhost
Após executar este comando, você verá uma saída semelhante à seguinte:
Starting Nmap 7.80 ( https://nmap.org ) at 2024-09-13 15:29 CST
Nmap scan report for localhost (127.0.0.1)
Host is up (0.00016s latency).
Other addresses for localhost (not scanned): ::1
Not shown: 997 closed ports
PORT STATE SERVICE
22/tcp open ssh
3001/tcp open nessus
8000/tcp open http-alt
Nmap done: 1 IP address (1 host up) scanned in 0.08 seconds
Este comando, sem nenhuma especificação de porta, varrerá as 1000 portas mais comuns. Você deverá ver uma lista de portas abertas, fechadas e filtradas. A saída mostra o número da porta, seu estado (aberta, fechada ou filtrada) e o serviço associado.
Agora, vamos varrer todas as 65535 portas. No protocolo TCP/IP, há um total de 65535 portas disponíveis. A varredura de todas elas pode fornecer uma imagem completa dos serviços em execução no alvo, mas leva mais tempo.
nmap -p- localhost
A opção -p- diz ao Nmap para varrer todas as portas de 1 a 65535. Esta varredura levará mais tempo para ser concluída porque precisa verificar cada porta individualmente.
Finalmente, vamos varrer um intervalo específico de portas. Às vezes, você pode ter uma ideia de em quais portas um serviço específico pode estar sendo executado e deseja apenas varrer essas portas.
nmap -p 1-1000 localhost
Este comando varre as portas de 1 a 1000. Ao especificar um intervalo de portas, você pode concentrar sua varredura nas portas que são mais relevantes para suas necessidades.
Formatos de Saída e Salvando Resultados
O Nmap oferece uma variedade de formatos de saída, cada um adaptado a diferentes necessidades. Compreender esses formatos e como salvar os resultados da varredura é crucial para análise posterior e compartilhamento de suas descobertas. Nesta etapa, analisaremos mais de perto alguns desses formatos e aprenderemos como salvar os resultados da varredura de forma eficaz.
Primeiro, vamos realizar uma varredura e salvar a saída em formato normal. O formato normal é um formato de texto legível por humanos que apresenta os resultados da varredura de maneira clara e direta. Para salvar a saída neste formato, usamos o seguinte comando:
nmap -oN normal_output.txt localhost
Neste comando, a opção -oN é usada para instruir o Nmap a salvar a saída em formato normal. normal_output.txt é o nome do arquivo onde os resultados serão armazenados. localhost é o alvo que estamos varrendo, que se refere à própria máquina local.
Agora, vamos salvar a saída em formato XML. XML (eXtensible Markup Language) é um formato amplamente utilizado para armazenamento e troca de dados. Ele possui um formato estruturado que pode ser facilmente analisado por scripts ou importado em outras ferramentas para processamento posterior. Para salvar a saída em formato XML, usamos o seguinte comando:
nmap -oX xml_output.xml localhost
Aqui, a opção -oX diz ao Nmap para salvar a saída em formato XML. xml_output.xml é o arquivo onde os resultados formatados em XML serão salvos.
Finalmente, vamos salvar a saída em formato grepable. O formato grepable foi projetado para ser facilmente analisado por ferramentas como grep, que é um utilitário de pesquisa de texto poderoso em sistemas semelhantes ao Unix. Este formato é útil quando você deseja pesquisar rapidamente informações específicas nos resultados da varredura. Para salvar a saída em formato grepable, usamos o seguinte comando:
nmap -oG grepable_output.txt localhost
A opção -oG é usada para salvar a saída em formato grepable, e grepable_output.txt é o arquivo onde os resultados serão armazenados.
Depois de salvar os resultados em diferentes formatos, você pode querer visualizar o conteúdo desses arquivos. Você pode usar o comando cat para exibir o conteúdo de um arquivo de texto. Por exemplo, para visualizar o arquivo de saída formatado em normal, você pode usar o seguinte comando:
cat normal_output.txt
Isso imprimirá o conteúdo do arquivo normal_output.txt no terminal, permitindo que você veja os resultados da varredura.
Resumo
Neste laboratório, você aprendeu os fundamentos do Nmap, uma poderosa ferramenta de varredura de rede e auditoria de segurança. Primeiro, você instalou o Nmap em um sistema Ubuntu Linux e verificou sua instalação. Em seguida, você configurou um servidor HTTP local como alvo para as varreduras, mostrando como criar um serviço simples para testes.
Você também explorou várias técnicas de varredura, começando com varreduras de portas básicas até a detecção detalhada da versão do serviço. Você aprendeu a varrer portas específicas, intervalos e todas as 65535 portas em um sistema, o que é crucial para entender a rede e encontrar potenciais vulnerabilidades. Por fim, você aprendeu sobre as opções de saída do Nmap, como salvar os resultados em formatos de texto normal, XML e grepable, que são essenciais para documentação e análise posterior.
Este laboratório forneceu a você experiência prática usando o Nmap, estabelecendo uma base para varredura de rede e auditoria de segurança mais avançadas. Lembre-se de usar o Nmap de forma responsável e com a devida autorização.