Como usar os scripts NMAP Script Engine (NSE) no Linux

Como usar os scripts NMAP Script Engine (NSE) no Linux

NMAP é um scanner de segurança de rede de linha de linha popular, poderoso, poderoso e de plataforma cruzada e ferramenta de exploração. Também pode ajudá -lo a obter uma visão geral dos sistemas que conectam sua rede; Você pode usá -lo para descobrir todos os endereços IP de hosts ao vivo, digitalizar portas e serviços abertos em execução nesses hosts e muito mais.

Uma das características interessantes de NMAP é o Motor de script NMAP (NSE), que traz ainda mais flexibilidade e eficiência. Ele permite que você escreva seus próprios scripts na linguagem de programação Lua e, possivelmente, compartilhe esses scripts com outros usuários do NMAP por aí.

Leia também: 29 Exemplos práticos de comandos NMAP para Linux

Existem quatro tipos de scripts NSE, a saber:

  • Scripts pré -rure - são scripts que são executados antes de qualquer uma das operações de varredura do NMAP, elas são executadas quando o NMAP ainda não coleta nenhuma informação sobre um alvo.
  • Scripts host - são scripts executados depois que o NMAP executou operações normais, como descoberta de host, varredura por porta, detecção de versão e detecção de OS contra um host de destino.
  • Scripts de serviço - Os scripts são executados contra serviços específicos ouvindo em um host de destino.
  • Scripts pós -turle - Os scripts são executados depois que o NMAP digitalizou todos os seus hosts -alvo.

Em seguida, esses scripts são agrupados em várias categorias, incluindo aquelas para autenticação (Auth), descoberta de hosts (transmissão), ataques de força bruta para adivinhar credenciais de autenticação (bruto), descobrindo mais sobre uma rede (descoberta), causando uma negação de serviço (Dos), explorando alguma vulnerabilidade (explorar), etc. Vários scripts pertencem à categoria padrão.

Observação: Antes de avançarmos, você deve anotar esses pontos -chave:

  • Não execute scripts de terceiros sem examiná -los criticamente ou somente se você confiar nos autores. Isso ocorre porque esses scripts não são executados em uma caixa de areia e, portanto, podem danificar inesperadamente ou maliciosamente seu sistema ou invadir sua privacidade.
  • Segundo, muitos desses scripts podem ser executados como um Prerule ou Postrule roteiro. Considerando isso, recomenda -se usar um pré -rolo para fins de consistência.
  • NMAP usa o scripts/script.dB banco de dados para descobrir os scripts e categorias padrão disponíveis.

Para ver a localização de todos os scripts NSE disponíveis, execute o utilitário Locate no terminal, assim:

$ Locate *.NSE /usr/share/nmap/scripts/acarsd-info.nse/usr/share/nmap/scripts/endereço-info.nse/usr/share/nmap/scripts/afp-brute.nse/usr/share/nmap/scripts/afp-ls.nse/usr/share/nmap/scripts/afp-path-vuln.nse/usr/share/nmap/scripts/afp-serverinfo.nse/usr/share/nmap/scripts/afp-showmount.nse/usr/share/nmap/scripts/ajp-auth.nse/usr/share/nmap/scripts/ajp-brute.nse/usr/share/nmap/scripts/AJP-headers.nse/usr/share/nmap/scripts/ajp-methods.nse/usr/share/nmap/scripts/ajp-request.nse/usr/share/nmap/scripts/allseeingeye-info.nse/usr/share/nmap/scripts/amqp-info.nse/usr/share/nmap/scripts/Asn-Query.NSE… 

Os scripts NSE são carregados usando o --roteiro Flag, que também permite executar seus próprios scripts, fornecendo categorias, nomes de arquivos de script ou o nome dos diretórios onde seus scripts estão localizados.

A sintaxe para ativar scripts é a seguinte:

$ NMAP -SC Target #Load Scripts padrão ou $ NMAP -S -Script FileName | Categoria | Diretório | Expressão,… Target 

Você pode ver uma descrição de um script com o --Help de script opção. Além disso, você pode passar argumentos para alguns scripts através do --Script-Args e --Script-Args-File Opções, o posterior é usado para fornecer um nome de arquivo em vez de uma linha de comando arg.

Para realizar uma varredura com a maioria dos scripts padrão, use o -sc bandeira ou uso alternativamente --script = padrão como mostrado.

