Nmap Scripting Engine

En mayor o menor medida,  todos hemos oído hablar de NMAP, esa herramienta creada por Fyodor  y con la que podremos, entre otras cosas, detectar equipos activos, sistemas operativos, servicios, versiones, etc. ¿Sus finalidades? Bueno, de lo más variopinta, desde la exploración de redes y sistemas,  auditorias de seguridad, procesos de pentesting, etc. Es una herramienta multiplataforma, de la que existe además una buena y abundante información. Su interfaz tanto por línea de comandos como una GUI denominada Zenmap la hacen asequible para todos los gustos de quien la utilice.

Pero  en este caso quiero habla de una de sus funcionalidades. La forma más común de emplear sería:

nmap dominioencuestion.com

Nmap tiene establecidas unas configuraciones por defecto, las cuales podremos ajustar con las distintas opciones que nos ofrece. Por ejemplo el rango de puertos a escanear, protocolos (TCP, UDP, etc.), técnicas para detección de cortafuegos con o sin estado, resolución DNS de los objetivos, cantidad de sondas enviadas, spoof de direcciones, etc.

Sin embargo una de las opciones más potentes de NMAP es lo que se denomina NSE (Nmap Scripting Engine). NSE es una funcionalidad que nos permite  por medio de scripts automatizar ciertas tareas según el script en cuestión. Estos scripts se dividen en varias categorías, como son:

auth: Scripts que gestionan procesos de autenticación.

broadcast: Orientado a la obtención de información por medioo de peticiones Broadcast.

brute: Scripts destinados a la auditoria a de contraseñas por medio de fuerza bruta.

default: Ejecución de scripts “by default”. Se ejecuta por medio de la oción –sC.

discovery: Scripts para el descubrimiento de equipos.

dos: Scripts relacionados con ataques tipo DoS.

exploit: Scripts que explotan vulnerabilidades.

external: Scripts que utilizan servicios externos o de terceros.

fuzzer: Scripts orientados a tareas de fuzzing, por ejemplo envío de datos malformados o inesperados.

intrusive: Scripts que podrían colapsar algunos sistemas o generar una gran cantidad de tráfico.

malware: Scripts relacionados con la detección de malware diverso.

safe: Scripts que pueden considerarse como “seguros” a diferencia por ejemplo de los catalogados como “intrusive”

version: Scripts para consultas avanzadas de distintos tiposd e versiones

vuln: Scripts que notifican si existe, o no, vulnerabilidades conocidas.

Una de las primeras tareas que deberemos hacer es actualizar nuestra base de datos.

nmap –script-updatedb 

Cada Script está catalogado dentro de cada una de las categorías según sea su utilidad. SI quisiéramos lanzar todos los scripts de una categoría concreta, deberíamos  utilizar:

nmap –sV –script auth <OBJETIVO> 

O sin queremnos más de una categoría:

nmap -sV –script=»version,discovery» <OBJETIVO>

Según sea nuestra distribución podremos encontrarlos en,

Kali:

/usr/share/nmap/scripts

Bugtraq:

/usr/local/share/nmap/scripts

Estos scripts no son “cerrados”, soportan la inclusión de argumentos, o variables que serán utilizadas para su ejecución. Por ejemplo quisiéramos realizar un ataque por fuerza bruta empleando HTTP y proporcionando un listado de usuarios y contraseñas concretos deberíamos utilizar:

nmap -p80 –script http-brute –script-args userdb=/var/usernames.

txt,passdb=/var/passwords.txt <OBJETIVO>

 Dado que son tareas automatizadas tenemos que tener en cuenta que su actividad podría ser detectada por IDS/IPS o firewalls que loguen el tráfico generado.

Como hemos dicho, Nmap cuenta con una interfaz gráfica denominada Zenmap, en la que también encontraremos estas funcionalidades.

 

Deberemos crear un “Profile”, por lo que pincharemos sobre él y una vez allí sobre “New Profile or Command”.

Allí en “Scripting” encontraremos todos los scripts disponibles.

 

Además podremos definir otros valores y sus respectivos valores y variantes para luego presionando “Scan” lanzarlo.

Como digo, esto es sólo el comienzo de Namp Scripting Engine, como todas las cosas luego nos toca a nosotros meter horas y horas para sacarle todo el provecho.

Un saludo.