Escanear uma Porta Específica com Nikto

Kali LinuxBeginner
Pratique Agora

Introdução

Nikto é um popular scanner de servidores web de código aberto que realiza testes abrangentes contra servidores web para vários itens, incluindo mais de 6700 arquivos/programas potencialmente perigosos, verifica versões desatualizadas de mais de 1250 servidores e problemas específicos de versão em mais de 270 servidores. Por padrão, o Nikto escaneia portas HTTP/HTTPS padrão como 80 e 443. No entanto, em cenários do mundo real, os serviços web são frequentemente hospedados em portas não padrão para obscurecê-los.

Neste laboratório, você aprenderá a usar o Nikto para escanear uma porta específica e não padrão em um alvo. Esta é uma habilidade fundamental para garantir que todos os serviços voltados para a web, independentemente da porta em que operam, sejam devidamente avaliados quanto a vulnerabilidades.

Identificar uma porta HTTP não padrão em um alvo

Nesta etapa, você primeiro identificará as portas abertas na máquina alvo. Antes de poder escanear uma porta específica com o Nikto, você precisa saber quais portas estão abertas e potencialmente hospedando serviços. Usaremos o nmap, uma poderosa ferramenta de varredura de rede, para este propósito.

Vamos escanear um intervalo de portas em nossa máquina local (localhost) para encontrar o servidor web que configuramos. Escanearemos o intervalo de portas de 8000 a 9000.

Execute o seguinte comando em seu terminal:

nmap -p 8000-9000 localhost

Você deverá ver uma saída semelhante à seguinte, indicando que as portas 8001 e 8088 estão abertas.

