NSEarch (Nmap Script Engine Search)

NSEarch nace de una necesidad generada por mis actividades diarias como Pentester e Instructor de los cursos De 0 a Ninja en DragonJAR S.A.S, específicamente el curso De 0 a Ninja con Nmap, ya que como sabemos todos, para sacarle el máximo provecho a NMap en su uso diario es fundamental utilizar los scripts que incluyen esta gran herramienta, es en este punto en el cual me encontré repitiendo procesos que a mi parecer son poco ágiles, estoy hablando de la búsqueda de scripts, aunque nmap cuenta con pocos scripts si lo comparamos con proyectos como metasploit, 470 scripts en su versión 6.47 y un archivo script.db que contiene el nombre y las categorías a las que pertenece el script, lo tedioso surge cuando no tenemos muy claro el nombre del script o la función que desempeña, otras veces simplemente tenemos parte del nombre y nuestra memoria no da más. ¿Qué hacía yo en estos casos?, tenía varias opciones:

Buscar en la carpeta “nmap/scripts” un script con un nombre similar, esto lo hacia por medio de un comando en bash y me solucionaba la necesidad, después utilice el archivo script.db, en este punto tenia solucionado el problema de la búsqueda, pero me encontré con otra situación, no todos los scripts funcionan de la misma forma, algunos requieren argumentos y otros no, nmap cuenta con un argumento “- - script-help” que nos muestra la ayuda de uno o varios scripts, para un script es una buena opción, pero en el caso de necesitar información de 10 scripts se debe encadenar la búsqueda con los nombres de los scripts seguidos de comas, es funcional, pero la salida puede ser un poco enredada, ya que no se discrimina de una forma clara la salida por script. Otra opción puede ser buscar en la documentación oficial de los scripts y navegar por cada uno scripts y leer la ayuda.

Desde que se lanzaron los Cursos de 0 a ninja en DragonJAR S.A.S, hemos estado creando y adicionando material exclusivo constantemente, fue el caso del curso de 0 a ninja con nmap, (el cual será lanzado nuevamente en pocos días), me encontré otra vez con un proceso repetitivo y tedioso, preparando los laboratorios y las practicas surgió la necesidad de saber cuales eran los scripts incluidos en determinada categoría, nuevamente recurrí a mis modestas habilidades de programación y desarrolle un script que me buscara en el archivo scritp.db cuales eran los scripts en X categoría, claro que esta nunca fue mi primera opción, esta fue la de buscar en la documentación oficial de los scripts de nmap cuáles eran las categorías y cuales los scripts.

PARA SABER MÁS SOBRE NUESTROS CURSOS CLICK AQUI 

Cuando menos lo pensé ya contaba con una serie de scripts que me automatizaban parte del proceso y tomé la decisión de invertir un poco de tiempo en organizar los scripts en un solo proyecto que me ayudara a ganar tiempo en mis futuros trabajos, la idea original era crear un script de nse que me permitiera buscar scripts, realice unas pequeñas pruebas y no se justificaba lanzar nmap para efectuar una búsqueda, decidí usarlo como un script externo tal y como lo estaba haciendo, como ya tenia parte del código hecho en lua para el nse continué el desarrollo usando esa base y después de varias tardes de trabajo de pruebas he decidido publicar una versión alpha del proyecto.

NSEarch es una herramienta que permite hacer búsquedas de scripts de nmap ya sea por nombre o categoría y visualizar su documentación, realiza copias del archivo scripts.db, en sus versiones iniciales se usaba como fuente de consulta el archivo scripts.db, se migra todo el archivo a una base de datos sqlite3, para realizar consultas más fáciles y eficientes.

En esta versión cuenta con un script que instala las dependencias para sistemas basados en Debian(Ubuntu), los demás Unix deben hacer la instalación manual de cada una de las dependencias.

# ./install.sh

nse-install-nsearch

¿ Como funciona NSEarch?

Después de hacer la instalación de las dependencias lanzamos el script principal

$ lua nsearch.lua

nse-main-menu

Al seleccionar la opción 2 o (i) se crea la db con los datos y queda listo para hacer consultas

