5
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. |