Usando o Nmap Scripting Engine (NSE)
O Nmap Scripting Engine (NSE) é uma ferramenta poderosa que permite expandir as capacidades do Nmap usando scripts Lua. Lua é uma linguagem de programação leve, e esses scripts podem executar uma ampla variedade de tarefas. Por exemplo, eles podem ajudar na detecção avançada de serviços, o que significa identificar com mais precisão quais serviços estão sendo executados em um dispositivo de rede. Eles também podem ser usados para varredura de vulnerabilidades, o que é crucial para encontrar pontos fracos de segurança em um sistema.
Vamos usar o NSE para reunir mais informações sobre nosso servidor HTTP. Os scripts NSE são agrupados em diferentes categorias. Essas categorias incluem "default" (padrão), que contém scripts comumente usados e seguros; "discovery" (descoberta), que serve para encontrar serviços de rede; "safe" (seguro), que não causará nenhum dano ao sistema de destino; e "vuln" (vulnerabilidade), que é usado para varredura de vulnerabilidades.
Primeiro, queremos ver quais scripts relacionados a HTTP estão disponíveis. Para fazer isso, usaremos o seguinte comando:
ls /usr/share/nmap/scripts/http*
Este comando lista todos os scripts NSE no diretório /usr/share/nmap/scripts/
que começam com http
. Quando você executa este comando, verá uma lista de scripts projetados para interagir com serviços HTTP. Esses scripts podem executar diferentes funções, desde a coleta de informações simples, como obter o título de uma página da web, até tarefas mais complexas, como a varredura de vulnerabilidades em um serviço HTTP.
Agora, vamos usar o script http-title
para extrair o título da nossa página da web. O script http-title
foi projetado para analisar um serviço HTTP e encontrar o título da página da web que ele serve. Aqui está o comando para executar este script:
sudo nmap --script=http-title -p 8000 localhost > /home/labex/project/nmap_script_output.txt
Neste comando, sudo
é usado para executar o comando com privilégios administrativos porque algumas operações do Nmap podem exigi-los. nmap
é o comando principal, e --script=http-title
diz ao Nmap para usar o script http-title
. -p 8000
especifica que estamos direcionando a porta 8000, que é onde nosso servidor HTTP está sendo executado. localhost
é o alvo, o que significa que estamos executando a varredura em nossa própria máquina. O símbolo >
redireciona a saída do comando para o arquivo /home/labex/project/nmap_script_output.txt
.
Vamos verificar a saída do comando. Podemos fazer isso usando o seguinte comando:
cat /home/labex/project/nmap_script_output.txt
O comando cat
é usado para exibir o conteúdo de um arquivo. Quando você executa este comando, você deve ver uma saída que inclui informações sobre o título da nossa página da web. A saída pode ser semelhante a esta:
Starting Nmap 7.80 ( https://nmap.org ) at 2023-XX-XX XX:XX XXX
Nmap scan report for localhost (127.0.0.1)
Host is up (0.000040s latency).
PORT STATE SERVICE
8000/tcp open http-alt
|_http-title: Directory listing for /
Nmap done: 1 IP address (1 host up) scanned in X.XX seconds
Agora, vamos tentar uma varredura mais abrangente usando vários scripts. A categoria "default" inclui scripts seguros que fornecem informações úteis sobre o alvo. Para executar todos os scripts na categoria "default" em nosso servidor HTTP na porta 8000, usamos o seguinte comando:
sudo nmap --script=default -p 8000 localhost > /home/labex/project/nmap_default_scripts.txt
Este comando é semelhante ao anterior, mas, em vez de especificar um único script, estamos dizendo ao Nmap para executar todos os scripts na categoria "default".
Vamos examinar os resultados desta varredura. Podemos fazer isso usando o comando cat
novamente:
cat /home/labex/project/nmap_default_scripts.txt
A saída conterá informações mais detalhadas sobre nosso servidor HTTP, reunidas por vários scripts NSE que são executados por padrão.
Finalmente, vamos explorar o recurso de ajuda do script para aprender mais sobre um script específico. Se você quiser saber mais sobre o script http-title
, pode usar o seguinte comando:
nmap --script-help=http-title
Este comando exibe a documentação do script http-title
. A documentação inclui o propósito do script, como usá-lo e o formato de sua saída. Compreender a documentação do script é essencial ao usar o NSE para tarefas específicas, pois ajuda você a saber o que o script faz e como usá-lo corretamente.