nse-crate-db

nse-main-menu

Seleccionamos la opción 3 o (s)

nse-search

en este punto ya podemos buscar cualquier script ya sea por nombre (name) o por categoría(category)

nse-search-name

nse-search-name 2

En este punto podemos seleccionar el id del script y ver la información de ayuda, podemos salir o hacer otra búsqueda.

nse-description-script

lo mismo para las búsquedas por categoría

nse-search-cat

nse-categories

también podemos ver cual es la ayuda que contiene el script según el que seleccionamos.

Estas son la funcionalidades disponibles en esta primera versión, se que es algo básico, no es una solución definitiva ni tampoco es la mejor del mundo, simplemente es una solución personal a un problema que tenía en mi quehacer cotidiano como ya lo exprese y quise compartirla con la comunidad, creo que le puede ser útil a otras personas que se han encontrado en situaciones similares, no es la única versión, en este momento me encuentro trabajando en procesos de re-factoring, adición de características, revisión de documentación y correcciones menores.

Es un proyecto open source, el repositorio está disponible en GitHub, estoy mejorando la documentación y el código para facilitar cualquier tipo de contribución, la verdad es que esta un poco desorganizado.

Índice
  • Novedades en la versión 0.4 de NSEarch (Nmap Script Engine Search) :
  • Novedades en la versión 0.4 de NSEarch (Nmap Script Engine Search) :

    Internacionalización (i18n)

    En esta versión es posible imprimir los mensajes de ayuda o informativos, en diferentes idiomas(Español, Ingles), nuevos idiomas en futuras versiones, si deseas colaborar con nuevos idiomas o contribuir en los actuales no dudes en contactarnos.

    nsearch-help-es

    nsearch-help-en

    Actualización Automatica de la base de datos de Scripts

    Cada que la herramienta sea usada, esta verificará si el archivo oficial de scripts de nmap (scripts.db) a cambiando y de ser así automáticamente adicionará a la base de datos los nuevos scripts y removerá los que sean necesarios.

    nsearch-autoupdate

    Consulta por medio del Autor del Script

    En esta versión ya es posible hacer búsquedas de los scripts usando como referente el nombre del autor del script, también se pueden hacer combinaciones usando los filtros existentes (name, category, author)

    nsearch-new-search

    Opción de Scripts Favoritos

    Es posible establecer cuales de los scripts son nuestros favoritos dandole una valoración (ranking), los valores del ranking son establecidos por el usuario a gusto, se pueden adicionar, modificar, listar y eliminar de la lista.

    nsearch-addfav

    nsearch-showfav

    nsearch-modfav

    nsearch-delfav

    Salida de las Consultas más Amigables

    La nueva versión, cuenta con salidas mas amigables y organizadas para las consultas de los scripts

    nsearch-pretty-output

    PARA SABER MÁS SOBRE NUESTROS CURSOS CLICK AQUI 

    Script de Instalación  Debian(Ubuntu-Kali), RHEL(CentOS), OSX

    En sus primeras versiones el script de instalación install.sh, solo contaba con soporte para Debian(Ubuntu), en esta version también cuenta con soporte para RHEL(CentOS) y OSX

    nsearch-new-autoinstaller

    PARA SABER MÁS SOBRE NUESTROS CURSOS CLICK AQUI 

    Soporte para Debian(Ubuntu-Kali), RHEL(CentOS), OSX

    Apesar de que no se tenga un script de instalación automática para todas las versiones de UNIX, NSEarch funciona correctamente en.

    • Debian
    • Ubuntu
    • Kali
    • CentOS
    • MacOSX

    Video Presentacion NSearch:

    DESCARGA DEL NSEARCH (NMAP SCRIPT ENGINE SEARCH) v0.4

     DESCARGA DEL NSEARCH (NMAP SCRIPT ENGINE SEARCH) v0.2

    Estoy abierto a cualquier tipo de comentario, aporte, reporte, contribución

    PARA SABER MÁS SOBRE NUESTROS CURSOS CLICK AQUI 

    Subir