Saltar a contenido

Nmap Scripting Engine

El Motor de Scripting de Nmap (NSE) es otra característica útil de Nmap. Nos proporciona la posibilidad de crear scripts en Lua para interactuar con ciertos servicios. Hay un total de 14 categorías en las que se pueden dividir estos scripts.

Category Description
auth Determinación de credenciales de autenticación.
broadcast Scripts utilizados para descubrir hosts mediante difusión (broadcast) y los hosts descubiertos pueden ser agregados automáticamente a los escaneos restantes.
brute Ejecuta scripts que intentan iniciar sesión en el servicio respectivo mediante fuerza bruta con credenciales.
default Scripts predeterminados ejecutados utilizando la opción -sC.
discovery Evaluación de servicios accesibles.
dos Estos scripts se utilizan para verificar vulnerabilidades de denegación de servicio en servicios y se usan menos debido al impacto en los servicios.
exploit Esta categoría de scripts intenta explotar vulnerabilidades conocidas en el puerto escaneado.
external Scripts que utilizan servicios externos para procesamiento adicional.
fuzzer Utiliza scripts para identificar vulnerabilidades y manejo inesperado de paquetes enviando diferentes campos, lo que puede llevar mucho tiempo.
intrusive Scripts intrusivos que podrían afectar negativamente al sistema objetivo.
malware Verifica si algún malware infecta el sistema objetivo.
safe Scripts defensivos que no realizan acceso intrusivo ni destructivo.
version Extensión para la detección de servicios.
vuln Identificación de vulnerabilidades específicas.

Tenemos varias formas de definir los scripts deseados en Nmap.

Default Scripts

sudo nmap <target> -sC

Specific Scripts Category

sudo nmap <target> --script <category>

Defined Scripts

sudo nmap <target> --script <script-name>,<script-name>,...

Por ejemplo, sigamos trabajando con el puerto SMTP objetivo y veamos los resultados que obtenemos con dos scripts definidos.

Nmap - Specifying Scripts

sudo nmap 10.129.2.28 -p 25 --script banner,smtp-commands

Starting Nmap 7.80 ( https://nmap.org ) at 2020-06-16 23:21 CEST
Nmap scan report for 10.129.2.28
Host is up (0.050s latency).

PORT   STATE SERVICE
25/tcp open  smtp
|_banner: 220 inlane ESMTP Postfix (Ubuntu)
|_smtp-commands: inlane, PIPELINING, SIZE 10240000, VRFY, ETRN, STARTTLS, ENHANCEDSTATUSCODES, 8BITMIME, DSN, SMTPUTF8,
MAC Address: DE:AD:00:00:BE:EF (Intel Corporate)
Opciones de Escaneo Descripción
10.129.2.28 Escanea el objetivo especificado.
-p 25 Escanea solo el puerto especificado.
--script banner,smtp-commands Utiliza scripts NSE específicos.

Vemos que podemos reconocer la distribución Ubuntu de Linux usando el script 'banner'. El script smtp-commands nos muestra qué comandos podemos usar al interactuar con el servidor SMTP objetivo. En este ejemplo, esta información puede ayudarnos a descubrir usuarios existentes en el objetivo. Nmap también nos da la capacidad de escanear nuestro objetivo con la opción agresiva (-A). Esto escanea el objetivo con múltiples opciones como detección de servicios (-sV), detección de sistema operativo (-O), traceroute (--traceroute), y con los scripts NSE predeterminados (-sC).

Nmap - Aggressive Scan

sudo nmap 10.129.2.28 -p 80 -A
Starting Nmap 7.80 ( https://nmap.org ) at 2020-06-17 01:38 CEST
Nmap scan report for 10.129.2.28
Host is up (0.012s latency).

PORT   STATE SERVICE VERSION
80/tcp open  http    Apache httpd 2.4.29 ((Ubuntu))
|_http-generator: WordPress 5.3.4
|_http-server-header: Apache/2.4.29 (Ubuntu)
|_http-title: blog.inlanefreight.com
MAC Address: DE:AD:00:00:BE:EF (Intel Corporate)
Warning: OSScan results may be unreliable because we could not find at least 1 open and 1 closed port
Aggressive OS guesses: Linux 2.6.32 (96%), Linux 3.2 - 4.9 (96%), Linux 2.6.32 - 3.10 (96%), Linux 3.4 - 3.10 (95%), Linux 3.1 (95%), Linux 3.2 (95%), 
AXIS 210A or 211 Network Camera (Linux 2.6.17) (94%), Synology DiskStation Manager 5.2-5644 (94%), Netgear RAIDiator 4.2.28 (94%), 
Linux 2.6.32 - 2.6.35 (94%)
No exact OS matches for host (test conditions non-ideal).
Network Distance: 1 hop

TRACEROUTE
HOP RTT      ADDRESS
1   11.91 ms 10.129.2.28

OS and Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 11.36 seconds
Opciones de Escaneo Descripción
10.129.2.28 Escanea el objetivo especificado.
-p 25 Escanea solo el puerto especificado.
-A Realiza detección de servicios, detección de sistema operativo, traceroute y usa scripts predeterminados para escanear el objetivo.

Con la ayuda de la opción de escaneo utilizada (-A), descubrimos qué tipo de servidor web (Apache 2.4.29) está funcionando en el sistema, qué aplicación web (WordPress 5.3.4) se utiliza y el título (blog.inlanefreight.com) de la página web. Además, Nmap muestra que es probable que el sistema operativo sea Linux (96%).


Vulnerability Assessment

Ahora pasemos al puerto HTTP 80 y veamos qué información y vulnerabilidades podemos encontrar utilizando la categoría vuln de NSE.

Nmap - Vuln Category

sudo nmap 10.129.2.28 -p 80 -sV --script vuln 

Nmap scan report for 10.129.2.28
Host is up (0.036s latency).

PORT   STATE SERVICE VERSION
80/tcp open  http    Apache httpd 2.4.29 ((Ubuntu))
| http-enum:
|   /wp-login.php: Possible admin folder
|   /readme.html: Wordpress version: 2
|   /: WordPress version: 5.3.4
|   /wp-includes/images/rss.png: Wordpress version 2.2 found.
|   /wp-includes/js/jquery/suggest.js: Wordpress version 2.5 found.
|   /wp-includes/images/blank.gif: Wordpress version 2.6 found.
|   /wp-includes/js/comment-reply.js: Wordpress version 2.7 found.
|   /wp-login.php: Wordpress login page.
|   /wp-admin/upgrade.php: Wordpress login page.
|_  /readme.html: Interesting, a readme.
|_http-server-header: Apache/2.4.29 (Ubuntu)
|_http-stored-xss: Couldn't find any stored XSS vulnerabilities.
| http-wordpress-users:
| Username found: admin
|_Search stopped at ID #25. Increase the upper limit if necessary with 'http-wordpress-users.limit'
| vulners:
|   cpe:/a:apache:http_server:2.4.29:
|       CVE-2019-0211   7.2 https://vulners.com/cve/CVE-2019-0211
|       CVE-2018-1312   6.8 https://vulners.com/cve/CVE-2018-1312
|       CVE-2017-15715  6.8 https://vulners.com/cve/CVE-2017-15715
<SNIP>
Opciones de Escaneo Descripción
10.129.2.28 Escanea el objetivo especificado.
-p 80 Escanea solo el puerto especificado.
-sV Realiza detección de versión de servicio en los puertos especificados.
--script vuln Utiliza todos los scripts relacionados de la categoría especificada.