Utilizando o Nmap Scripting Engine (NSE)

O foco deste artigo é no Nmap Scripting Engine (NSE), uma funcionalidade poderosa e flexível do Nmap, que permite a execução de scripts a fim de automatizar tarefas variadas.

[ Hits: 39.564 ]

Por: Bruno Salgado em 12/12/2012 | Blog: http://www.seginfo.com.br


Sobre o Nmap Scripting Engine



Este artigo faz parte de uma série de artigos redigidos sobre a ferramenta livre e de código aberto Nmap (reduzido de "Network Mapper").

No primeiro artigo Mapeamento de Redes com Nmap, foram discutidas as funcionalidades mais comuns da ferramenta, abrangendo suas principais técnicas de descoberta de hosts, de varredura de portas, de detecção de versões de serviços e de identificação de sistema operacional.
Linux: Utilizando o Nmap Scripting Engine (NSE)
Como descrito anteriormente, o NSE é uma funcionalidade poderosa do Nmap, versátil e flexível, que permite a seus usuários desenvolver e compartilhar scripts simples e integrá-los às varreduras tradicionais do Nmap, a fim de automatizar tarefas variadas.

Os usuários podem somente utilizar os scripts disponibilizados junto com o Nmap, modificar scripts existentes ou ainda desenvolver seus próprios scripts personalizados que atendam às suas necessidades.

O NSE foi desenvolvido inicialmente com o objetivo de melhorar a descoberta de rede, incluir métodos mais sofisticados de detecção de versões e permitir a identificação de vulnerabilidades.

Em sua versão atual, além destas funções, o NSE é capaz de detectar:
  • backdoors;
  • explorar vulnerabilidades;
  • realizar ataques de dicionário e de negação de serviço;
  • detectar malwares remotamente;
  • entre outros.

Por se tratar de uma ferramenta tão versátil, é possível que surjam ainda scripts aplicáveis em novas situações não previstas pelos desenvolvedores e mantenedores do Nmap.

Os scripts executados pelo NSE são escritos na linguagem de script Lua. A linguagem Lua foi criada em 1993 no Laboratório de Tecnologia em Computação Gráfica da Pontifícia Universidade Católica do Rio de Janeiro - TecGraf/PUC-Rio e continua em desenvolvimento ativo ainda hoje.

Lua é uma linguagem extensível, segura e portável, muito usada e já bastante depurada, além disto é considerada uma linguagem fácil de aprender (principalmente se já se conhece outras linguagens de script, como Perl, Python ou outras linguagens como C/C++, Java, etc.) e pequena para embutir (segundo a documentação da linguagem, uma distribuição completa, com código fonte, manual e binários para algumas plataformas cabem confortavelmente em um disquete).

Atualmente, Lua é bastante usada no desenvolvimento de jogos, figurando em títulos como "World of Warcraft" e "Crysis", e mais recentemente, em ferramentas de segurança, como o Nmap, naturalmente, o Wireshark e o Snort 3.0.

O manual de referência oficial da linguagem Lua são os livros:
  • Programming in Lua → No momento da redação deste artigo, na segunda edição [Programming in Lua, Second Edition. Roberto Ierusalimschy. Lua.org Publishing. ISBN: 978-8590379829].
  • Lua 5.1 Reference Manual → Lua 5.1 Reference Manual. Roberto Ierusalimschy, Luiz Henrique de Figueiredo e Waldemar Celes, Lua.org Publishing. ISBN: 978-8590379836.

A primeira edição do livro Programming in Lua está disponível gratuitamente na Internet: http://www.lua.org/pil, bem como a edição atual do Lua 5.1 Reference Manual, que inclusive tem uma versão em português:
É importante frisar que não é necessário nenhum conhecimento de programação para executar os scripts prontos, distribuídos com o Nmap. Entretanto, caso deseje desenvolver ou modificar scripts, além das bibliotecas padrão do Lua, o Nmap fornece diversas outras prontas para tratar requisições de diversos protocolos, módulos para ataques de dicionário e manipulação de wordlists, suporte para tratar transações SSL, entre muitas outras facilidades.

Estas facilidades auxiliam os desenvolvedores, de forma que, mesmo que este se considere um programador mediano, seja possível desenvolver scripts para o NSE.

Outro adendo importante, é que os scripts executados pelo NSE não são isolados em Sandboxes de nenhuma espécie. Então, evite utilizar scripts cuja procedência não pode ser atestada. Ainda assim, caso se queira executar scripts desenvolvidos pela comunidade, sem a auditoria da equipe do Nmap, audite-o você mesmo, pois este script pode, potencialmente, executar código arbitrário em seu sistema operacional.

Em 2010, o próprio Fyodor, juntamente com o desenvolvedor de scripts David Fifield, apresentaram palestras no DEFCON 18 e no BlackHat 10 sobre o NSE. Os vídeos destas palestras encontram-se disponíveis na página oficial do Nmap.

Estas palestras tiveram como título: Mastering the Nmap Scripting Engine e mostraram uma introdução ao uso do NSE e ao desenvolvimento de scripts e também estudos de caso onde ao NSE foi utilizado.

Página anterior     Próxima página

Páginas do artigo
   1. Introdução
   2. Sobre o Nmap Scripting Engine
   3. Quickstart - Classificação dos scripts
   4. Scripts e sintaxe - Parâmetros
Outros artigos deste autor

Trilhas de Certificação em Segurança da Informação - Qual caminho seguir?

Desafio: Análise Forense Computacional - Forense em Tráfego de Rede [Resolvido]

Auditorias Teste de Invasão para Proteção de Redes Corporativas

Leitura recomendada

Entendendo as permissões no Linux

AUDIT: Auditoria de arquivos no Linux para conhecer quem fez alterações em arquivos

Uma introdução ao Linux-PAM

Segurança no Linux: Antivírus, Firewall, Wine - Mitos e Verdades

Race Condition

  
Comentários
[1] Comentário enviado por brunosalgado em 12/12/2012 - 14:51h

Créditos do artigo todos para Henrique Soares e Rafael Ferreira. http://goo.gl/ayMMH =)



Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts