Técnicas Avançadas de Varredura Coberta
Neste passo, vamos explorar técnicas de varredura mais avançadas que oferecem um nível ainda maior de furtividade. Estas técnicas são cruciais em segurança cibernética, pois permitem recolher informações sobre uma rede alvo sem serem facilmente detetadas. Uma técnica poderosa é a Varredura Ociosa, também conhecida como Varredura Zumbi. Este método permite varrer um alvo enquanto mascara a sua identidade por detrás de outro host.
Antes de começarmos, é importante garantir que se encontra no seu espaço de trabalho. Este é o local onde todos os seus ficheiros e comandos relacionados com o projeto serão executados. Para navegar para o seu espaço de trabalho, execute o seguinte comando no seu terminal:
cd /home/labex/project
Compreendendo a Varredura Ociosa
A Varredura Ociosa é uma das técnicas de varredura mais furtivas disponíveis no Nmap. Mas como funciona? Bem, utiliza um host de terceiros, que chamamos de "zumbi", para executar a varredura. Isto faz com que a varredura pareça estar a ser executada pelo host zumbi, e não por si.
Vamos decompor o processo de uma Varredura Ociosa passo a passo:
- Primeiro, o scanner envia uma sonda para o host zumbi. Esta sonda ajuda o scanner a determinar a sequência atual de ID de IP do zumbi. A sequência de ID de IP é um número único que o host atribui a cada pacote IP que envia.
- Em seguida, o scanner envia um pacote SYN para o alvo. No entanto, define o endereço IP de origem deste pacote como o endereço IP do zumbi. Um pacote SYN é usado para iniciar uma conexão TCP.
- Se a porta no alvo estiver aberta, o alvo responderá com um pacote SYN-ACK. Este pacote é enviado para o zumbi, porque esse é o endereço IP de origem que viu no pacote SYN.
- O zumbi, que não esperava este pacote SYN-ACK, enviará um pacote RST de volta ao alvo. Um pacote RST é usado para reiniciar uma conexão TCP.
- O scanner, em seguida, sonda novamente o zumbi. Verifica se a sequência de ID de IP do zumbi aumentou.
- Se a sequência de ID de IP tiver aumentado, indica que a porta no alvo está aberta. Isto porque o zumbi enviou um pacote RST em resposta ao SYN-ACK do alvo.
A beleza desta técnica é a sua furtividade. O alvo apenas vê a comunicação proveniente do zumbi, não do scanner real. Portanto, é muito difícil para o alvo detectar que está a ser varrido.
Executando uma Varredura Ociosa
Agora, vamos executar uma varredura ociosa usando o Nmap. Numa situação do mundo real, utilizaria um host zumbi externo. Mas, para este laboratório, vamos simular o processo usando a sua máquina local.
Execute o seguinte comando no seu terminal:
sudo nmap -sI 127.0.0.1 localhost -p 8080 > /home/labex/project/idle_scan.txt
Vamos entender cada parte deste comando:
sudo é usado porque o Nmap precisa de acesso a soquetes brutos para executar a varredura ociosa. O acesso a soquetes brutos permite ao Nmap criar e enviar pacotes IP personalizados, o que é necessário para este tipo de varredura.
nmap é a conhecida ferramenta de varredura que estamos a usar para esta tarefa.
-sI 127.0.0.1 especifica que estamos a executar uma varredura ociosa e a usar 127.0.0.1 (que é o localhost) como o host zumbi.
localhost é o alvo que queremos varrer.
-p 8080 indica ao Nmap para apenas varrer a porta 8080 no alvo.
> /home/labex/project/idle_scan.txt redireciona a saída da varredura para um ficheiro de texto. Desta forma, podemos rever facilmente os resultados mais tarde.
Depois de executar a varredura, vamos examinar os resultados. Utilize o seguinte comando para visualizar o conteúdo do ficheiro de saída:
cat /home/labex/project/idle_scan.txt
Poderá ver uma saída semelhante a esta:
Iniciando o Nmap 7.80 ( https://nmap.org ) em 2023-10-25 12:10 UTC
Varredura ociosa usando zumbi 127.0.0.1 (127.0.0.1:80); Classe: Incremental
Pular Varredura Ociosa contra localhost (127.0.0.1) -- não pode executar varredura ociosa na sua própria máquina (localhost).
Relatório de varredura Nmap para localhost (127.0.0.1)
O host está ativo.
PORTA ESTADO SERVIÇO
8080/tcp desconhecido proxy HTTP
Nmap concluído: 1 endereço IP (1 host ativo) varrido em 2.03 segundos
Note que o Nmap reporta que está a pular a varredura ociosa. Isto porque está a tentar usar a sua própria máquina como zumbi e alvo. Numa situação do mundo real com hosts separados, esta técnica seria muito eficaz para varreduras ocultas.
Embora tenhamos esta limitação no nosso ambiente de laboratório, este exercício ainda lhe mostra como usar o comando de varredura ociosa. Na prática, escolheria um host diferente como zumbi, e a varredura seria executada sem esta mensagem de aviso.
Esta técnica avançada é muito valiosa quando precisa de máxima furtividade. Torna extremamente difícil para o alvo rastrear a varredura de volta ao scanner real.
Comparando Resultados de Varredura
Vamos comparar as saídas dos dois tipos de varredura para ver as diferenças:
echo "=== Resultados da Varredura Furtiva ===" && cat /home/labex/project/stealth_scan.txt
echo "=== Resultados da Varredura Ociosa ===" && cat /home/labex/project/idle_scan.txt
Ambas as varreduras detectaram com sucesso a porta 8080 aberta, mas a varredura ociosa mostra informações adicionais sobre a técnica de varredura utilizada.
Limpeza
Antes de terminar, vamos limpar o nosso ambiente parando o servidor web:
pkill -f "nc -lvp 8080"
Isto termina o processo netcat que executa o nosso servidor web na porta 8080.