Hace algunos días atrás publicábamos una entrada en la cual se mostraba cómo hacer uso de algunos de los scripts que posee Nmap. Sin embargo, los scripts vistos son categorías preestablecidas, cuya función es llamar a los scripts .nse (nmap script engine); lo que hoy veremos será cómo buscar cada uno de esos scripts por separado para lograr una auditoría más sigilosa.
NSEarch es una herramienta que nació hace poco más de un mes, cuyas versiones iniciales estaban desarrolladas usando lua como lenguaje base, ya que se pensaba integrar como script de Nmap. Esa idea después fue descartada por usabilidad y al no ser necesario lua, en esta versión su creador (Juan Jacobo Tibaquira, Ingeniero en Sistemas que trabaja para DragonJar) ha decidido reescribir la herramienta y migrar todo el lenguaje base a python.
Una vez descargada dicha herramienta desde su enlace, solo hay que descomprimir y correr su instalador. Cuando ya se encuentra instalada se puede ejecutar con el siguiente comando:
python nsearch.py
Ejecutada la herramienta, veremos una pantalla como la que se muestra a continuación:
Como puede verse, con el comando help de ayuda en inglés, comenzamos a observar los parámetros a utilizar en la tool.
Para comenzar a familiarizarnos con la herramienta, comenzamos a hacer algunas búsquedas de alguna de las vulnerabilidades más destacadas del 2014, por eso decidimos buscar por ejemplo Heartbleed como se muestra en la captura de pantalla:
En este primer ejemplo hicimos una búsqueda de alguna vulnerabilidad solo para ver cómo presenta la información. Puede observarse que encuentra un archivo llamado “ssl-heartbleed.nse”; los archivos con extensión .nse son propios de nmap, ya que provienen de Nmap Script Engine, de ahí la extensión .nse.
Haciendo otra prueba, decidimos buscar algún script para FTP (File Transference Protocol). Una vez hecha la búsqueda se encontraron varios scripts que se encargan de hacer diferentes tipos de escaneo en este servicio; veamos el ejemplo en la siguiente captura de pantalla:
Vemos que encontró ocho de estos scripts con extensión .nse. En este caso usamos el primero para hacer un escaneo de una máquina virtual vulnerable, con el propósito de mostrar cómo funciona. Una vez identificado cuál es el script que se quiere utilizar, solo basta trasladarlo a Nmap, en este caso la ejecución de la herramienta es de la siguiente forma:
Nmap –script=ftp-anon.nse
Este escaneo se encargará de revisar que el target o víctima tenga habilitado el usuario anonymous para acceder, lo cual permite acceder sin credenciales. Una vez ejecutado dicho escaneo, muestra el resultado como se muestra en la ventana derecha, donde muestra habilitada esta funcionalidad.
Obtenida esta información por un atacante, por ejemplo, podría acceder vía un navegador o algún gestor de conexiones FTP. Podría tanto descargar los archivos disponibles como subir archivos o inclusive aplicaciones potencialmente maliciosas. A continuación vemos el ejemplo gráfico:
¿Cuáles fueron las razones por las cuales decidió hacer esta herramienta en python?
En principio debido a la gran comunidad que respalda el lenguaje, en segundo lugar por el soporte y estabilidad multiplataforma, en tercer lugar gran cantidad de documentación y consejos, por último y cuarto lugar, es mucho más fácil encontrar colaboradores.
Como hemos visto anteriormente, gracias al poder de Internet y los buscadores, incluyendo shodan, se puede obtener información tan valiosa inclusive como configuraciones por defecto. A través de esta información disponible en Internet, se le facilita la tarea a un atacante a la hora de vulnerar un equipo o una red. El uso de estos scripts hace que el escaneo en la víctima sea mucho más sigiloso, generando mucho menos “ruido” en los archivos de log pasando más desapercibido.
Nuestra recomendación desde el Laboratorio de Investigación de ESET Latinoamérica es hacer escaneos proactivos. El trabajo proactivo en conjunto con soluciones, evitará ciber ataques ayudando a mantener salvaguardada la información sensible de usuarios y clientes.