Scripts NASL para Nessus

Nessus es una herramienta muy útil, y a estas alturas nada nuevo descubrimos citando sus bondades.

nessus

Quizás haya una parte menos explotada y bastante menos conocida en Nessus, y esa no es otra que el scripting NASL. Las siglas NASL responden a Nessus Attack Scripting Language, es un lenguage script especialmente pensado para Nessus, y cuyo objetivo no es otro que poder lanzar funcionalidades del escáner a través de programas externos que definamos para tales efectos.

Tal y como podemos leer en las múltiples guías de referencia que hay, NASL no es un lenguage de script poderoso. Está limitado por la definición del mismo, e incluso, se reconocen errores en su formulación. Yo me sumo a los que han realizado las guías y a los responsables de NASL: el que sepa programar scripts con otros lenguages consolidados, como Perl, Python o cualquier cosa que se le parezca, que los utilice. A buen seguro, NASL les sabrá a poco.

NASL quizás esté mas indicado para personas con conocimientos de programación más limitados, y que por supuesto, empleen Nessus para sus escaneos de seguridad habituales.

Un ejemplo básico de NASL podría ser el siguiente:

start = prompt(«Primer puerto del rango «);
end = prompt(«Ultimo puerto del rango «);

for(i=start;i

Este programa enumerará, para el rango definido, todos los puertos TCP que existan en dicho intervalo que se encuentren abiertos, y para ello, se apoyará en la función de apertura de socket open_sock_tcp(). Esto, como todo en esta vida, se puede complicar hasta la extenuación, y será la experiencia y habilidades del pen tester las que determinen el grado de utilidad que NASL le puede proporcionar a sus trabajos. Obviamente, si el pen tester tiene que hacer una revisión puntual de un sistema cada 3 meses, en el que hay un listado de puertos típicos y tópicos permitidos por los cortafuegos, quizás le sea más útil lanzar los escaneos a mano que generar un script. Tampoco parece sensato generar un script para estudiar el comportamiento de un router ADSL. Yo veo más utilidad en trabajos periódicos, o incluso para elaborar sondas automatizadas de control que queramos lanzar contra nuestra infraestructura vía un cron o similar.

Para todos los interesados en iniciarse en NASL, quizás os sea grata la lectura de Writing NASL scripts, un paper introductorio que trata como eje principal la posibilidad de lanzar scripts Nessus empleando este lenguage, describiendo su funcionalidad básica. También os puede interesar este artículo, en el que se cuenta de modo introductorio cómo escribir un plugin de Nessus empleando NASL.

Y los que no sepáis qué es y hace Nessus, probad a bajároslo y jugad con él. Con este tipo de herramientas, realizar un escáner inicial de vulnerabilidades es de lo más fácil.