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