Starting Nmap 7.80 ( https://nmap.org ) at 2023-10-27 10:00 UTC
Nmap scan report for localhost (127.0.0.1)
Host is up (0.000087s latency).
Not shown: 98 closed ports
PORT     STATE SERVICE
8001/tcp open  vcom-tunnel
8088/tcp open  radan-http

Nmap done: 1 IP address (1 host up) scanned in 0.04 seconds

Esta saída confirma que dois serviços estão em execução em portas não padrão dentro do nosso intervalo especificado. Focaremos na porta 8088 para nossa primeira varredura com o Nikto.

Use a flag -p para especificar a porta alvo

Nesta etapa, aprenderemos sobre a flag específica do Nikto usada para escanear portas. Por padrão, o Nikto escaneia a porta 80. Para direcionar o Nikto a escanear uma porta diferente, você deve usar a opção de linha de comando -p (ou -port).

A sintaxe é direta:

nikto -h <host_alvo> -p <número_da_porta>

Por exemplo, para escanear o host localhost na porta 8088 que descobrimos na etapa anterior, a estrutura do comando seria:

nikto -h localhost -p 8088

Este comando diz ao Nikto para realizar seu conjunto completo de testes, mas para direcionar todos eles para a porta 8088 no host localhost. Na próxima etapa, você executará este comando e verá os resultados.

Executar a varredura contra o host e porta específicos

Agora que você sabe como especificar uma porta alvo, vamos executar a varredura. Você usará a estrutura de comando da etapa anterior para iniciar uma varredura Nikto contra localhost na porta 8088.

Execute o seguinte comando em seu terminal:

nikto -h localhost -p 8088

O Nikto iniciará e você verá uma saída detalhando seu progresso e descobertas. A saída será algo como isto (alguns detalhes podem variar):

- Nikto v2.1.6
---------------------------------------------------------------------------
+ Target IP:          127.0.0.1
+ Target Hostname:    localhost
+ Target Port:        8088
+ Start Time:         2023-10-27 10:05:10 (GMT0)
---------------------------------------------------------------------------
+ Server: SimpleHTTP/0.6 Python/3.10.12
+ The anti-clickjacking X-Frame-Options header is not present.
+ The X-XSS-Protection header is not defined. This header can hint to the user agent to protect against some forms of XSS
+ The X-Content-Type-Options header is not set. This could allow the user agent to render the content of the site in a different fashion to the MIME type
+ No CGI directories found (use '-C all' to force check all possible dirs)
+ OSVDB-3092: /cgi-bin/: This might be interesting...
+ 7558 requests: 0 error(s) and 5 item(s) reported on remote host
+ End Time:           2023-10-27 10:05:25 (GMT0) (15 seconds)
---------------------------------------------------------------------------
+ 1 host(s) tested

Você realizou com sucesso uma varredura de vulnerabilidade direcionada em uma porta não padrão.

Analisar os resultados para o serviço não padrão

Nesta etapa, você analisará a saída da varredura Nikto que acabou de realizar. Compreender os resultados é tão importante quanto executar a varredura em si.

Vamos revisar as principais descobertas da saída da etapa anterior:

  • + Target Port: 8088: Isso confirma que o Nikto direcionou corretamente a porta que você especificou.
  • + Server: SimpleHTTP/0.6 Python/3.10.12: Esta é uma informação muito valiosa. O Nikto identificou o software e a versão do servidor web. Neste caso, é um servidor simples fornecido pelo Python. Saber a tecnologia do servidor ajuda um atacante a focar em exploits específicos.
  • Cabeçalhos de Segurança Ausentes: Linhas como The anti-clickjacking X-Frame-Options header is not present apontam para configurações de segurança incorretas. Esses cabeçalhos ajudam a proteger um aplicativo web contra ataques comuns como clickjacking e cross-site scripting (XSS).
  • + OSVDB-3092: /cgi-bin/: This might be interesting...: O Nikto identificou um diretório chamado cgi-bin. Este diretório tradicionalmente contém scripts executáveis, tornando-o um alvo de alto valor para atacantes que procuram vulnerabilidades.

Esta análise mostra que mesmo um serviço simples em uma porta não padrão pode ter características descobertas e potenciais fraquezas de segurança.

Escanear um intervalo de portas em um único host

Nesta etapa final, você aprenderá como tornar sua varredura ainda mais eficiente, fornecendo ao Nikto um intervalo de portas para verificar. Isso é extremamente útil quando você identificou várias portas potenciais de uma varredura nmap ou suspeita que serviços possam estar em execução dentro de um intervalo específico.

O sinalizador -p também aceita um intervalo de portas especificado com um hífen. A sintaxe é:

nikto -h <target_host> -p <start_port>-<end_port>

Vamos usar isso para escanear o intervalo 8000-8100 em localhost. Este intervalo inclui ambos os servidores web que estamos executando (nas portas 8001 e 8088).

Execute o seguinte comando:

nikto -h localhost -p 8000-8100

O Nikto agora iterará por cada porta no intervalo especificado. Ele primeiro escaneará a porta 8000, não encontrará nada, depois passará para a 8001, encontrará o servidor web, o escaneará e relatará os resultados. Ele continuará esse processo até atingir a porta 8100, também escaneando o servidor na porta 8088 ao longo do caminho.

A saída será extensa, mostrando dois relatórios de varredura separados, um para cada porta ativa encontrada:

- Nikto v2.1.6
---------------------------------------------------------------------------
+ Target IP:          127.0.0.1
+ Target Hostname:    localhost
+ Target Port:        8001
... (Results for port 8001) ...
---------------------------------------------------------------------------
+ Target IP:          127.0.0.1
+ Target Hostname:    localhost
+ Target Port:        8088
... (Results for port 8088) ...
---------------------------------------------------------------------------
+ 2 host(s) tested

Isso demonstra com que eficiência você pode verificar várias portas em um único host com apenas um comando.

Resumo

Neste laboratório, você aprendeu como estender as capacidades de varredura do Nikto além das portas web padrão. Você começou usando nmap para identificar serviços em execução em portas não padrão. Em seguida, usou o poderoso sinalizador -p do Nikto para direcionar uma única porta específica e analisou a saída resultante para identificar a tecnologia do servidor e possíveis configurações incorretas.

Finalmente, você aprendeu a usar o sinalizador -p para escanear um intervalo de portas, uma técnica poderosa para descobrir eficientemente serviços web ocultos em um alvo. Dominar a varredura direcionada é uma habilidade crucial para testes de segurança de aplicativos web eficazes e completos.