$ NMAP -SC ScanMe.NMAP.org ou $ nmap - -script = scanMe padrão.NMAP.Org ou $ NMAP -Script Padrão ScanMe.NMAP.org 
Saída de amostra
Iniciando NMAP 7.01 (https: // nmap.org) em 2017-11-15 10:36 IST NMAP Scan Relatório para ScanMe.NMAP.org (45.33.32.156) o host está em alta (0.0027s latência). Não mostrado: 999 Portas filtradas Serviço de estado da porta 80/TCP aberto http | _http-title: vá em frente e scan! NMAP Concluído: 1 Endereço IP (1 Host Up) Digitalizado em 11.74 segundos 

Para usar um script para o propósito apropriado, você pode, antes de tudo, obter uma breve descrição do que ele realmente faz, por exemplo, HTTP-Headers.

$ nmap-script-help http-headers.NMAP.org 
Saída de amostra
Iniciando NMAP 7.01 (https: // nmap.org) em 2017-11-15 10:37 IST HTTP-Headers Categorias: Discovery Safe https: // nmap.org/nsedoc/scripts/http headers.O HTML executa uma solicitação de cabeça para a pasta raiz ("/") de um servidor da web e exibe os cabeçalhos HTTP retornados. 

Carregando scripts NSE para realizar varreduras de NMAP

Você pode selecionar ou carregar scripts para executar uma varredura em diferentes métodos explicados abaixo.

Usando o nome do script

Depois de saber o que um script faz, você pode executar uma varredura usando -o. Você pode usar um script ou inserir uma lista separada por vírgula de nomes de scripts. O comando abaixo permitirá que você visualize os cabeçalhos HTTP configurados no servidor da web no host de destino.

$ NMAP-Script Http-Headers Scanme.NMAP.org 
Digitalize cabeçalhos HTTP
Iniciando NMAP 7.01 (https: // nmap.org) em 2017-11-15 10:39 IST NMAP Scan Relatório para ScanMe.NMAP.org (45.33.32.156) o host está em alta (0.27s latência). Não mostrado: 996 Portas fechadas Serviço de estado da porta 22/TCP Open SSH 80/TCP Open HTTP | http headers: | Data: Qua, 15 de novembro de 2017 05:10:04 GMT | Servidor: Apache/2.4.7 (Ubuntu) | Ranges de aceitação: bytes | Variar: aceitar o codificação | Conexão: Fechar | Tipo de conteúdo: texto/html | | _ (Tipo de solicitação: Cabeça) 179/TCP BGP 31337/TCP Open Elite NMAP Concluído: 1 Endereço IP (1 Host Up) Digitalizado em 20.96 segundos 

Usando categorias

Você também pode carregar scripts de uma categoria ou de uma lista de categorias separadas por vírgula. Neste exemplo, estamos usando todos os scripts na categoria padrão e de transmissão para realizar uma varredura no host 192.168.56.1.

$ nmap -script padrão, transmissão 192.168.56.1 
Digitalize um anfitrião

Usando * curinga

Isso é útil quando você deseja selecionar scripts com um determinado padrão de nome. Por exemplo, para carregar todos os scripts com nomes começando com ssh, Execute o comando abaixo no terminal:

$ nmap--script "ssh-*" 192.168.56.1 
Carregar scripts usando curingas-

Usando expressões booleanas

Você também pode selecionar scripts usando expressões booleanas que você pode construir usando o e, ou, e não operadores. E nomes em uma expressão booleana podem ser uma categoria, um nome de arquivo de roteiro.dB, ou tudo.

O comando a seguir carregará scripts das categorias padrão ou de transmissão.

$ nmap - -script "padrão ou transmissão" 192.168.56.10 

Que é equivalente a:

$ nmap -script padrão, transmissão 192.168.56.10 

Para carregar todos os scripts omitindo aqueles no vuln categoria, execute este comando no terminal.

$ nmap - -script "não vuln" 192.168.56.10 

O próximo comando parece um pouco complicado, mas é fácil de entender, seleciona scripts nas categorias padrão ou de transmissão, deixando de fora aqueles com nomes começando com ssh-:

$ nmap--script "(padrão ou transmissão) e não ssh-*" 192.168.56.10 

É importante ressaltar que é possível combinar categorias, nomes de scripts, um diretório que contém seus scripts personalizados ou uma expressão booleana para carregar scripts, assim:

$ NMAP-S-Script Broadcast, Vuln, SSH-Auth-Methods,/Path/para/Custom/Scripts 192.168.56.10 

Passando argumentos para scripts NSE

Abaixo está um exemplo mostrando como passar argumentos para scripts com o -Script-Args opção:

$ nmap-script mysql-audit-script-args "mysql-audit.nome de usuário = 'root', \ mysql-audit.senha = 'senha_here', mysql-audit.FileName = 'Nselib/Data/MySQL-CIS.auditoria '" 

Para passar um número de porta, use o -p Opção NMAP:

$ NMAP -P 3306-Script MySQL-Audit--Script-Args "MySQL-Audit.nome de usuário = 'root', \ mysql-audit.senha = 'senha_here', mysql-audit.FileName = 'Nselib/Data/MySQL-CIS.auditoria '" 

O comando acima executa uma auditoria da configuração de segurança do servidor de banco de dados MySQL contra partes do Cis mysql v1.0.2 benchmark. Você também pode criar seus próprios arquivos úteis de auditoria personalizados para outras auditorias do MySQL.

É isso por agora. Você pode encontrar mais informações na página do NMAP Man ou conferir o uso do NSE.

Para começar a escrever seus próprios scripts NSE, consulte este guia: https: // nmap.org/livro/nse-tutorial.html

Conclusão

NMAP é uma ferramenta realmente poderosa e útil que todo sistema ou administrador de rede precisa em seu arsenal de segurança - NSE simplesmente adiciona mais eficiência a ele.

Neste artigo, apresentamos você ao Motor de script NMAP e analisou como encontrar e usar os vários scripts disponíveis em diferentes categorias. Se você tiver alguma dúvida, não hesite em escrever de volta para nós através do formulário de comentário abaixo.